diff --git a/src/EditorFeatures/CSharpTest/CodeActions/ImplementInterface/ImplementInterfaceTests.cs b/src/EditorFeatures/CSharpTest/CodeActions/ImplementInterface/ImplementInterfaceTests.cs index bb8ac39cec235..3a8f14b625acc 100644 --- a/src/EditorFeatures/CSharpTest/CodeActions/ImplementInterface/ImplementInterfaceTests.cs +++ b/src/EditorFeatures/CSharpTest/CodeActions/ImplementInterface/ImplementInterfaceTests.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.Threading.Tasks; +using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.CodeStyle; using Microsoft.CodeAnalysis.CSharp.ImplementInterface; @@ -8006,7 +8007,7 @@ void M() { } public int Prop => throw new System.NotImplementedException(); } """, - CodeActionOptions = (CSharpCodeActionOptions.Default with + CodeActionOptions = (CodeActionOptions.Default with { ImplementTypeOptions = new() { InsertionBehavior = ImplementTypeInsertionBehavior.AtTheEnd } }).CreateProvider() @@ -8188,7 +8189,7 @@ class Class : IInterface public int WriteOnlyProp { set => throw new System.NotImplementedException(); } } """, - CodeActionOptions = (CSharpCodeActionOptions.Default with + CodeActionOptions = (CodeActionOptions.Default with { ImplementTypeOptions = new() { PropertyGenerationBehavior = ImplementTypePropertyGenerationBehavior.PreferAutoProperties } }).CreateProvider() diff --git a/src/EditorFeatures/CSharpTest/Organizing/OrganizeTypeDeclarationTests.cs b/src/EditorFeatures/CSharpTest/Organizing/OrganizeTypeDeclarationTests.cs index bb781c360826c..f04d8a65e1794 100644 --- a/src/EditorFeatures/CSharpTest/Organizing/OrganizeTypeDeclarationTests.cs +++ b/src/EditorFeatures/CSharpTest/Organizing/OrganizeTypeDeclarationTests.cs @@ -1183,7 +1183,6 @@ class C var handler = new OrganizeDocumentCommandHandler( workspace.GetService(), - workspace.GlobalOptions, workspace.ExportProvider.GetExportedValue()); var state = handler.GetCommandState(new SortAndRemoveUnnecessaryImportsCommandArgs(textView, textView.TextBuffer)); diff --git a/src/EditorFeatures/Core/ExternalAccess/UnitTestGenerator/Api/UnitTestGeneratorOrganizeImportsAccessor.cs b/src/EditorFeatures/Core/ExternalAccess/UnitTestGenerator/Api/UnitTestGeneratorOrganizeImportsAccessor.cs index 9d0b6b16da64a..0dc02e545b49c 100644 --- a/src/EditorFeatures/Core/ExternalAccess/UnitTestGenerator/Api/UnitTestGeneratorOrganizeImportsAccessor.cs +++ b/src/EditorFeatures/Core/ExternalAccess/UnitTestGenerator/Api/UnitTestGeneratorOrganizeImportsAccessor.cs @@ -17,14 +17,14 @@ namespace Microsoft.CodeAnalysis.ExternalAccess.UnitTestGenerator.Api; [Shared] [method: ImportingConstructor] [method: Obsolete(MefConstruction.ImportingConstructorMessage, error: true)] -internal class UnitTestGeneratorOrganizeImportsAccessor(IGlobalOptionService globalOptions) +internal class UnitTestGeneratorOrganizeImportsAccessor() { - private readonly IGlobalOptionService _globalOptions = globalOptions; - +#pragma warning disable CA1822 // Mark members as static public async Task OrganizeImportsAsync(Document document, CancellationToken cancellationToken) +#pragma warning restore CA1822 // Mark members as static { var organizeImportsService = document.GetRequiredLanguageService(); - var options = await document.GetOrganizeImportsOptionsAsync(_globalOptions, cancellationToken).ConfigureAwait(false); + var options = await document.GetOrganizeImportsOptionsAsync(cancellationToken).ConfigureAwait(false); return await organizeImportsService.OrganizeImportsAsync(document, options, cancellationToken).ConfigureAwait(false); } } diff --git a/src/EditorFeatures/Core/Organizing/OrganizeDocumentCommandHandler.cs b/src/EditorFeatures/Core/Organizing/OrganizeDocumentCommandHandler.cs index eb78e0649ee55..a119ec7c5ab9e 100644 --- a/src/EditorFeatures/Core/Organizing/OrganizeDocumentCommandHandler.cs +++ b/src/EditorFeatures/Core/Organizing/OrganizeDocumentCommandHandler.cs @@ -37,14 +37,12 @@ namespace Microsoft.CodeAnalysis.Editor.Implementation.Organizing; [SuppressMessage("RoslynDiagnosticsReliability", "RS0033:Importing constructor should be [Obsolete]", Justification = "Used in test code: https://github.com/dotnet/roslyn/issues/42814")] internal class OrganizeDocumentCommandHandler( IThreadingContext threadingContext, - IGlobalOptionService globalOptions, IAsynchronousOperationListenerProvider listenerProvider) : ICommandHandler, ICommandHandler, ICommandHandler { private readonly IThreadingContext _threadingContext = threadingContext; - private readonly IGlobalOptionService _globalOptions = globalOptions; private readonly IAsynchronousOperationListener _listener = listenerProvider.GetListener(FeatureAttribute.OrganizeDocument); public string DisplayName => EditorFeaturesResources.Organize_Document; @@ -175,7 +173,7 @@ public bool ExecuteCommand(SortImportsCommandArgs args, CommandExecutionContext async (document, cancellationToken) => { var organizeImportsService = document.GetRequiredLanguageService(); - var options = await document.GetOrganizeImportsOptionsAsync(_globalOptions, cancellationToken).ConfigureAwait(false); + var options = await document.GetOrganizeImportsOptionsAsync(cancellationToken).ConfigureAwait(false); return await organizeImportsService.OrganizeImportsAsync(document, options, cancellationToken).ConfigureAwait(false); }); @@ -194,7 +192,7 @@ public bool ExecuteCommand(SortAndRemoveUnnecessaryImportsCommandArgs args, Comm var organizeImportsService = document.GetRequiredLanguageService(); var newDocument = await removeImportsService.RemoveUnnecessaryImportsAsync(document, formattingOptions, cancellationToken).ConfigureAwait(false); - var options = await document.GetOrganizeImportsOptionsAsync(_globalOptions, cancellationToken).ConfigureAwait(false); + var options = await document.GetOrganizeImportsOptionsAsync(cancellationToken).ConfigureAwait(false); return await organizeImportsService.OrganizeImportsAsync(newDocument, options, cancellationToken).ConfigureAwait(false); }); } diff --git a/src/EditorFeatures/Test/Options/GlobalOptionsTests.cs b/src/EditorFeatures/Test/Options/GlobalOptionsTests.cs index 56acfd9b77965..3bac3aee241b9 100644 --- a/src/EditorFeatures/Test/Options/GlobalOptionsTests.cs +++ b/src/EditorFeatures/Test/Options/GlobalOptionsTests.cs @@ -183,7 +183,7 @@ public void ReadingOptionsFromGlobalOptions(string language) using var workspace = CreateWorkspace(out var globalOptions); var languageServices = workspace.Services.SolutionServices.GetLanguageServices(language); - VerifyDataMembersHaveNonDefaultValues(globalOptions.GetCodeActionOptions(languageServices), CodeActionOptions.GetDefault(languageServices), language); + VerifyDataMembersHaveNonDefaultValues(globalOptions.GetCodeActionOptions(languageServices), CodeActionOptions.Default, language); VerifyDataMembersHaveNonDefaultValues(globalOptions.GetBraceMatchingOptions(language), BraceMatchingOptions.Default, language); VerifyDataMembersHaveNonDefaultValues(globalOptions.GetFindUsagesOptions(language), FindUsagesOptions.Default, language); VerifyDataMembersHaveNonDefaultValues(globalOptions.GetInlineHintsOptions(language), InlineHintsOptions.Default, language); diff --git a/src/EditorFeatures/Test2/NavigationBar/TestHelpers.vb b/src/EditorFeatures/Test2/NavigationBar/TestHelpers.vb index c353602dcce20..968c05751cb0c 100644 --- a/src/EditorFeatures/Test2/NavigationBar/TestHelpers.vb +++ b/src/EditorFeatures/Test2/NavigationBar/TestHelpers.vb @@ -8,7 +8,6 @@ Imports Microsoft.CodeAnalysis Imports Microsoft.CodeAnalysis.Editor.Extensibility.NavigationBar Imports Microsoft.CodeAnalysis.Editor.Implementation.NavigationBar Imports Microsoft.CodeAnalysis.Editor.UnitTests.Extensions -Imports Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces Imports Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar Imports Microsoft.CodeAnalysis.LanguageService Imports Microsoft.CodeAnalysis.NavigationBar @@ -99,7 +98,7 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar Dim contextLocation = (Await document.GetSyntaxTreeAsync()).GetLocation(New TextSpan(0, 0)) Dim generateCodeItem = DirectCast(rightItem, WrappedNavigationBarItem).UnderlyingItem - Dim newDocument = Await VisualBasicEditorNavigationBarItemService.GetGeneratedDocumentAsync(document, generateCodeItem, workspace.GlobalOptions, CancellationToken.None) + Dim newDocument = Await VisualBasicEditorNavigationBarItemService.GetGeneratedDocumentAsync(document, generateCodeItem, CancellationToken.None) Dim actual = (Await newDocument.GetSyntaxRootAsync()).ToFullString().TrimEnd() Dim expected = expectedText.NormalizedValue.TrimEnd() diff --git a/src/EditorFeatures/TestUtilities/Utilities/CSharpCodeActionOptions.cs b/src/EditorFeatures/TestUtilities/Utilities/CSharpCodeActionOptions.cs deleted file mode 100644 index f2bad2521cfbb..0000000000000 --- a/src/EditorFeatures/TestUtilities/Utilities/CSharpCodeActionOptions.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using Microsoft.CodeAnalysis.CodeActions; -using Microsoft.CodeAnalysis.CSharp.CodeGeneration; -using Microsoft.CodeAnalysis.CSharp.Formatting; -using Microsoft.CodeAnalysis.CSharp.Simplification; - -namespace Microsoft.CodeAnalysis.Test.Utilities; - -internal static class CSharpCodeActionOptions -{ - public static CodeActionOptions Default = new() - { - CleanupOptions = new() - { - FormattingOptions = CSharpSyntaxFormattingOptions.Default, - SimplifierOptions = CSharpSimplifierOptions.Default - }, - CodeGenerationOptions = CSharpCodeGenerationOptions.Default, - }; -} diff --git a/src/EditorFeatures/TestUtilities/Utilities/VisualBasicCodeActionOptions.cs b/src/EditorFeatures/TestUtilities/Utilities/VisualBasicCodeActionOptions.cs deleted file mode 100644 index 0b48f0efabb2d..0000000000000 --- a/src/EditorFeatures/TestUtilities/Utilities/VisualBasicCodeActionOptions.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using Microsoft.CodeAnalysis.CodeActions; -using Microsoft.CodeAnalysis.ImplementType; -using Microsoft.CodeAnalysis.VisualBasic.CodeGeneration; -using Microsoft.CodeAnalysis.VisualBasic.Formatting; -using Microsoft.CodeAnalysis.VisualBasic.Simplification; - -namespace Microsoft.CodeAnalysis.Test.Utilities; - -internal static class VisualBasicCodeActionOptions -{ - public static CodeActionOptions Default = new() - { - CleanupOptions = new() - { - FormattingOptions = VisualBasicSyntaxFormattingOptions.Default, - SimplifierOptions = VisualBasicSimplifierOptions.Default, - }, - CodeGenerationOptions = VisualBasicCodeGenerationOptions.Default, - }; - - public static CodeActionOptions With(this CodeActionOptions options, VisualBasicSyntaxFormattingOptions value) - => options with { CleanupOptions = options.CleanupOptions with { FormattingOptions = value } }; - - public static CodeActionOptions With(this CodeActionOptions options, ImplementTypeOptions value) - => options with { ImplementTypeOptions = value }; -} diff --git a/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService.vb b/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService.vb index 7d041ca801528..1b2a531a9cd53 100644 --- a/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService.vb +++ b/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService.vb @@ -9,7 +9,6 @@ Imports Microsoft.CodeAnalysis.Editor.Shared.Utilities Imports Microsoft.CodeAnalysis.Editor.VisualBasic.Utilities Imports Microsoft.CodeAnalysis.Host.Mef Imports Microsoft.CodeAnalysis.NavigationBar.RoslynNavigationBarItem -Imports Microsoft.CodeAnalysis.Options Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Imports Microsoft.VisualStudio.Text Imports Microsoft.VisualStudio.Text.Editor @@ -24,19 +23,16 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar Private ReadOnly _editorOperationsFactoryService As IEditorOperationsFactoryService Private ReadOnly _textUndoHistoryRegistry As ITextUndoHistoryRegistry - Private ReadOnly _globalOptions As IGlobalOptionService Public Sub New( threadingContext As IThreadingContext, editorOperationsFactoryService As IEditorOperationsFactoryService, - textUndoHistoryRegistry As ITextUndoHistoryRegistry, - globalOptions As IGlobalOptionService) + textUndoHistoryRegistry As ITextUndoHistoryRegistry) MyBase.New(threadingContext) _editorOperationsFactoryService = editorOperationsFactoryService _textUndoHistoryRegistry = textUndoHistoryRegistry - _globalOptions = globalOptions End Sub Friend Overrides Async Function GetNavigationLocationAsync( diff --git a/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService_CodeGeneration.vb b/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService_CodeGeneration.vb index 3ee84e235c595..5dd41c53a9ebe 100644 --- a/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService_CodeGeneration.vb +++ b/src/EditorFeatures/VisualBasic/NavigationBar/VisualBasicEditorNavigationBarItemService_CodeGeneration.vb @@ -13,7 +13,6 @@ Imports Microsoft.CodeAnalysis.Formatting Imports Microsoft.CodeAnalysis.Formatting.Rules Imports Microsoft.CodeAnalysis.NavigationBar Imports Microsoft.CodeAnalysis.NavigationBar.RoslynNavigationBarItem -Imports Microsoft.CodeAnalysis.Options Imports Microsoft.CodeAnalysis.PooledObjects Imports Microsoft.CodeAnalysis.Simplification Imports Microsoft.CodeAnalysis.Text @@ -25,7 +24,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar Private Async Function GenerateCodeForItemAsync(document As Document, generateCodeItem As AbstractGenerateCodeItem, textView As ITextView, cancellationToken As CancellationToken) As Task ' We'll compute everything up front before we go mutate state Dim text = Await document.GetValueTextAsync(cancellationToken).ConfigureAwait(False) - Dim newDocument = Await GetGeneratedDocumentAsync(document, generateCodeItem, _globalOptions, cancellationToken).ConfigureAwait(False) + Dim newDocument = Await GetGeneratedDocumentAsync(document, generateCodeItem, cancellationToken).ConfigureAwait(False) Dim generatedTree = Await newDocument.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(False) Dim generatedNode = generatedTree.GetAnnotatedNodes(GeneratedSymbolAnnotation).Single().FirstAncestorOrSelf(Of MethodBlockBaseSyntax) @@ -49,13 +48,13 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar End Using End Function - Public Shared Async Function GetGeneratedDocumentAsync(document As Document, generateCodeItem As RoslynNavigationBarItem, globalOptions As IGlobalOptionService, cancellationToken As CancellationToken) As Task(Of Document) + Public Shared Async Function GetGeneratedDocumentAsync(document As Document, generateCodeItem As RoslynNavigationBarItem, cancellationToken As CancellationToken) As Task(Of Document) Dim syntaxTree = Await document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(False) Dim contextLocation = syntaxTree.GetLocation(New TextSpan(0, 0)) Dim codeGenerationContext = New CodeGenerationContext(contextLocation, generateMethodBodies:=True) - Dim newDocument = Await GetGeneratedDocumentCoreAsync(document, generateCodeItem, codeGenerationContext, globalOptions.CreateProvider(), cancellationToken).ConfigureAwait(False) + Dim newDocument = Await GetGeneratedDocumentCoreAsync(document, generateCodeItem, codeGenerationContext, cancellationToken).ConfigureAwait(False) If newDocument Is Nothing Then Return document End If @@ -86,21 +85,20 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar document As Document, generateCodeItem As RoslynNavigationBarItem, codeGenerationContext As CodeGenerationContext, - fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of Document) Select Case generateCodeItem.Kind Case RoslynNavigationBarItemKind.GenerateDefaultConstructor - Return GenerateDefaultConstructorAsync(document, DirectCast(generateCodeItem, GenerateDefaultConstructor), codeGenerationContext, fallbackOptions, cancellationToken) + Return GenerateDefaultConstructorAsync(document, DirectCast(generateCodeItem, GenerateDefaultConstructor), codeGenerationContext, cancellationToken) Case RoslynNavigationBarItemKind.GenerateEventHandler - Return GenerateEventHandlerAsync(document, DirectCast(generateCodeItem, GenerateEventHandler), codeGenerationContext, fallbackOptions, cancellationToken) + Return GenerateEventHandlerAsync(document, DirectCast(generateCodeItem, GenerateEventHandler), codeGenerationContext, cancellationToken) Case RoslynNavigationBarItemKind.GenerateFinalizer - Return GenerateFinalizerAsync(document, DirectCast(generateCodeItem, GenerateFinalizer), codeGenerationContext, fallbackOptions, cancellationToken) + Return GenerateFinalizerAsync(document, DirectCast(generateCodeItem, GenerateFinalizer), codeGenerationContext, cancellationToken) Case RoslynNavigationBarItemKind.GenerateMethod - Return GenerateMethodAsync(document, DirectCast(generateCodeItem, GenerateMethod), codeGenerationContext, fallbackOptions, cancellationToken) + Return GenerateMethodAsync(document, DirectCast(generateCodeItem, GenerateMethod), codeGenerationContext, cancellationToken) Case Else Throw ExceptionUtilities.UnexpectedValue(generateCodeItem.Kind) @@ -111,7 +109,6 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar document As Document, generateCodeItem As GenerateDefaultConstructor, codeGenerationContext As CodeGenerationContext, - fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of Document) Dim compilation = Await document.Project.GetCompilationAsync(cancellationToken).ConfigureAwait(False) @@ -156,7 +153,6 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar document As Document, generateCodeItem As GenerateEventHandler, codeGenerationContext As CodeGenerationContext, - fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of Document) Dim compilation = Await document.Project.GetCompilationAsync(cancellationToken).ConfigureAwait(False) @@ -212,7 +208,6 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar document As Document, generateCodeItem As GenerateFinalizer, codeGenerationContext As CodeGenerationContext, - fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of Document) Dim compilation = Await document.Project.GetCompilationAsync(cancellationToken).ConfigureAwait(False) @@ -257,7 +252,6 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar document As Document, generateCodeItem As GenerateMethod, codeGenerationContext As CodeGenerationContext, - fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of Document) Dim compilation = Await document.Project.GetCompilationAsync(cancellationToken).ConfigureAwait(False) diff --git a/src/EditorFeatures/VisualBasicTest/Formatting/CodeCleanUpTests.vb b/src/EditorFeatures/VisualBasicTest/Formatting/CodeCleanUpTests.vb index fb093157fcbe5..04ef58a719389 100644 --- a/src/EditorFeatures/VisualBasicTest/Formatting/CodeCleanUpTests.vb +++ b/src/EditorFeatures/VisualBasicTest/Formatting/CodeCleanUpTests.vb @@ -29,6 +29,7 @@ Imports Microsoft.CodeAnalysis.VisualBasic.Formatting Imports Microsoft.CodeAnalysis.VisualBasic.Simplification Imports Microsoft.CodeAnalysis.VisualBasic.MakeFieldReadonly Imports Microsoft.CodeAnalysis.AddFileBanner +Imports Microsoft.CodeAnalysis.Editor.UnitTests.CodeActions Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Formatting @@ -562,10 +563,10 @@ End Class Optional separateImportsGroups As Boolean = False) As Task Using workspace = TestWorkspace.CreateVisualBasic(code, composition:=EditorTestCompositions.EditorFeaturesWpf) - ' must set global options since incremental analyzer infra reads from global options - Dim globalOptions = workspace.GlobalOptions - globalOptions.SetGlobalOption(GenerationOptions.SeparateImportDirectiveGroups, LanguageNames.VisualBasic, separateImportsGroups) - globalOptions.SetGlobalOption(GenerationOptions.PlaceSystemNamespaceFirst, LanguageNames.VisualBasic, systemImportsFirst) + workspace.SetAnalyzerFallbackOptions(New OptionsCollection(LanguageNames.VisualBasic) From { + {GenerationOptions.SeparateImportDirectiveGroups, separateImportsGroups}, + {GenerationOptions.PlaceSystemNamespaceFirst, systemImportsFirst} + }) Dim solution = workspace.CurrentSolution.WithAnalyzerReferences( { @@ -587,7 +588,7 @@ End Class document, enabledDiagnostics, CodeAnalysisProgress.None, - globalOptions.CreateProvider(), + workspace.GlobalOptions.CreateProvider(), CancellationToken.None) Dim actual = Await newDoc.GetTextAsync() diff --git a/src/EditorFeatures/VisualBasicTest/Organizing/OrganizeTypeDeclarationTests.vb b/src/EditorFeatures/VisualBasicTest/Organizing/OrganizeTypeDeclarationTests.vb index cf421e3dd8258..14bccd69d039a 100644 --- a/src/EditorFeatures/VisualBasicTest/Organizing/OrganizeTypeDeclarationTests.vb +++ b/src/EditorFeatures/VisualBasicTest/Organizing/OrganizeTypeDeclarationTests.vb @@ -944,7 +944,6 @@ End Namespace Dim handler = New OrganizeDocumentCommandHandler( workspace.GetService(Of IThreadingContext), - workspace.GlobalOptions, workspace.ExportProvider.GetExportedValue(Of IAsynchronousOperationListenerProvider)) Dim state = handler.GetCommandState(New SortAndRemoveUnnecessaryImportsCommandArgs(textView, textView.TextBuffer)) diff --git a/src/Features/Core/Portable/ImplementAbstractClass/AbstractImplementAbstractClassCodeFixProvider.cs b/src/Features/Core/Portable/ImplementAbstractClass/AbstractImplementAbstractClassCodeFixProvider.cs index d8bebfa408ed0..d62200df8bb55 100644 --- a/src/Features/Core/Portable/ImplementAbstractClass/AbstractImplementAbstractClassCodeFixProvider.cs +++ b/src/Features/Core/Portable/ImplementAbstractClass/AbstractImplementAbstractClassCodeFixProvider.cs @@ -39,7 +39,7 @@ public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context) return; var data = await ImplementAbstractClassData.TryGetDataAsync( - document, classNode, GetClassIdentifier(classNode), context.Options.GetImplementTypeOptions(document.Project.Services), cancellationToken).ConfigureAwait(false); + document, classNode, GetClassIdentifier(classNode), context.Options.GetOptions(document.Project.Services).ImplementTypeOptions, cancellationToken).ConfigureAwait(false); if (data == null) return; diff --git a/src/Features/Core/Portable/ImplementInterface/AbstractImplementInterfaceCodeFixProvider.cs b/src/Features/Core/Portable/ImplementInterface/AbstractImplementInterfaceCodeFixProvider.cs index 421f53f38f91e..7b764332d0c5b 100644 --- a/src/Features/Core/Portable/ImplementInterface/AbstractImplementInterfaceCodeFixProvider.cs +++ b/src/Features/Core/Portable/ImplementInterface/AbstractImplementInterfaceCodeFixProvider.cs @@ -42,7 +42,7 @@ public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context) if (this.IsTypeInInterfaceBaseList(type)) { var service = document.GetRequiredLanguageService(); - var options = context.Options.GetImplementTypeOptions(document.Project.Services); + var options = context.Options.GetOptions(document.Project.Services).ImplementTypeOptions; var info = await service.AnalyzeAsync( document, type, cancellationToken).ConfigureAwait(false); diff --git a/src/Features/ExternalAccess/OmniSharp/CodeActions/OmniSharpCodeActionOptions.cs b/src/Features/ExternalAccess/OmniSharp/CodeActions/OmniSharpCodeActionOptions.cs index f811249c72781..b1ece57d5dc27 100644 --- a/src/Features/ExternalAccess/OmniSharp/CodeActions/OmniSharpCodeActionOptions.cs +++ b/src/Features/ExternalAccess/OmniSharp/CodeActions/OmniSharpCodeActionOptions.cs @@ -17,24 +17,12 @@ internal readonly record struct OmniSharpCodeActionOptions( OmniSharpImplementTypeOptions ImplementTypeOptions, OmniSharpLineFormattingOptions LineFormattingOptions) { +#pragma warning disable IDE0060 // Remove unused parameter internal CodeActionOptions GetCodeActionOptions(LanguageServices languageServices) +#pragma warning restore IDE0060 // Remove unused parameter { - var defaultOptions = CodeActionOptions.GetDefault(languageServices); - return defaultOptions with + return CodeActionOptions.Default with { - CleanupOptions = defaultOptions.CleanupOptions with - { - FormattingOptions = defaultOptions.CleanupOptions.FormattingOptions with - { - LineFormatting = new() - { - IndentationSize = LineFormattingOptions.IndentationSize, - TabSize = LineFormattingOptions.TabSize, - UseTabs = LineFormattingOptions.UseTabs, - NewLine = LineFormattingOptions.NewLine, - } - } - }, ImplementTypeOptions = new() { InsertionBehavior = (ImplementTypeInsertionBehavior)ImplementTypeOptions.InsertionBehavior, diff --git a/src/Features/ExternalAccess/OmniSharp/Formatting/OmniSharpOrganizeImportsOptionsWrapper.cs b/src/Features/ExternalAccess/OmniSharp/Formatting/OmniSharpOrganizeImportsOptionsWrapper.cs index 133890f9031ab..5e690bb39bd71 100644 --- a/src/Features/ExternalAccess/OmniSharp/Formatting/OmniSharpOrganizeImportsOptionsWrapper.cs +++ b/src/Features/ExternalAccess/OmniSharp/Formatting/OmniSharpOrganizeImportsOptionsWrapper.cs @@ -31,7 +31,9 @@ public OmniSharpOrganizeImportsOptionsWrapper( { } +#pragma warning disable IDE0060 // Remove unused parameter public static async ValueTask FromDocumentAsync(Document document, OmniSharpOrganizeImportsOptionsWrapper fallbackOptions, CancellationToken cancellationToken) - => new(await document.GetOrganizeImportsOptionsAsync(fallbackOptions.UnderlyingObject, cancellationToken).ConfigureAwait(false)); +#pragma warning restore IDE0060 // Remove unused parameter + => new(await document.GetOrganizeImportsOptionsAsync(cancellationToken).ConfigureAwait(false)); } } diff --git a/src/Features/ExternalAccess/OmniSharp/InternalAPI.Unshipped.txt b/src/Features/ExternalAccess/OmniSharp/InternalAPI.Unshipped.txt index c4b478302ae72..ca63d7e45d9c1 100644 --- a/src/Features/ExternalAccess/OmniSharp/InternalAPI.Unshipped.txt +++ b/src/Features/ExternalAccess/OmniSharp/InternalAPI.Unshipped.txt @@ -208,7 +208,6 @@ Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.OmniSharpRenamer.RenameResult.So Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.IOmniSharpLineFormattingOptionsProvider Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.IOmniSharpLineFormattingOptionsProvider.GetLineFormattingOptions() -> Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmniSharpLineFormattingOptions! Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService -Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.CleanCodeGenerationOptionsProvider.get -> Microsoft.CodeAnalysis.CodeGeneration.CleanCodeGenerationOptionsProvider! Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.GenerateOverrides.get -> bool Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.GenerateOverrides.set -> void Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.GetGenerateConstructorFromMembersOptionsAddNullChecks(string! language) -> bool @@ -218,7 +217,7 @@ Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOpt Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.InlineHintsOptionsDisplayAllOverride.set -> void Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.OmniSharpCleanCodeGenerationOptionsProvider Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.OmniSharpCleanCodeGenerationOptionsProvider.OmniSharpCleanCodeGenerationOptionsProvider(Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.IOmniSharpLineFormattingOptionsProvider! lineFormattingOptionsProvider) -> void -Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.OmnisharpLegacyGlobalOptionsWorkspaceService(Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.IOmniSharpLineFormattingOptionsProvider! lineFormattingOptionsProvider) -> void +Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.OmnisharpLegacyGlobalOptionsWorkspaceService() -> void Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.RazorTabSize.get -> int Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.RazorUseTabs.get -> bool Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options.OmnisharpLegacyGlobalOptionsWorkspaceService.SetGenerateConstructorFromMembersOptionsAddNullChecks(string! language, bool value) -> void diff --git a/src/Features/ExternalAccess/OmniSharp/Options/OmnisharpLegacyGlobalOptionsWorkspaceService.cs b/src/Features/ExternalAccess/OmniSharp/Options/OmnisharpLegacyGlobalOptionsWorkspaceService.cs index d65c2d348618a..7c50c9eb08f0b 100644 --- a/src/Features/ExternalAccess/OmniSharp/Options/OmnisharpLegacyGlobalOptionsWorkspaceService.cs +++ b/src/Features/ExternalAccess/OmniSharp/Options/OmnisharpLegacyGlobalOptionsWorkspaceService.cs @@ -2,16 +2,11 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -using System.Composition; -using System.Threading.Tasks; -using System.Threading; using System; +using System.Composition; +using Microsoft.CodeAnalysis.Formatting; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Options; -using Microsoft.CodeAnalysis.CodeGeneration; -using Microsoft.CodeAnalysis.Formatting; -using Microsoft.CodeAnalysis.Host; -using Microsoft.CodeAnalysis.CodeCleanup; namespace Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options { @@ -21,13 +16,10 @@ namespace Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.Options [ExportWorkspaceService(typeof(ILegacyGlobalOptionsWorkspaceService)), Shared] internal sealed class OmnisharpLegacyGlobalOptionsWorkspaceService : ILegacyGlobalOptionsWorkspaceService { - private readonly CleanCodeGenerationOptionsProvider _provider; - [ImportingConstructor] [Obsolete(MefConstruction.ImportingConstructorMessage, error: true)] - public OmnisharpLegacyGlobalOptionsWorkspaceService(IOmniSharpLineFormattingOptionsProvider lineFormattingOptionsProvider) + public OmnisharpLegacyGlobalOptionsWorkspaceService() { - _provider = new OmniSharpCleanCodeGenerationOptionsProvider(lineFormattingOptionsProvider); } public bool RazorUseTabs @@ -36,18 +28,6 @@ public bool RazorUseTabs public int RazorTabSize => LineFormattingOptions.Default.TabSize; - public CleanCodeGenerationOptionsProvider CleanCodeGenerationOptionsProvider - => _provider; - - /// TODO: remove. https://github.com/dotnet/roslyn/issues/57283 -#pragma warning disable CA1822 // Mark members as static - public bool InlineHintsOptionsDisplayAllOverride -#pragma warning restore CA1822 - { - get => false; - set { } - } - public bool GenerateOverrides { get => true; @@ -74,37 +54,5 @@ public bool GetGenerateConstructorFromMembersOptionsAddNullChecks(string languag public void SetGenerateConstructorFromMembersOptionsAddNullChecks(string language, bool value) { } - - internal sealed class OmniSharpCleanCodeGenerationOptionsProvider : AbstractCleanCodeGenerationOptionsProvider - { - private readonly IOmniSharpLineFormattingOptionsProvider _lineFormattingOptionsProvider; - - public OmniSharpCleanCodeGenerationOptionsProvider(IOmniSharpLineFormattingOptionsProvider lineFormattingOptionsProvider) - { - _lineFormattingOptionsProvider = lineFormattingOptionsProvider; - } - - public override ValueTask GetCleanCodeGenerationOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - { - var lineFormattingOptions = _lineFormattingOptionsProvider.GetLineFormattingOptions(); - var codeGenerationOptions = CleanCodeGenerationOptions.GetDefault(languageServices) with - { - CleanupOptions = CodeCleanupOptions.GetDefault(languageServices) with - { - FormattingOptions = SyntaxFormattingOptions.GetDefault(languageServices) with - { - LineFormatting = new() - { - IndentationSize = lineFormattingOptions.IndentationSize, - TabSize = lineFormattingOptions.TabSize, - UseTabs = lineFormattingOptions.UseTabs, - NewLine = lineFormattingOptions.NewLine, - } - } - } - }; - return new ValueTask(codeGenerationOptions); - } - } } } diff --git a/src/Features/VisualBasic/Portable/CodeFixes/GenerateEvent/GenerateEventCodeFixProvider.vb b/src/Features/VisualBasic/Portable/CodeFixes/GenerateEvent/GenerateEventCodeFixProvider.vb index f7360c29dfa7e..6d1792578115f 100644 --- a/src/Features/VisualBasic/Portable/CodeFixes/GenerateEvent/GenerateEventCodeFixProvider.vb +++ b/src/Features/VisualBasic/Portable/CodeFixes/GenerateEvent/GenerateEventCodeFixProvider.vb @@ -53,17 +53,17 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.GenerateEvent For Each node In token.GetAncestors(Of SyntaxNode).Where(Function(c) c.Span.IntersectsWith(context.Span) AndAlso IsCandidate(c)) Dim qualifiedName = TryCast(node, QualifiedNameSyntax) If qualifiedName IsNot Nothing Then - result = Await GenerateEventFromImplementsAsync(context.Document, qualifiedName, context.Options, context.CancellationToken).ConfigureAwait(False) + result = Await GenerateEventFromImplementsAsync(context.Document, qualifiedName, context.CancellationToken).ConfigureAwait(False) End If Dim handlesClauseItem = TryCast(node, HandlesClauseItemSyntax) If handlesClauseItem IsNot Nothing Then - result = Await GenerateEventFromHandlesAsync(context.Document, handlesClauseItem, context.Options, context.CancellationToken).ConfigureAwait(False) + result = Await GenerateEventFromHandlesAsync(context.Document, handlesClauseItem, context.CancellationToken).ConfigureAwait(False) End If Dim handlerStatement = TryCast(node, AddRemoveHandlerStatementSyntax) If handlerStatement IsNot Nothing Then - result = Await GenerateEventFromAddRemoveHandlerAsync(context.Document, handlerStatement, context.Options, context.CancellationToken).ConfigureAwait(False) + result = Await GenerateEventFromAddRemoveHandlerAsync(context.Document, handlerStatement, context.CancellationToken).ConfigureAwait(False) End If If result IsNot Nothing Then @@ -73,7 +73,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.GenerateEvent Next End Function - Private Shared Async Function GenerateEventFromAddRemoveHandlerAsync(document As Document, handlerStatement As AddRemoveHandlerStatementSyntax, fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of CodeAction) + Private Shared Async Function GenerateEventFromAddRemoveHandlerAsync(document As Document, handlerStatement As AddRemoveHandlerStatementSyntax, cancellationToken As CancellationToken) As Task(Of CodeAction) Dim semanticModel = Await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(False) Dim handlerExpression = GetHandlerExpression(handlerStatement) @@ -113,7 +113,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.GenerateEvent Return Nothing End If - Return Await GenerateCodeActionAsync(document, semanticModel, delegateSymbol, actualEventName, targetType, fallbackOptions, cancellationToken).ConfigureAwait(False) + Return Await GenerateCodeActionAsync(document, semanticModel, delegateSymbol, actualEventName, targetType, cancellationToken).ConfigureAwait(False) End Function Private Shared Async Function GenerateCodeActionAsync( @@ -122,7 +122,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.GenerateEvent delegateSymbol As IMethodSymbol, actualEventName As String, targetType As INamedTypeSymbol, - fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of CodeAction) Dim codeGenService = document.Project.Solution.Services.GetLanguageServices(targetType.Language).GetService(Of ICodeGenerationService) @@ -239,7 +238,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.GenerateEvent Return TypeOf node Is HandlesClauseItemSyntax OrElse TypeOf node Is QualifiedNameSyntax OrElse TypeOf node Is AddRemoveHandlerStatementSyntax End Function - Private Shared Async Function GenerateEventFromImplementsAsync(document As Document, node As QualifiedNameSyntax, fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of CodeAction) + Private Shared Async Function GenerateEventFromImplementsAsync(document As Document, node As QualifiedNameSyntax, cancellationToken As CancellationToken) As Task(Of CodeAction) If node.Right.IsMissing Then Return Nothing End If @@ -312,7 +311,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.GenerateEvent End If End Function - Private Shared Async Function GenerateEventFromHandlesAsync(document As Document, handlesClauseItem As HandlesClauseItemSyntax, fallbackOptions As CodeAndImportGenerationOptionsProvider, cancellationToken As CancellationToken) As Task(Of CodeAction) + Private Shared Async Function GenerateEventFromHandlesAsync(document As Document, handlesClauseItem As HandlesClauseItemSyntax, cancellationToken As CancellationToken) As Task(Of CodeAction) If handlesClauseItem.IsMissing OrElse handlesClauseItem.EventContainer.IsMissing OrElse handlesClauseItem.EventMember.IsMissing Then Return Nothing End If diff --git a/src/Features/VisualBasic/Portable/Formatting/VisualBasicOrganizeUsingsNewDocumentFormattingProvider.vb b/src/Features/VisualBasic/Portable/Formatting/VisualBasicOrganizeUsingsNewDocumentFormattingProvider.vb index 672ce0df743cf..61c2d108a3455 100644 --- a/src/Features/VisualBasic/Portable/Formatting/VisualBasicOrganizeUsingsNewDocumentFormattingProvider.vb +++ b/src/Features/VisualBasic/Portable/Formatting/VisualBasicOrganizeUsingsNewDocumentFormattingProvider.vb @@ -21,7 +21,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Formatting Public Async Function FormatNewDocumentAsync(document As Document, hintDocument As Document, options As CodeCleanupOptions, cancellationToken As CancellationToken) As Task(Of Document) Implements INewDocumentFormattingProvider.FormatNewDocumentAsync Dim service = document.GetRequiredLanguageService(Of IOrganizeImportsService) - Dim organizeOptions = Await document.GetOrganizeImportsOptionsAsync(options.GetOrganizeImportsOptions(), cancellationToken).ConfigureAwait(False) + Dim organizeOptions = Await document.GetOrganizeImportsOptionsAsync(cancellationToken).ConfigureAwait(False) Return Await service.OrganizeImportsAsync(document, organizeOptions, cancellationToken).ConfigureAwait(False) End Function End Class diff --git a/src/LanguageServer/Protocol/Features/CodeCleanup/AbstractCodeCleanupService.cs b/src/LanguageServer/Protocol/Features/CodeCleanup/AbstractCodeCleanupService.cs index ae71e08efe42f..20adf787ac759 100644 --- a/src/LanguageServer/Protocol/Features/CodeCleanup/AbstractCodeCleanupService.cs +++ b/src/LanguageServer/Protocol/Features/CodeCleanup/AbstractCodeCleanupService.cs @@ -83,7 +83,7 @@ public async Task CleanupAsync( { progressTracker.Report(CodeAnalysisProgress.Description(this.OrganizeImportsDescription)); document = await RemoveSortUsingsAsync( - document, enabledDiagnostics.OrganizeUsings, fallbackOptions, cancellationToken).ConfigureAwait(false); + document, enabledDiagnostics.OrganizeUsings, cancellationToken).ConfigureAwait(false); progressTracker.ItemCompleted(); } @@ -109,7 +109,7 @@ public async Task CleanupAsync( } private static async Task RemoveSortUsingsAsync( - Document document, OrganizeUsingsSet organizeUsingsSet, CodeActionOptionsProvider fallbackOptions, CancellationToken cancellationToken) + Document document, OrganizeUsingsSet organizeUsingsSet, CancellationToken cancellationToken) { if (organizeUsingsSet.IsRemoveUnusedImportEnabled && document.GetLanguageService() is { } removeUsingsService) @@ -126,7 +126,7 @@ private static async Task RemoveSortUsingsAsync( { using (Logger.LogBlock(FunctionId.CodeCleanup_SortImports, cancellationToken)) { - var organizeOptions = await document.GetOrganizeImportsOptionsAsync(fallbackOptions, cancellationToken).ConfigureAwait(false); + var organizeOptions = await document.GetOrganizeImportsOptionsAsync(cancellationToken).ConfigureAwait(false); document = await organizeImportsService.OrganizeImportsAsync(document, organizeOptions, cancellationToken).ConfigureAwait(false); } } diff --git a/src/LanguageServer/Protocol/Features/Options/CodeActionOptionsStorage.cs b/src/LanguageServer/Protocol/Features/Options/CodeActionOptionsStorage.cs index 18a5691db00dd..522657f2f3e1a 100644 --- a/src/LanguageServer/Protocol/Features/Options/CodeActionOptionsStorage.cs +++ b/src/LanguageServer/Protocol/Features/Options/CodeActionOptionsStorage.cs @@ -18,8 +18,6 @@ internal static class CodeActionOptionsStorage public static CodeActionOptions GetCodeActionOptions(this IGlobalOptionService globalOptions, LanguageServices languageServices) => new() { - CleanupOptions = globalOptions.GetCodeCleanupOptions(languageServices), - CodeGenerationOptions = globalOptions.GetCodeGenerationOptions(languageServices), SearchOptions = globalOptions.GetSymbolSearchOptions(languageServices.Language), ImplementTypeOptions = globalOptions.GetImplementTypeOptions(languageServices.Language), HideAdvancedMembers = globalOptions.GetOption(CompletionOptionsStorage.HideAdvancedMembers, languageServices.Language), diff --git a/src/LanguageServer/Protocol/Features/Options/GlobalCodeActionOptionsProvider.cs b/src/LanguageServer/Protocol/Features/Options/GlobalCodeActionOptionsProvider.cs index 3b7e20ca6e9e1..a9b5000a69e25 100644 --- a/src/LanguageServer/Protocol/Features/Options/GlobalCodeActionOptionsProvider.cs +++ b/src/LanguageServer/Protocol/Features/Options/GlobalCodeActionOptionsProvider.cs @@ -2,19 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -using System.Threading; -using System.Threading.Tasks; -using Microsoft.CodeAnalysis.AddImport; using Microsoft.CodeAnalysis.CodeActions; -using Microsoft.CodeAnalysis.CodeCleanup; -using Microsoft.CodeAnalysis.CodeGeneration; -using Microsoft.CodeAnalysis.CodeStyle; -using Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles; -using Microsoft.CodeAnalysis.Formatting; using Microsoft.CodeAnalysis.Host; -using Microsoft.CodeAnalysis.OrganizeImports; -using Microsoft.CodeAnalysis.Simplification; -using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.Options; @@ -25,13 +14,6 @@ public static Provider CreateProvider(this IGlobalOptionService globalOptions) // TODO: we can implement providers directly on IGlobalOptionService once it moves to LSP layer public sealed class Provider : - SyntaxFormattingOptionsProvider, - SimplifierOptionsProvider, - AddImportPlacementOptionsProvider, - CodeCleanupOptionsProvider, - CodeGenerationOptionsProvider, - CleanCodeGenerationOptionsProvider, - CodeAndImportGenerationOptionsProvider, CodeActionOptionsProvider { private readonly IGlobalOptionService _globalOptions; @@ -41,38 +23,5 @@ public Provider(IGlobalOptionService globalOptions) CodeActionOptions CodeActionOptionsProvider.GetOptions(LanguageServices languageServices) => _globalOptions.GetCodeActionOptions(languageServices); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetLineFormattingOptions(languageServices.Language)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetDocumentFormattingOptions()); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetSyntaxFormattingOptions(languageServices)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetSimplifierOptions(languageServices)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetAddImportPlacementOptions(languageServices, allowInHiddenRegions: null)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetOrganizeImportsOptions(languageServices.Language)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetCodeCleanupOptions(languageServices)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetCodeGenerationOptions(languageServices)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetNamingStylePreferences(languageServices.Language)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetCleanCodeGenerationOptions(languageServices)); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(_globalOptions.GetCodeAndImportGenerationOptions(languageServices)); } } diff --git a/src/LanguageServer/Protocol/Features/Options/OrganizeImportsOptionsStorage.cs b/src/LanguageServer/Protocol/Features/Options/OrganizeImportsOptionsStorage.cs deleted file mode 100644 index c84aa3c3c5d43..0000000000000 --- a/src/LanguageServer/Protocol/Features/Options/OrganizeImportsOptionsStorage.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Threading; -using System.Threading.Tasks; -using Microsoft.CodeAnalysis.Options; - -namespace Microsoft.CodeAnalysis.OrganizeImports; - -internal static class OrganizeImportsOptionsStorage -{ - public static ValueTask GetOrganizeImportsOptionsAsync(this Document document, IGlobalOptionService globalOptions, CancellationToken cancellationToken) - => document.GetOrganizeImportsOptionsAsync(globalOptions.GetOrganizeImportsOptions(document.Project.Language), cancellationToken); - - public static OrganizeImportsOptions GetOrganizeImportsOptions(this IGlobalOptionService globalOptions, string language) - => globalOptions.GetOrganizeImportsOptions(language, fallbackOptions: null); -} diff --git a/src/Workspaces/Core/Portable/Formatting/Formatter.cs b/src/Workspaces/Core/Portable/Formatting/Formatter.cs index f8740a7d29618..0af997b7d48a9 100644 --- a/src/Workspaces/Core/Portable/Formatting/Formatter.cs +++ b/src/Workspaces/Core/Portable/Formatting/Formatter.cs @@ -367,7 +367,7 @@ public static async Task OrganizeImportsAsync(Document document, Cance internal static async ValueTask GetOrganizeImportsOptionsAsync(Document document, CancellationToken cancellationToken) { var optionSet = await document.GetOptionsAsync(cancellationToken).ConfigureAwait(false); - return optionSet.GetOrganizeImportsOptions(document.Project.Language, fallbackOptions: null); + return optionSet.GetOrganizeImportsOptions(document.Project.Language); } #pragma warning restore } diff --git a/src/Workspaces/Core/Portable/OrganizeImports/OrganizeImportsOptions.cs b/src/Workspaces/Core/Portable/OrganizeImports/OrganizeImportsOptions.cs index 084efecf7c92d..5a1e43b672b93 100644 --- a/src/Workspaces/Core/Portable/OrganizeImports/OrganizeImportsOptions.cs +++ b/src/Workspaces/Core/Portable/OrganizeImports/OrganizeImportsOptions.cs @@ -26,30 +26,19 @@ public OrganizeImportsOptions() public static readonly OrganizeImportsOptions Default = new(); } -internal interface OrganizeImportsOptionsProvider : OptionsProvider -{ -} - internal static class OrganizeImportsOptionsProviders { - public static OrganizeImportsOptions GetOrganizeImportsOptions(this IOptionsReader options, string language, OrganizeImportsOptions? fallbackOptions) - { - fallbackOptions ??= OrganizeImportsOptions.Default; - - return new() + public static OrganizeImportsOptions GetOrganizeImportsOptions(this IOptionsReader options, string language) + => new() { - PlaceSystemNamespaceFirst = options.GetOption(GenerationOptions.PlaceSystemNamespaceFirst, language, fallbackOptions.Value.PlaceSystemNamespaceFirst), - SeparateImportDirectiveGroups = options.GetOption(GenerationOptions.SeparateImportDirectiveGroups, language, fallbackOptions.Value.SeparateImportDirectiveGroups), - NewLine = options.GetOption(FormattingOptions2.NewLine, language, fallbackOptions.Value.NewLine) + PlaceSystemNamespaceFirst = options.GetOption(GenerationOptions.PlaceSystemNamespaceFirst, language), + SeparateImportDirectiveGroups = options.GetOption(GenerationOptions.SeparateImportDirectiveGroups, language), + NewLine = options.GetOption(FormattingOptions2.NewLine, language) }; - } - public static async ValueTask GetOrganizeImportsOptionsAsync(this Document document, OrganizeImportsOptions? fallbackOptions, CancellationToken cancellationToken) + public static async ValueTask GetOrganizeImportsOptionsAsync(this Document document, CancellationToken cancellationToken) { var configOptions = await document.GetAnalyzerConfigOptionsAsync(cancellationToken).ConfigureAwait(false); - return configOptions.GetOrganizeImportsOptions(document.Project.Language, fallbackOptions); + return configOptions.GetOrganizeImportsOptions(document.Project.Language); } - - public static async ValueTask GetOrganizeImportsOptionsAsync(this Document document, OrganizeImportsOptionsProvider fallbackOptionsProvider, CancellationToken cancellationToken) - => await GetOrganizeImportsOptionsAsync(document, await fallbackOptionsProvider.GetOptionsAsync(document.Project.Services, cancellationToken).ConfigureAwait(false), cancellationToken).ConfigureAwait(false); } diff --git a/src/Workspaces/CoreTest/Remote/ServiceDescriptorTests.cs b/src/Workspaces/CoreTest/Remote/ServiceDescriptorTests.cs index d10f273c5fd17..1b771b5110037 100644 --- a/src/Workspaces/CoreTest/Remote/ServiceDescriptorTests.cs +++ b/src/Workspaces/CoreTest/Remote/ServiceDescriptorTests.cs @@ -235,7 +235,7 @@ public void OptionsAreMessagePackSerializable(string language) SyntaxFormattingOptions.GetDefault(languageServices), CodeCleanupOptions.GetDefault(languageServices), CodeGenerationOptions.GetDefault(languageServices), - CodeActionOptions.GetDefault(languageServices), + CodeActionOptions.Default, IndentationOptions.GetDefault(languageServices), ExtractMethodGenerationOptions.GetDefault(languageServices), diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/AddImport/AddImportPlacementOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/AddImport/AddImportPlacementOptions.cs index 6311026c4d17e..b06105cca50e2 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/AddImport/AddImportPlacementOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/AddImport/AddImportPlacementOptions.cs @@ -39,13 +39,6 @@ internal sealed record class AddImportPlacementOptions public static readonly AddImportPlacementOptions Default = new(); } -internal interface AddImportPlacementOptionsProvider -#if !CODE_STYLE - : OptionsProvider -#endif -{ -} - internal static partial class AddImportPlacementOptionsProviders { #if !CODE_STYLE diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeCleanup/CodeCleanupOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeCleanup/CodeCleanupOptions.cs index adbddd1473239..d9faeb67b65c6 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeCleanup/CodeCleanupOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeCleanup/CodeCleanupOptions.cs @@ -44,43 +44,6 @@ public OrganizeImportsOptions GetOrganizeImportsOptions() #endif } -internal interface CodeCleanupOptionsProvider : -#if !CODE_STYLE - OptionsProvider, -#endif - SyntaxFormattingOptionsProvider, - SimplifierOptionsProvider, - AddImportPlacementOptionsProvider, - DocumentFormattingOptionsProvider -{ -} - -#if !CODE_STYLE -internal abstract class AbstractCodeCleanupOptionsProvider : CodeCleanupOptionsProvider -{ - public abstract ValueTask GetCodeCleanupOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => GetCodeCleanupOptionsAsync(languageServices, cancellationToken); - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCodeCleanupOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).FormattingOptions.LineFormatting; - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCodeCleanupOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).DocumentFormattingOptions; - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCodeCleanupOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).FormattingOptions; - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCodeCleanupOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).SimplifierOptions; - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCodeCleanupOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).AddImportOptions; -} - -#endif - internal static class CodeCleanupOptionsProviders { #if !CODE_STYLE diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CleanCodeGenerationOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CleanCodeGenerationOptions.cs index 344c67e28c7c5..1acef75129fa3 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CleanCodeGenerationOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CleanCodeGenerationOptions.cs @@ -40,37 +40,7 @@ public CodeAndImportGenerationOptions CodeAndImportGenerationOptions #endif } -internal interface CleanCodeGenerationOptionsProvider : #if !CODE_STYLE - OptionsProvider, -#endif - CodeGenerationOptionsProvider, - CodeCleanupOptionsProvider, - CodeAndImportGenerationOptionsProvider -{ -} - -#if !CODE_STYLE -internal abstract class AbstractCleanCodeGenerationOptionsProvider : AbstractCodeCleanupOptionsProvider, CleanCodeGenerationOptionsProvider -{ - public abstract ValueTask GetCleanCodeGenerationOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken); - - public sealed override async ValueTask GetCodeCleanupOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCleanCodeGenerationOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).CleanupOptions; - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => GetCleanCodeGenerationOptionsAsync(languageServices, cancellationToken); - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCleanCodeGenerationOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).CodeAndImportGenerationOptions; - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCleanCodeGenerationOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).GenerationOptions; - - async ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => (await GetCleanCodeGenerationOptionsAsync(languageServices, cancellationToken).ConfigureAwait(false)).GenerationOptions.NamingStyle; -} - internal static class CleanCodeGenerationOptionsProviders { public static async ValueTask GetCleanCodeGenerationOptionsAsync(this Document document, CancellationToken cancellationToken) diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CodeGenerationOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CodeGenerationOptions.cs index bdfaf6d61257b..a0df454f12d47 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CodeGenerationOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeGeneration/CodeGenerationOptions.cs @@ -61,44 +61,9 @@ internal static CodeAndImportGenerationOptions GetDefault(LanguageServices langu GenerationOptions = CodeGenerationOptions.GetDefault(languageServices), AddImportOptions = AddImportPlacementOptions.Default }; - - internal CodeAndImportGenerationOptionsProvider CreateProvider() - => new Provider(this); - - private sealed class Provider(CodeAndImportGenerationOptions options) : CodeAndImportGenerationOptionsProvider - { - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(options); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(options.GenerationOptions); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(options.GenerationOptions.NamingStyle); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(options.AddImportOptions); - } #endif } -internal interface CodeGenerationOptionsProvider : -#if !CODE_STYLE - OptionsProvider, -#endif - NamingStylePreferencesProvider -{ -} - -internal interface CodeAndImportGenerationOptionsProvider : -#if !CODE_STYLE - OptionsProvider, -#endif - CodeGenerationOptionsProvider, - AddImportPlacementOptionsProvider -{ -} - internal static class CodeGenerationOptionsProviders { #if !CODE_STYLE diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/DocumentFormattingOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/DocumentFormattingOptions.cs index d3d82026a590b..6495f54bcdacb 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/DocumentFormattingOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/DocumentFormattingOptions.cs @@ -19,13 +19,6 @@ internal sealed record class DocumentFormattingOptions [DataMember] public bool InsertFinalNewLine { get; init; } = false; } -internal interface DocumentFormattingOptionsProvider -#if !CODE_STYLE - : OptionsProvider -#endif -{ -} - internal static class DocumentFormattingOptionsProviders { public static DocumentFormattingOptions GetDocumentFormattingOptions(this IOptionsReader options) diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/LineFormattingOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/LineFormattingOptions.cs index 27624ca8c0c33..6e034d7b50492 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/LineFormattingOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/LineFormattingOptions.cs @@ -22,13 +22,6 @@ internal sealed record class LineFormattingOptions [DataMember] public string NewLine { get; init; } = Environment.NewLine; } -internal interface LineFormattingOptionsProvider -#if !CODE_STYLE - : OptionsProvider -#endif -{ -} - internal static partial class LineFormattingOptionsProviders { public static LineFormattingOptions GetLineFormattingOptions(this IOptionsReader options, string language) diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/SyntaxFormattingOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/SyntaxFormattingOptions.cs index 4eecbfe3eb783..f97d20a65fc66 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/SyntaxFormattingOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/SyntaxFormattingOptions.cs @@ -52,14 +52,6 @@ public static SyntaxFormattingOptions GetDefault(LanguageServices languageServic #endif } -internal interface SyntaxFormattingOptionsProvider : -#if !CODE_STYLE - OptionsProvider, -#endif - LineFormattingOptionsProvider -{ -} - internal static partial class SyntaxFormattingOptionsProviders { #if !CODE_STYLE diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Simplification/SimplifierOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Simplification/SimplifierOptions.cs index ba47f590961f4..c0d000aa20b0a 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Simplification/SimplifierOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Simplification/SimplifierOptions.cs @@ -65,13 +65,6 @@ public static SimplifierOptions GetDefault(LanguageServices languageServices) #endif } -internal interface SimplifierOptionsProvider -#if !CODE_STYLE - : OptionsProvider -#endif -{ -} - internal static partial class SimplifierOptionsProviders { #if !CODE_STYLE diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeFixes/CodeActionOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeFixes/CodeActionOptions.cs index bb531b3b84331..41dd5f151a03e 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeFixes/CodeActionOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeFixes/CodeActionOptions.cs @@ -4,23 +4,13 @@ using System; using System.Runtime.Serialization; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.CodeAnalysis.AddImport; using Microsoft.CodeAnalysis.CodeCleanup; using Microsoft.CodeAnalysis.CodeFixes; using Microsoft.CodeAnalysis.CodeFixesAndRefactorings; using Microsoft.CodeAnalysis.CodeGeneration; -using Microsoft.CodeAnalysis.CodeStyle; -using Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles; -using Microsoft.CodeAnalysis.ExtractMethod; -using Microsoft.CodeAnalysis.Formatting; using Microsoft.CodeAnalysis.Host; using Microsoft.CodeAnalysis.ImplementType; -using Microsoft.CodeAnalysis.OrganizeImports; -using Microsoft.CodeAnalysis.Simplification; using Microsoft.CodeAnalysis.SymbolSearch; -using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.CodeActions; @@ -30,44 +20,19 @@ namespace Microsoft.CodeAnalysis.CodeActions; [DataContract] internal sealed record class CodeActionOptions { -#if CODE_STYLE - public static readonly CodeActionOptionsProvider DefaultProvider = new DelegatingCodeActionOptionsProvider(GetDefault); -#else - public static readonly CodeActionOptionsProvider DefaultProvider = new DelegatingCodeActionOptionsProvider(static ls => GetDefault(ls)); -#endif + public static readonly CodeActionOptions Default = new(); + public static readonly CodeActionOptionsProvider DefaultProvider = Default.CreateProvider(); #if !CODE_STYLE - [DataMember] public required CodeCleanupOptions CleanupOptions { get; init; } - [DataMember] public required CodeGenerationOptions CodeGenerationOptions { get; init; } [DataMember] public SymbolSearchOptions SearchOptions { get; init; } = SymbolSearchOptions.Default; [DataMember] public ImplementTypeOptions ImplementTypeOptions { get; init; } = ImplementTypeOptions.Default; [DataMember] public bool HideAdvancedMembers { get; init; } = false; - - public static CodeActionOptions GetDefault(LanguageServices languageServices) - => new() - { - CleanupOptions = CodeCleanupOptions.GetDefault(languageServices), - CodeGenerationOptions = CodeGenerationOptions.GetDefault(languageServices), - }; -#else - public static CodeActionOptions GetDefault(LanguageServices languageServices) - => new(); #endif public CodeActionOptionsProvider CreateProvider() => new DelegatingCodeActionOptionsProvider(_ => this); } -internal interface CodeActionOptionsProvider : -#if !CODE_STYLE - CodeCleanupOptionsProvider, - CodeGenerationOptionsProvider, - CleanCodeGenerationOptionsProvider, - CodeAndImportGenerationOptionsProvider, - OrganizeImportsOptionsProvider, -#endif - SyntaxFormattingOptionsProvider, - SimplifierOptionsProvider, - AddImportPlacementOptionsProvider +internal interface CodeActionOptionsProvider { CodeActionOptions GetOptions(LanguageServices languageService); } @@ -75,55 +40,6 @@ internal interface CodeActionOptionsProvider : internal abstract class AbstractCodeActionOptionsProvider : CodeActionOptionsProvider { public abstract CodeActionOptions GetOptions(LanguageServices languageServices); - -#if !CODE_STYLE - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CleanupOptions.FormattingOptions.LineFormatting); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CleanupOptions.DocumentFormattingOptions); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CleanupOptions.FormattingOptions); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CleanupOptions.SimplifierOptions); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CleanupOptions.AddImportOptions); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CleanupOptions.GetOrganizeImportsOptions()); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CleanupOptions); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CodeGenerationOptions); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - => ValueTaskFactory.FromResult(GetOptions(languageServices).CodeGenerationOptions.NamingStyle); - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - { - var codeActionOptions = GetOptions(languageServices); - return ValueTaskFactory.FromResult(new CleanCodeGenerationOptions() - { - GenerationOptions = codeActionOptions.CodeGenerationOptions, - CleanupOptions = codeActionOptions.CleanupOptions - }); - } - - ValueTask OptionsProvider.GetOptionsAsync(LanguageServices languageServices, CancellationToken cancellationToken) - { - var codeActionOptions = GetOptions(languageServices); - return ValueTaskFactory.FromResult(new CodeAndImportGenerationOptions() - { - GenerationOptions = codeActionOptions.CodeGenerationOptions, - AddImportOptions = codeActionOptions.CleanupOptions.AddImportOptions - }); - } -#endif } internal sealed class DelegatingCodeActionOptionsProvider(Func @delegate) : AbstractCodeActionOptionsProvider @@ -148,19 +64,4 @@ internal static CodeActionOptionsProvider GetOptionsProvider(this FixAllContext internal static CodeActionOptionsProvider GetOptionsProvider(this IFixAllContext context) => context.State.CodeActionOptionsProvider; #endif - -#if !CODE_STYLE - public static ImplementTypeOptions GetImplementTypeOptions(this CodeActionOptionsProvider provider, LanguageServices languageServices) - => provider.GetOptions(languageServices).ImplementTypeOptions; - - public static ExtractMethodGenerationOptions GetExtractMethodGenerationOptions(this CodeActionOptionsProvider provider, LanguageServices languageServices) - { - var codeActionOptions = provider.GetOptions(languageServices); - return new() - { - CodeGenerationOptions = codeActionOptions.CodeGenerationOptions, - CodeCleanupOptions = codeActionOptions.CleanupOptions, - }; - } -#endif }