diff --git a/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml b/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml
index f733c39dae3d9..e81dc7cb0d85c 100644
--- a/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml
+++ b/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml
@@ -54,9 +54,6 @@
Content="{x:Static local:AdvancedOptionPageStrings.Option_ClosedFileDiagnostics}" />
-
CSharpVSResources.Option_Using_Directives;
diff --git a/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.cs b/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.cs
index d7119057361b8..7092d74c4f64c 100644
--- a/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.cs
+++ b/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.cs
@@ -9,6 +9,7 @@
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.Options;
using Microsoft.CodeAnalysis.Shared.Options;
+using Microsoft.Internal.VisualStudio.Shell;
using Microsoft.VisualStudio.LanguageServices.Implementation.TaskList;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
@@ -57,6 +58,7 @@ public VisualStudioDiagnosticListTable(
var errorList2 = _errorList as IErrorList2;
if (errorList2 != null)
{
+ workspace.WorkspaceChanged += OnWorkspaceChanged;
errorList2.AnalysisToggleStateChanged += OnErrorListFullSolutionAnalysisToggled;
_optionService.OptionChanged += OnOptionChanged;
}
@@ -149,6 +151,40 @@ private void OnErrorListPropertyChanged(object sender, PropertyChangedEventArgs
}
}
+ private void OnWorkspaceChanged(object sender, WorkspaceChangeEventArgs e)
+ {
+ Contract.ThrowIfFalse(_errorList is IErrorList2);
+
+ switch (e.Kind)
+ {
+ case WorkspaceChangeKind.SolutionAdded:
+ case WorkspaceChangeKind.SolutionChanged:
+ case WorkspaceChangeKind.SolutionCleared:
+ case WorkspaceChangeKind.SolutionReloaded:
+ case WorkspaceChangeKind.SolutionRemoved:
+ case WorkspaceChangeKind.ProjectAdded:
+ case WorkspaceChangeKind.ProjectChanged:
+ case WorkspaceChangeKind.ProjectRemoved:
+ // Set error list toggle state based on current analysis state for all languages for projects in current solution.
+ var fullAnalysisState = _optionService.GetOption(RuntimeOptions.FullSolutionAnalysis);
+ if (fullAnalysisState)
+ {
+ var langauges = e.NewSolution.Projects.Select(p => p.Language).Distinct();
+ foreach (var language in langauges)
+ {
+ if (!ServiceFeatureOnOffOptions.IsClosedFileDiagnosticsEnabled(_optionService, language))
+ {
+ fullAnalysisState = false;
+ break;
+ }
+ }
+ }
+
+ ((IErrorList2)_errorList).AnalysisToggleState = fullAnalysisState;
+ return;
+ }
+ }
+
private void OnErrorListFullSolutionAnalysisToggled(object sender, AnalysisToggleStateChangedEventArgs e)
{
var newOptions = _optionService.GetOptions()
diff --git a/src/VisualStudio/Core/Def/ServicesVSResources.Designer.cs b/src/VisualStudio/Core/Def/ServicesVSResources.Designer.cs
index 64ad5e28fcd46..85f745233097f 100644
--- a/src/VisualStudio/Core/Def/ServicesVSResources.Designer.cs
+++ b/src/VisualStudio/Core/Def/ServicesVSResources.Designer.cs
@@ -429,15 +429,6 @@ internal static string FromBing {
}
}
- ///
- /// Looks up a localized string similar to Note: Option 'Enable full solution analysis' has been moved to the Error List..
- ///
- internal static string FullSolutionAnalysisMovedToErrorList {
- get {
- return ResourceManager.GetString("FullSolutionAnalysisMovedToErrorList", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to Low memory detected. Full solution analysis disabled for this solution..
///
diff --git a/src/VisualStudio/Core/Def/ServicesVSResources.resx b/src/VisualStudio/Core/Def/ServicesVSResources.resx
index 73fb22f55e165..6f23cf6a5d2db 100644
--- a/src/VisualStudio/Core/Def/ServicesVSResources.resx
+++ b/src/VisualStudio/Core/Def/ServicesVSResources.resx
@@ -583,7 +583,4 @@ Additional information: {1}
Restore {0}{0} is a parameter description
-
- Note: Option 'Enable full solution analysis' has been moved to the Error List.
-
\ No newline at end of file
diff --git a/src/VisualStudio/Core/Impl/Options/AbstractOptionPageControl.cs b/src/VisualStudio/Core/Impl/Options/AbstractOptionPageControl.cs
index 509bd97ae8edd..eb2d6c610c783 100644
--- a/src/VisualStudio/Core/Impl/Options/AbstractOptionPageControl.cs
+++ b/src/VisualStudio/Core/Impl/Options/AbstractOptionPageControl.cs
@@ -98,20 +98,18 @@ protected void BindToOption(TextBox textBox, PerLanguageOption optionKey, s
_bindingExpressions.Add(bindingExpression);
}
- protected void BindToFullSolutionAnalysisOption(CheckBox checkbox, Label fullSolutionAnalysisMovedToErrorListLabel, string languageName)
+ protected void BindToFullSolutionAnalysisOption(CheckBox checkbox, string languageName)
{
// Full solution analysis option has been moved to error list from Dev14 Update3.
// We only want to show the full solution analysis option in Tools Options, if we are running against prior VS bits.
if (VisualStudioDiagnosticListTable.ErrorListHasFullSolutionAnalysisButton())
{
checkbox.Visibility = Visibility.Collapsed;
- fullSolutionAnalysisMovedToErrorListLabel.Visibility = Visibility.Visible;
return;
}
checkbox.Visibility = Visibility.Visible;
- fullSolutionAnalysisMovedToErrorListLabel.Visibility = Visibility.Collapsed;
-
+
Binding binding = new Binding()
{
Source = new FullSolutionAnalysisOptionBinding(OptionService, languageName),
diff --git a/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml b/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml
index 628f46a8a3126..de39cd91beb85 100644
--- a/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml
+++ b/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml
@@ -59,9 +59,6 @@
Content="{x:Static local:AdvancedOptionPageStrings.Option_ClosedFileDiagnostics}" />
-