From 69a7e3b1c4537af48d13d9514fda0e8d0b311039 Mon Sep 17 00:00:00 2001 From: Frode Flaten <3436158+fflaten@users.noreply.github.com> Date: Thu, 4 Aug 2022 15:13:34 +0000 Subject: [PATCH 1/3] clear existing diagnosticsmarkers for scriptFile --- .../Services/Analysis/AnalysisService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs index c376da311..d1f06c6ef 100644 --- a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs +++ b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs @@ -373,6 +373,7 @@ private async Task DelayThenInvokeDiagnosticsAsync(ScriptFile[] filesToAnalyze, { ScriptFileMarker[] semanticMarkers = await AnalysisEngine.AnalyzeScriptAsync(scriptFile.Contents).ConfigureAwait(false); + scriptFile.DiagnosticMarkers.Clear(); scriptFile.DiagnosticMarkers.AddRange(semanticMarkers); PublishScriptDiagnostics(scriptFile); From b96fe7365840ffe0ffe5490af35633a5e00dca92 Mon Sep 17 00:00:00 2001 From: Frode Flaten <3436158+fflaten@users.noreply.github.com> Date: Thu, 4 Aug 2022 16:18:16 +0000 Subject: [PATCH 2/3] clear only PSSA-markers --- .../Services/Analysis/AnalysisService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs index d1f06c6ef..8c0d06b6f 100644 --- a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs +++ b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs @@ -373,7 +373,8 @@ private async Task DelayThenInvokeDiagnosticsAsync(ScriptFile[] filesToAnalyze, { ScriptFileMarker[] semanticMarkers = await AnalysisEngine.AnalyzeScriptAsync(scriptFile.Contents).ConfigureAwait(false); - scriptFile.DiagnosticMarkers.Clear(); + // Clear old PSSA-results, but keeping parser-errors ("PowerShell"-source). + scriptFile.DiagnosticMarkers.RemoveAll(m => m.Source == "PSScriptAnalyzer"); scriptFile.DiagnosticMarkers.AddRange(semanticMarkers); PublishScriptDiagnostics(scriptFile); From 4bece3525ce4d4fcbe1331f1b482332e48aa5d65 Mon Sep 17 00:00:00 2001 From: Andy Jordan <2226434+andschwa@users.noreply.github.com> Date: Thu, 4 Aug 2022 11:03:10 -0700 Subject: [PATCH 3/3] Update src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs --- .../Services/Analysis/AnalysisService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs index 8c0d06b6f..73e5cfa27 100644 --- a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs +++ b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs @@ -373,7 +373,8 @@ private async Task DelayThenInvokeDiagnosticsAsync(ScriptFile[] filesToAnalyze, { ScriptFileMarker[] semanticMarkers = await AnalysisEngine.AnalyzeScriptAsync(scriptFile.Contents).ConfigureAwait(false); - // Clear old PSSA-results, but keeping parser-errors ("PowerShell"-source). + // Clear existing PSScriptAnalyzer markers (but keep parser errors where the source is "PowerShell") + // so that they are not duplicated when re-opening files. scriptFile.DiagnosticMarkers.RemoveAll(m => m.Source == "PSScriptAnalyzer"); scriptFile.DiagnosticMarkers.AddRange(semanticMarkers);