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/Classification/QmlAsyncClassifier.cs |   42 +++++++++++++++++++-----------------------
 1 files changed, 19 insertions(+), 23 deletions(-)

diff --git a/QtVsTools.Package/QML/Classification/QmlAsyncClassifier.cs b/QtVsTools.Package/QML/Classification/QmlAsyncClassifier.cs
index d8698b4..b69d9b6 100644
--- a/QtVsTools.Package/QML/Classification/QmlAsyncClassifier.cs
+++ b/QtVsTools.Package/QML/Classification/QmlAsyncClassifier.cs
@@ -33,7 +33,6 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Threading;
 using System.Threading.Tasks;
 using System.Windows.Threading;
 using Microsoft.VisualStudio.Text;
@@ -52,7 +51,7 @@
     /// </summary>
     class SharedTagList : Concurrent
     {
-        SortedList<int, TrackingTag> data = new SortedList<int, TrackingTag>();
+        readonly SortedList<int, TrackingTag> data = new SortedList<int, TrackingTag>();
         object owner;
 
         public bool Ready { get; private set; }
@@ -97,7 +96,7 @@
 
         class TrackingTagComparer : Comparer<TrackingTag>
         {
-            ITextSnapshot snapshot;
+            readonly ITextSnapshot snapshot;
             public TrackingTagComparer(ITextSnapshot snapshot)
             {
                 this.snapshot = snapshot;
@@ -232,17 +231,16 @@
         /// <returns>Instance of T corresponding to the given TrackingTag</returns>
         protected abstract T GetClassification(TrackingTag tag);
 
-        protected ITextView TextView { get; private set; }
-        protected ITextBuffer Buffer { get; private set; }
+        private ITextView TextView { get; }
+        private ITextBuffer Buffer { get; }
 
         readonly object criticalSection = new object();
-
-        string classificationType;
+        readonly string classificationType;
         ParserKey currentParserKey;
         TagListKey currentTagListKey;
         SharedTagList currentTagList;
-        Dispatcher dispatcher;
-        DispatcherTimer timer;
+        readonly Dispatcher dispatcher;
+        readonly DispatcherTimer timer;
         bool flag = false;
 
         protected QmlAsyncClassifier(
@@ -267,7 +265,7 @@
             currentTagList = null;
             this.classificationType = classificationType;
 
-            AsyncParse(buffer.CurrentSnapshot);
+            Parse(buffer.CurrentSnapshot);
         }
 
         private void TextView_Closed(object sender, EventArgs e)
@@ -286,16 +284,16 @@
         private void Buffer_Changed(object sender, TextContentChangedEventArgs e)
         {
             timer.Stop();
-            AsyncParse(e.After);
+            Parse(e.After);
         }
 
         private void Timer_Tick(object sender, EventArgs e)
         {
             timer.Stop();
-            AsyncParse(Buffer.CurrentSnapshot);
+            Parse(Buffer.CurrentSnapshot);
         }
 
-        private async void AsyncParse(ITextSnapshot snapshot)
+        private void Parse(ITextSnapshot snapshot)
         {
             lock (criticalSection) {
                 if (flag)
@@ -311,7 +309,7 @@
             ParserKey oldParserKey = null;
             TagListKey oldTagListKey = null;
 
-            await Task.Run(() =>
+            _ = Task.Run(() =>
             {
                 var parser = ParserStore.Instance.Get(this, newParserKey);
 
@@ -344,7 +342,7 @@
                 flag = false;
             }
 
-            await Task.Run(() =>
+            _ = Task.Run(() =>
             {
                 if (oldParserKey != null)
                     ParserStore.Instance.Release(this, oldParserKey);
@@ -511,7 +509,7 @@
                 public TValue Value { get; set; }
                 public HashSet<object> ClientObjects { get; set; }
             }
-            Dictionary<TKey, ValueRef> data = new Dictionary<TKey, ValueRef>();
+            readonly Dictionary<TKey, ValueRef> data = new Dictionary<TKey, ValueRef>();
 
             static readonly object staticCriticalSection = new object();
             readonly object criticalSection = new object();
@@ -524,8 +522,7 @@
             public TValue Get(object client, TKey key)
             {
                 lock (criticalSection) {
-                    ValueRef valueRef;
-                    if (!data.TryGetValue(key, out valueRef)) {
+                    if (!data.TryGetValue(key, out ValueRef valueRef)) {
                         valueRef = new ValueRef
                         {
                             Value = GetDefaultValue(key),
@@ -543,8 +540,7 @@
             {
                 IDisposable disposable = null;
                 lock (criticalSection) {
-                    ValueRef valueRef;
-                    if (data.TryGetValue(key, out valueRef)) {
+                    if (data.TryGetValue(key, out ValueRef valueRef)) {
                         valueRef.ClientObjects.Remove(client);
                         if (valueRef.ClientObjects.Count == 0) {
                             data.Remove(key);
@@ -573,8 +569,8 @@
 
         class TagListKey
         {
-            public string Classification { get; private set; }
-            public ITextSnapshot Snapshot { get; private set; }
+            private string Classification { get; }
+            private ITextSnapshot Snapshot { get; }
             public TagListKey(string classification, ITextSnapshot snapshot)
             {
                 Classification = classification;
@@ -614,7 +610,7 @@
 
         class ParserKey
         {
-            public ITextSnapshot Snapshot { get; private set; }
+            public ITextSnapshot Snapshot { get; }
             public ParserKey(ITextSnapshot snapshot)
             {
                 Snapshot = snapshot;

--
Gitblit v1.9.1