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/QtMsBuild/QtProjectIntelliSense.cs | 32 +++++++++++++++++++++++--------- 1 files changed, 23 insertions(+), 9 deletions(-) diff --git a/QtVsTools.Package/QtMsBuild/QtProjectIntelliSense.cs b/QtVsTools.Package/QtMsBuild/QtProjectIntelliSense.cs index 605763f..46ff9d4 100644 --- a/QtVsTools.Package/QtMsBuild/QtProjectIntelliSense.cs +++ b/QtVsTools.Package/QtMsBuild/QtProjectIntelliSense.cs @@ -31,12 +31,15 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.Build.Framework; +using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Threading; + +using Task = System.Threading.Tasks.Task; +using Thread = System.Threading.Thread; namespace QtVsTools.QtMsBuild { using Core; - using Thread = System.Threading.Thread; static class QtProjectIntellisense { @@ -45,25 +48,31 @@ string configId = null, IEnumerable<string> selectedFiles = null) { - if (project == null || !QtProjectTracker.IsTracked(project)) + ThreadHelper.ThrowIfNotOnUIThread(); + + if (project == null || !QtProjectTracker.IsTracked(project.FullName)) return; + if (QtVsToolsPackage.Instance.Options.BuildDebugInformation) { Messages.Print(string.Format( "{0:HH:mm:ss.FFF} QtProjectIntellisense({1}): Refreshing: [{2}] {3}", DateTime.Now, Thread.CurrentThread.ManagedThreadId, (configId != null) ? configId : "(all configs)", project.FullName)); } - Task.Run(() => RefreshAsync(project, configId, selectedFiles)); + string projectPath = project.FullName; + _ = Task.Run(() => RefreshAsync(project, projectPath, configId, selectedFiles, false)); } public static async Task RefreshAsync( EnvDTE.Project project, + string projectPath, string configId = null, - IEnumerable<string> selectedFiles = null) + IEnumerable<string> selectedFiles = null, + bool refreshQtVars = false) { - if (project == null || !QtProjectTracker.IsTracked(project)) + if (project == null || !QtProjectTracker.IsTracked(projectPath)) return; - var tracker = QtProjectTracker.Get(project); + var tracker = QtProjectTracker.Get(project, projectPath); await tracker.Initialized; var properties = new Dictionary<string, string>(); @@ -84,9 +93,14 @@ } foreach (var config in configs) { - await QtProjectBuild.StartBuildAsync( - project, config, properties, targets, - LoggerVerbosity.Quiet); + if (refreshQtVars) { + await QtProjectBuild.StartBuildAsync( + project, projectPath, config, properties, targets, + LoggerVerbosity.Quiet); + } else { + await QtProjectBuild.SetOutdatedAsync( + project, projectPath, config, LoggerVerbosity.Quiet); + } } } } -- Gitblit v1.9.1