From 82f556a677aabc9f0b946ceb5b3f71e2239dda42 Mon Sep 17 00:00:00 2001 From: MikhailArkhipov Date: Mon, 1 Oct 2018 10:42:23 -0700 Subject: [PATCH 1/2] Change wording --- src/LanguageServer/Impl/Resources.Designer.cs | 4 ++-- src/LanguageServer/Impl/Resources.resx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/LanguageServer/Impl/Resources.Designer.cs b/src/LanguageServer/Impl/Resources.Designer.cs index 380f2f5ba..e1cb1550b 100644 --- a/src/LanguageServer/Impl/Resources.Designer.cs +++ b/src/LanguageServer/Impl/Resources.Designer.cs @@ -61,7 +61,7 @@ internal Resources() { } /// - /// Looks up a localized string similar to Analyzing workspace, {0} items remaining.... + /// Looks up a localized string similar to Background analysis: {0} items remaining.... /// internal static string AnalysisProgress_MultipleItemsRemaining { get { @@ -70,7 +70,7 @@ internal static string AnalysisProgress_MultipleItemsRemaining { } /// - /// Looks up a localized string similar to Analyzing workspace, 1 item remaining.... + /// Looks up a localized string similar to Background analysis: 1 item remaining.... /// internal static string AnalysisProgress_SingleItemRemaining { get { diff --git a/src/LanguageServer/Impl/Resources.resx b/src/LanguageServer/Impl/Resources.resx index 25e6774dd..8f2a6ece6 100644 --- a/src/LanguageServer/Impl/Resources.resx +++ b/src/LanguageServer/Impl/Resources.resx @@ -118,10 +118,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Analyzing workspace, {0} items remaining... + Background analysis: {0} items remaining... - Analyzing workspace, 1 item remaining... + Background analysis: 1 item remaining... Failed to create interpreter From 09ea08d64f034fadaf3f1e4137741d91c7d6cd41 Mon Sep 17 00:00:00 2001 From: MikhailArkhipov Date: Mon, 1 Oct 2018 12:14:35 -0700 Subject: [PATCH 2/2] Remove progress reporting --- .../AnalysisProgressReporter.cs | 90 ------------------- src/LanguageServer/Impl/LanguageServer.cs | 3 - src/LanguageServer/Impl/Resources.Designer.cs | 18 ---- src/LanguageServer/Impl/Resources.resx | 6 -- 4 files changed, 117 deletions(-) delete mode 100644 src/LanguageServer/Impl/Implementation/AnalysisProgressReporter.cs diff --git a/src/LanguageServer/Impl/Implementation/AnalysisProgressReporter.cs b/src/LanguageServer/Impl/Implementation/AnalysisProgressReporter.cs deleted file mode 100644 index 375026966..000000000 --- a/src/LanguageServer/Impl/Implementation/AnalysisProgressReporter.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Python Tools for Visual Studio -// Copyright(c) Microsoft Corporation -// All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the License); you may not use -// this file except in compliance with the License. You may obtain a copy of the -// License at http://www.apache.org/licenses/LICENSE-2.0 -// -// THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS -// OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY -// IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -// MERCHANTABLITY OR NON-INFRINGEMENT. -// -// See the Apache Version 2.0 License for specific language governing -// permissions and limitations under the License. - -using System; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.PythonTools.Analysis.Infrastructure; - -namespace Microsoft.Python.LanguageServer.Implementation { - sealed class AnalysisProgressReporter : IDisposable { - private readonly DisposableBag _disposables = new DisposableBag(nameof(AnalysisProgressReporter)); - private readonly IProgressService _progressService; - private readonly ILogger _logger; - private readonly Server _server; - private readonly object _lock = new object(); - private readonly CancellationToken _cancellationToken; - - private IProgress _progress; - private Task _queueMonitoringTask; - - public AnalysisProgressReporter(Server server, IProgressService progressService, ILogger logger, CancellationToken cancellationToken) { - _progressService = progressService; - _logger = logger; - _cancellationToken = cancellationToken; - - _server = server; - _server.OnAnalysisQueued += OnAnalysisQueued; - _server.OnAnalysisComplete += OnAnalysisComplete; - _disposables - .Add(() => _server.OnAnalysisQueued -= OnAnalysisQueued) - .Add(() => _server.OnAnalysisComplete -= OnAnalysisComplete) - .Add(() => _progress?.Dispose()); - } - - public void Dispose() => _disposables.TryDispose(); - - private void OnAnalysisQueued(object sender, AnalysisQueuedEventArgs e) { - lock (_lock) { - UpdateProgressMessage(); - _queueMonitoringTask = _queueMonitoringTask ?? QueueMonitoringTask(); - } - } - private void OnAnalysisComplete(object sender, AnalysisCompleteEventArgs e) { - lock (_lock) { - UpdateProgressMessage(); - } - } - - private void UpdateProgressMessage() { - var count = _server.EstimateRemainingWork(); - if (count > 0) { - _progress = _progress ?? _progressService.BeginProgress(); - _progress.Report(count == 1 - ? Resources.AnalysisProgress_SingleItemRemaining - : Resources.AnalysisProgress_MultipleItemsRemaining.FormatInvariant(count)).DoNotWait(); - } else { - EndProgress(); - } - } - - private async Task QueueMonitoringTask() { - try { - await _server.WaitForCompleteAnalysisAsync(_cancellationToken); - } finally { - EndProgress(); - } - } - - private void EndProgress() { - lock (_lock) { - _progress?.Dispose(); - _progress = null; - _queueMonitoringTask = null; - } - } - } -} diff --git a/src/LanguageServer/Impl/LanguageServer.cs b/src/LanguageServer/Impl/LanguageServer.cs index d488a8e91..1d946d248 100644 --- a/src/LanguageServer/Impl/LanguageServer.cs +++ b/src/LanguageServer/Impl/LanguageServer.cs @@ -50,7 +50,6 @@ public sealed partial class LanguageServer : IDisposable { private bool _filesLoaded; private PathsWatcher _pathsWatcher; private IdleTimeTracker _idleTimeTracker; - private AnalysisProgressReporter _analysisProgressReporter; private bool _watchSearchPaths; private string[] _searchPaths = Array.Empty(); @@ -62,7 +61,6 @@ public CancellationToken Start(IServiceContainer services, JsonRpc rpc) { _rpc = rpc; var progress = services.GetService(); - _analysisProgressReporter = new AnalysisProgressReporter(_server, progress, _server, _shutdownCts.Token); _server.OnLogMessage += OnLogMessage; _server.OnShowMessage += OnShowMessage; @@ -82,7 +80,6 @@ public CancellationToken Start(IServiceContainer services, JsonRpc rpc) { .Add(() => _server.OnUnregisterCapability -= OnUnregisterCapability) .Add(() => _shutdownCts.Cancel()) .Add(_prioritizer) - .Add(_analysisProgressReporter) .Add(() => _pathsWatcher?.Dispose()); return _sessionTokenSource.Token; diff --git a/src/LanguageServer/Impl/Resources.Designer.cs b/src/LanguageServer/Impl/Resources.Designer.cs index e1cb1550b..4b03af149 100644 --- a/src/LanguageServer/Impl/Resources.Designer.cs +++ b/src/LanguageServer/Impl/Resources.Designer.cs @@ -60,24 +60,6 @@ internal Resources() { } } - /// - /// Looks up a localized string similar to Background analysis: {0} items remaining.... - /// - internal static string AnalysisProgress_MultipleItemsRemaining { - get { - return ResourceManager.GetString("AnalysisProgress_MultipleItemsRemaining", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Background analysis: 1 item remaining.... - /// - internal static string AnalysisProgress_SingleItemRemaining { - get { - return ResourceManager.GetString("AnalysisProgress_SingleItemRemaining", resourceCulture); - } - } - /// /// Looks up a localized string similar to Failed to create interpreter. /// diff --git a/src/LanguageServer/Impl/Resources.resx b/src/LanguageServer/Impl/Resources.resx index 8f2a6ece6..b56682a3c 100644 --- a/src/LanguageServer/Impl/Resources.resx +++ b/src/LanguageServer/Impl/Resources.resx @@ -117,12 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Background analysis: {0} items remaining... - - - Background analysis: 1 item remaining... - Failed to create interpreter