From ca47896204482bf4a6979e3838bf7f09f61cebeb Mon Sep 17 00:00:00 2001
From: giy <giy@omp-system.ru>
Date: Fri, 02 Sep 2022 14:16:56 +0300
Subject: [PATCH] Обновление до версии 2.9.0

---
 QtVsTools.Package/QML/Debugging/QmlDebugger.cs |   47 +++++++++++++++++++++--------------------------
 1 files changed, 21 insertions(+), 26 deletions(-)

diff --git a/QtVsTools.Package/QML/Debugging/QmlDebugger.cs b/QtVsTools.Package/QML/Debugging/QmlDebugger.cs
index 892a17d..b877956 100644
--- a/QtVsTools.Package/QML/Debugging/QmlDebugger.cs
+++ b/QtVsTools.Package/QML/Debugging/QmlDebugger.cs
@@ -26,18 +26,19 @@
 **
 ****************************************************************************/
 
-using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using QtVsTools.SyntaxAnalysis;
-using static QtVsTools.SyntaxAnalysis.RegExpr;
-using RegExprParser = QtVsTools.SyntaxAnalysis.RegExpr.Parser;
 
 namespace QtVsTools.Qml.Debug
 {
+    using Common;
+    using SyntaxAnalysis;
     using V4;
+
+    using RegExprParser = SyntaxAnalysis.RegExpr.Parser;
+
+    using static SyntaxAnalysis.RegExpr;
 
     struct FrameInfo
     {
@@ -69,6 +70,8 @@
 
     class QmlDebugger : Disposable, IMessageEventSink
     {
+        static LazyFactory StaticLazy { get; } = new LazyFactory();
+
         IDebuggerEventSink sink;
         ProtocolDriver driver;
         string connectionHostName;
@@ -80,11 +83,11 @@
         List<Request> outbox;
         Dictionary<int, IBreakpoint> breakpoints;
 
-        public bool Started { get; private set; }
+        private bool Started { get; set; }
 
-        public bool Running { get; private set; }
+        private bool Running { get; set; }
 
-        public string Version { get; private set; }
+        private string Version { get; set; }
 
         public uint? ThreadId { get { return driver.ThreadId; } }
 
@@ -160,7 +163,7 @@
             if (!Started) {
                 Running = Started = true;
                 LeaveCriticalSection();
-                Task.Run(() => ConnectToDebugger());
+                _ = Task.Run(() => ConnectToDebugger());
 
             } else if (!Running) {
                 Running = true;
@@ -201,7 +204,7 @@
             setBreakpoint.Arguments.Line = (int)breakpoint.Line;
             setBreakpoint.Tag = breakpoint;
             if (driver.ConnectionState == DebugClientState.Connected)
-                setBreakpoint.SendAsync();
+                setBreakpoint.SendRequest();
             else
                 ThreadSafe(() => outbox.Add(setBreakpoint));
         }
@@ -231,7 +234,7 @@
 
             var reqClearBreak = Message.Create<ClearBreakpointRequest>(driver);
             reqClearBreak.Arguments.Breakpoint = breakpointNum[breakpoint];
-            reqClearBreak.SendAsync();
+            reqClearBreak.SendRequest();
         }
 
         void RefreshFrames()
@@ -286,8 +289,7 @@
 
             } else {
                 foreach (int breakpointId in evtBreak.Body.Breakpoints) {
-                    IBreakpoint breakpoint;
-                    if (!breakpoints.TryGetValue(breakpointId, out breakpoint))
+                    if (!breakpoints.TryGetValue(breakpointId, out IBreakpoint breakpoint))
                         continue;
                     breakpoint.NotifyBreak();
                 }
@@ -406,20 +408,20 @@
         {
             if (oldState != DebugClientState.Unavailable
                 && newState == DebugClientState.Disconnected) {
-                Task.Run(() => sink.NotifyClientDisconnected());
+                _ = Task.Run(() => sink.NotifyClientDisconnected());
             }
         }
 
         void IMessageEventSink.NotifyRequestResponded(Request msgRequest)
         {
             if (msgRequest is SetBreakpointRequest)
-                Task.Run(() => SetBreakpointResponded(msgRequest as SetBreakpointRequest));
+                _ = Task.Run(() => SetBreakpointResponded(msgRequest as SetBreakpointRequest));
         }
 
         void IMessageEventSink.NotifyEvent(Event msgEvent)
         {
             if (msgEvent is BreakEvent)
-                Task.Run(() => BreakNotified(msgEvent as BreakEvent));
+                _ = Task.Run(() => BreakNotified(msgEvent as BreakEvent));
         }
 
         void IMessageEventSink.NotifyMessage(Message msg)
@@ -430,13 +432,7 @@
 
         public static bool CheckCommandLine(string execPath, string args)
         {
-            ushort portFrom;
-            ushort portTo;
-            string hostName;
-            string fileName;
-            bool block;
-            return ParseCommandLine(
-                execPath, args, out portFrom, out portTo, out hostName, out fileName, out block);
+            return ParseCommandLine(execPath, args, out _, out _, out _, out _, out _);
         }
 
         /// <summary>
@@ -456,8 +452,8 @@
         /// <summary>
         /// Regex-based parser for QML debug connection parameters
         /// </summary>
-        static RegExprParser ConnectParamsParser => _ConnectParamsParser ?? (
-            _ConnectParamsParser = new Token(TokenId.ConnectParams, RxConnectParams)
+        static RegExprParser ConnectParamsParser => StaticLazy.Get(() =>
+            ConnectParamsParser, () => new Token(TokenId.ConnectParams, RxConnectParams)
             {
                 new Rule<ConnectParams>
                 {
@@ -469,7 +465,6 @@
                 }
             }
             .Render());
-        static RegExprParser _ConnectParamsParser;
 
         /// <summary>
         /// Regular expression for parsing connection parameters string in the form:

--
Gitblit v1.9.1