From 7e80d29502dca6ad7d316c24cee0a4453860fcf8 Mon Sep 17 00:00:00 2001 From: Manish Vasani Date: Tue, 3 Mar 2020 12:31:24 -0800 Subject: [PATCH] Move options related types that are linked into CodeStyle layer to a different namespace to avoid type name conflicts --- ...tractBuiltInCodeStyleDiagnosticAnalyzer.cs | 4 +- .../Core/Analyzers/Analyzers.projitems | 1 + .../Core/Analyzers/Helpers/AnalyzerHelper.cs | 96 ++++++++++++ .../IDEDiagnosticIdToOptionMappingHelper.cs | 5 + src/CodeStyle/BannedSymbols.txt | 8 + .../CSharp/Analyzers/PublicAPI.Shipped.txt | 94 ++++++------ .../Microsoft.CodeAnalysis.CodeStyle.csproj | 2 + .../Core/Analyzers/Options/AnalyzerHelper.cs | 34 +++++ .../Analyzers/Options/OptionSetExtensions.cs | 56 ------- .../Core/Analyzers/PublicAPI.Shipped.txt | 138 +++++++++--------- .../Core/Analyzers/PublicAPI.Unshipped.txt | 9 +- src/CodeStyle/Directory.Build.targets | 4 + .../Portable/Diagnostics/AnalyzerHelper.cs | 86 +---------- .../Portable/CodeStyle/CodeStyleOption.cs | 4 + .../Portable/CodeStyle/CodeStyleOptions.cs | 6 +- .../Portable/CodeStyle/NotificationOption.cs | 4 + .../EditorConfigStorageLocation.cs | 4 + .../EditorConfigStorageLocationExtensions.cs | 4 + .../EditorConfigStorageLocation`1.cs | 4 + .../IEditorConfigStorageLocation.cs | 4 + .../IEditorConfigStorageLocation2.cs | 4 + .../Core/Portable/Options/IOption.cs | 4 + .../Core/Portable/Options/IOptionWithGroup.cs | 4 + .../LocalUserProfileStorageLocation.cs | 4 + .../Core/Portable/Options/OptionGroup.cs | 4 + .../Core/Portable/Options/OptionKey.cs | 4 + .../Portable/Options/OptionStorageLocation.cs | 4 + .../Core/Portable/Options/Option`1.cs | 4 + .../Portable/Options/PerLanguageOption.cs | 4 + .../Options/RoamingProfileStorageLocation.cs | 4 + .../CodeStyle/CSharpCodeStyleOptions.cs | 9 ++ .../CSharpCodeStyleOptions_Parsing.cs | 10 ++ .../CodeStyle/PreferBracesPreference.cs | 9 ++ .../CodeStyle/TypeStyle/TypeStyleHelper.cs | 4 + .../CodeStyle/TypeStyle/UseVarPreference.cs | 4 + .../Formatting/CSharpFormattingOptions.cs | 4 +- .../Formatting/Rules/SpacingFormattingRule.cs | 4 +- .../TypeStyle/CSharpTypeStyleHelper.State.cs | 6 +- .../TypeStyle/CSharpUseExplicitTypeHelper.cs | 3 +- .../TypeStyle/CSharpUseImplicitTypeHelper.cs | 3 +- .../AccessibilityModifiersRequired.cs | 4 + .../Core/CodeStyle/CodeStyleHelpers.cs | 7 +- ...OperatorPlacementWhenWrappingPreference.cs | 7 +- .../Core/CodeStyle/ParenthesesPreference.cs | 4 + .../CodeStyle/UnusedParametersPreference.cs | 4 + .../Core/CompilerExtensions.projitems | 3 +- .../AnalyzerConfigOptionsExtensions.cs | 25 +++- .../NotificationOptionExtensions.cs | 4 + .../Compiler/Core/Fading/FadingOptions.cs | 4 + .../Formatting/Engine/AbstractFormatEngine.cs | 4 +- .../Core/Formatting/FormattingOptions.cs | 4 +- .../Compiler/Core/Log/FunctionIdOptions.cs | 5 + .../Compiler/Core/Log/Logger.cs | 5 +- .../Core/Helpers/SimplificationHelpers.cs | 10 +- 54 files changed, 475 insertions(+), 278 deletions(-) create mode 100644 src/Analyzers/Core/Analyzers/Helpers/AnalyzerHelper.cs create mode 100644 src/CodeStyle/BannedSymbols.txt create mode 100644 src/CodeStyle/Core/Analyzers/Options/AnalyzerHelper.cs delete mode 100644 src/CodeStyle/Core/Analyzers/Options/OptionSetExtensions.cs rename src/Workspaces/{Core/Portable/CodeStyle => SharedUtilitiesAndExtensions/Compiler/Core/Extensions}/AnalyzerConfigOptionsExtensions.cs (67%) diff --git a/src/Analyzers/Core/Analyzers/AbstractBuiltInCodeStyleDiagnosticAnalyzer.cs b/src/Analyzers/Core/Analyzers/AbstractBuiltInCodeStyleDiagnosticAnalyzer.cs index d609e7189be..05bad3555ef 100644 --- a/src/Analyzers/Core/Analyzers/AbstractBuiltInCodeStyleDiagnosticAnalyzer.cs +++ b/src/Analyzers/Core/Analyzers/AbstractBuiltInCodeStyleDiagnosticAnalyzer.cs @@ -8,11 +8,13 @@ using System.Diagnostics; using System.Linq; using Microsoft.CodeAnalysis.Diagnostics; -using Microsoft.CodeAnalysis.Options; using Roslyn.Utilities; #if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; +#else +using Microsoft.CodeAnalysis.Options; #endif namespace Microsoft.CodeAnalysis.CodeStyle diff --git a/src/Analyzers/Core/Analyzers/Analyzers.projitems b/src/Analyzers/Core/Analyzers/Analyzers.projitems index eae18dbed9a..8da2f78ee9a 100644 --- a/src/Analyzers/Core/Analyzers/Analyzers.projitems +++ b/src/Analyzers/Core/Analyzers/Analyzers.projitems @@ -19,6 +19,7 @@ + diff --git a/src/Analyzers/Core/Analyzers/Helpers/AnalyzerHelper.cs b/src/Analyzers/Core/Analyzers/Helpers/AnalyzerHelper.cs new file mode 100644 index 00000000000..44cafb5465b --- /dev/null +++ b/src/Analyzers/Core/Analyzers/Helpers/AnalyzerHelper.cs @@ -0,0 +1,96 @@ +// 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. + +#nullable enable + +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else +using System.Threading; +using Microsoft.CodeAnalysis.Options; +#endif + +namespace Microsoft.CodeAnalysis.Diagnostics +{ + internal static partial class AnalyzerHelper + { + public static T GetOption(this SemanticModelAnalysisContext context, Option option) + { + var analyzerOptions = context.Options; + var syntaxTree = context.SemanticModel.SyntaxTree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); + } + + public static T GetOption(this SyntaxNodeAnalysisContext context, Option option) + { + var analyzerOptions = context.Options; + var syntaxTree = context.Node.SyntaxTree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); + } + + public static T GetOption(this SyntaxTreeAnalysisContext context, Option option) + { + var analyzerOptions = context.Options; + var syntaxTree = context.Tree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); + } + + public static T GetOption(this OperationAnalysisContext context, Option option) + { + var analyzerOptions = context.Options; + var syntaxTree = context.Operation.Syntax.SyntaxTree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); + } + + public static T GetOption(this SemanticModelAnalysisContext context, PerLanguageOption option, string? language) + { + var analyzerOptions = context.Options; + var syntaxTree = context.SemanticModel.SyntaxTree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); + } + + public static T GetOption(this SyntaxNodeAnalysisContext context, PerLanguageOption option, string? language) + { + var analyzerOptions = context.Options; + var syntaxTree = context.Node.SyntaxTree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); + } + + public static T GetOption(this SyntaxTreeAnalysisContext context, PerLanguageOption option, string? language) + { + var analyzerOptions = context.Options; + var syntaxTree = context.Tree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); + } + + public static T GetOption(this OperationAnalysisContext context, PerLanguageOption option, string? language) + { + var analyzerOptions = context.Options; + var syntaxTree = context.Operation.Syntax.SyntaxTree; + var cancellationToken = context.CancellationToken; + + return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); + } + + public static bool TryGetEditorConfigOption(this AnalyzerOptions analyzerOptions, IOption option, SyntaxTree syntaxTree, out T value) + { + var configOptions = analyzerOptions.AnalyzerConfigOptionsProvider.GetOptions(syntaxTree); + return configOptions.TryGetEditorConfigOption(option, out value); + } + } +} diff --git a/src/Analyzers/Core/Analyzers/IDEDiagnosticIdToOptionMappingHelper.cs b/src/Analyzers/Core/Analyzers/IDEDiagnosticIdToOptionMappingHelper.cs index 2f3e0604229..25683466748 100644 --- a/src/Analyzers/Core/Analyzers/IDEDiagnosticIdToOptionMappingHelper.cs +++ b/src/Analyzers/Core/Analyzers/IDEDiagnosticIdToOptionMappingHelper.cs @@ -7,7 +7,12 @@ using System.Collections.Immutable; using System.Diagnostics; using System.Linq; + +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else using Microsoft.CodeAnalysis.Options; +#endif namespace Microsoft.CodeAnalysis.Diagnostics { diff --git a/src/CodeStyle/BannedSymbols.txt b/src/CodeStyle/BannedSymbols.txt new file mode 100644 index 00000000000..c6069906377 --- /dev/null +++ b/src/CodeStyle/BannedSymbols.txt @@ -0,0 +1,8 @@ +P:Microsoft.CodeAnalysis.Project.LanguageServices; Use 'GetExtendedLanguageServices' instead in CodeStyle layer (preprocessor variable 'CODE_STYLE') +M:Microsoft.CodeAnalysis.Host.HostWorkspaceServices.GetLanguageServices(System.String); Use 'GetExtendedLanguageServices' or directly get the language service by invoking 'GetLanguageService' or 'GetRequiredLanguageService' in CodeStyle layer (preprocessor variable 'CODE_STYLE') +T:Microsoft.CodeAnalysis.Options.OptionSet; 'OptionSet' is not available in CodeStyle layer. Add a using/Imports statement defining 'OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions' when preprocessor variable 'CODE_STYLE' is defined +T:Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption`1; Use 'Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption' instead in CodeStyle layer (preprocessor variable 'CODE_STYLE') +T:Microsoft.CodeAnalysis.CodeStyle.CodeStyleOptions; Use 'Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions' instead in CodeStyle layer (preprocessor variable 'CODE_STYLE') +T:Microsoft.CodeAnalysis.Options.IOption; Use 'Microsoft.CodeAnalysis.Internal.Options.IOption' instead in CodeStyle layer (preprocessor variable 'CODE_STYLE') +T:Microsoft.CodeAnalysis.Options.OptionKey; Use 'Microsoft.CodeAnalysis.Internal.Options.OptionKey' instead in CodeStyle layer (preprocessor variable 'CODE_STYLE') +T:Microsoft.CodeAnalysis.CodeStyle.NotificationOption; Use 'Microsoft.CodeAnalysis.Internal.Options.NotificationOption' instead in CodeStyle layer (preprocessor variable 'CODE_STYLE') \ No newline at end of file diff --git a/src/CodeStyle/CSharp/Analyzers/PublicAPI.Shipped.txt b/src/CodeStyle/CSharp/Analyzers/PublicAPI.Shipped.txt index f6f26600047..70dcbbe5a88 100644 --- a/src/CodeStyle/CSharp/Analyzers/PublicAPI.Shipped.txt +++ b/src/CodeStyle/CSharp/Analyzers/PublicAPI.Shipped.txt @@ -7,50 +7,50 @@ Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions.LeftMost = 0 -> Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions.NoIndent = 2 -> Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions.OneLess = 1 -> Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentBlock.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentBraces.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentSwitchCaseSection.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentSwitchCaseSectionWhenBlock.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentSwitchSection.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.LabelPositioning.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForCatch.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForClausesInQuery.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForElse.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForFinally.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForMembersInAnonymousTypes.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForMembersInObjectInit.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInAccessors.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInAnonymousMethods.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInAnonymousTypes.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInControlBlocks.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInLambdaExpressionBody.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInMethods.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInObjectCollectionArrayInitializers.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInProperties.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInTypes.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterCast.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterColonInBaseTypeDeclaration.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterComma.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterControlFlowStatementKeyword.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterDot.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterMethodCallName.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterSemicolonsInForStatement.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeColonInBaseTypeDeclaration.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeComma.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeDot.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeOpenSquareBracket.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeSemicolonsInForStatement.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBetweenEmptyMethodCallParentheses.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBetweenEmptyMethodDeclarationParentheses.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBetweenEmptySquareBrackets.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpacesIgnoreAroundVariableDeclaration.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinCastParentheses.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinExpressionParentheses.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinMethodCallParentheses.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinMethodDeclarationParenthesis.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinOtherParentheses.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinSquareBrackets.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpacingAfterMethodDeclarationName.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpacingAroundBinaryOperator.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.WrappingKeepStatementsOnSingleLine.get -> Microsoft.CodeAnalysis.Options.Option -static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.WrappingPreserveSingleLine.get -> Microsoft.CodeAnalysis.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentBlock.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentBraces.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentSwitchCaseSection.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentSwitchCaseSectionWhenBlock.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.IndentSwitchSection.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.LabelPositioning.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForCatch.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForClausesInQuery.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForElse.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForFinally.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForMembersInAnonymousTypes.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLineForMembersInObjectInit.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInAccessors.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInAnonymousMethods.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInAnonymousTypes.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInControlBlocks.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInLambdaExpressionBody.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInMethods.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInObjectCollectionArrayInitializers.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInProperties.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.NewLinesForBracesInTypes.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterCast.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterColonInBaseTypeDeclaration.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterComma.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterControlFlowStatementKeyword.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterDot.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterMethodCallName.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceAfterSemicolonsInForStatement.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeColonInBaseTypeDeclaration.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeComma.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeDot.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeOpenSquareBracket.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBeforeSemicolonsInForStatement.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBetweenEmptyMethodCallParentheses.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBetweenEmptyMethodDeclarationParentheses.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceBetweenEmptySquareBrackets.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpacesIgnoreAroundVariableDeclaration.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinCastParentheses.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinExpressionParentheses.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinMethodCallParentheses.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinMethodDeclarationParenthesis.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinOtherParentheses.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpaceWithinSquareBrackets.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpacingAfterMethodDeclarationName.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.SpacingAroundBinaryOperator.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.WrappingKeepStatementsOnSingleLine.get -> Microsoft.CodeAnalysis.Internal.Options.Option +static Microsoft.CodeAnalysis.CSharp.Formatting.CSharpFormattingOptions.WrappingPreserveSingleLine.get -> Microsoft.CodeAnalysis.Internal.Options.Option diff --git a/src/CodeStyle/Core/Analyzers/Microsoft.CodeAnalysis.CodeStyle.csproj b/src/CodeStyle/Core/Analyzers/Microsoft.CodeAnalysis.CodeStyle.csproj index 5ea2ede74d8..2f9d50356a7 100644 --- a/src/CodeStyle/Core/Analyzers/Microsoft.CodeAnalysis.CodeStyle.csproj +++ b/src/CodeStyle/Core/Analyzers/Microsoft.CodeAnalysis.CodeStyle.csproj @@ -28,8 +28,10 @@ + + diff --git a/src/CodeStyle/Core/Analyzers/Options/AnalyzerHelper.cs b/src/CodeStyle/Core/Analyzers/Options/AnalyzerHelper.cs new file mode 100644 index 00000000000..ae63a4ac8eb --- /dev/null +++ b/src/CodeStyle/Core/Analyzers/Options/AnalyzerHelper.cs @@ -0,0 +1,34 @@ +// 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. + +#nullable enable + +using System.Threading; +using Microsoft.CodeAnalysis.Internal.Options; + +namespace Microsoft.CodeAnalysis.Diagnostics +{ + internal static partial class AnalyzerHelper + { + public static T GetOption(this AnalyzerOptions analyzerOptions, IOption option, string? language, SyntaxTree syntaxTree, CancellationToken cancellationToken) + { + if (analyzerOptions.TryGetEditorConfigOption(option, syntaxTree, out var value)) + { + return value; + } + + return (T)option.DefaultValue!; + } + + public static T GetOption(this AnalyzerOptions analyzerOptions, Option option, SyntaxTree syntaxTree, CancellationToken cancellationToken) + { + return GetOption(analyzerOptions, option, language: null, syntaxTree, cancellationToken); + } + + public static T GetOption(this AnalyzerOptions analyzerOptions, PerLanguageOption option, string? language, SyntaxTree syntaxTree, CancellationToken cancellationToken) + { + return GetOption(analyzerOptions, (IOption)option, language, syntaxTree, cancellationToken); + } + } +} diff --git a/src/CodeStyle/Core/Analyzers/Options/OptionSetExtensions.cs b/src/CodeStyle/Core/Analyzers/Options/OptionSetExtensions.cs deleted file mode 100644 index d56cb0a4630..00000000000 --- a/src/CodeStyle/Core/Analyzers/Options/OptionSetExtensions.cs +++ /dev/null @@ -1,56 +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.Options; -using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; - -namespace Microsoft.CodeAnalysis -{ - internal static class OptionSetExtensions - { - public static T GetOption(this OptionSet optionSet, Option option) - { - if (!TryGetEditorConfigOption(optionSet, option, out T value)) - { - value = option.DefaultValue; - } - - return value; - } - - public static T GetOption(this OptionSet optionSet, PerLanguageOption option, string language) - { - if (!TryGetEditorConfigOption(optionSet, option, out T value)) - { - value = option.DefaultValue; - } - - return value; - } - - private static bool TryGetEditorConfigOption(this OptionSet optionSet, IOption option, out T value) - { - foreach (var storageLocation in option.StorageLocations) - { - if (!(storageLocation is EditorConfigStorageLocation editorConfigStorageLocation)) - { - continue; - } - - if (!optionSet.TryGetValue(editorConfigStorageLocation.KeyName, out var stringValue)) - { - continue; - } - - if (editorConfigStorageLocation.TryGetOption(stringValue, typeof(T), out value)) - { - return true; - } - } - - value = default; - return false; - } - } -} diff --git a/src/CodeStyle/Core/Analyzers/PublicAPI.Shipped.txt b/src/CodeStyle/Core/Analyzers/PublicAPI.Shipped.txt index 293623cb928..baf9a26a1bc 100644 --- a/src/CodeStyle/Core/Analyzers/PublicAPI.Shipped.txt +++ b/src/CodeStyle/Core/Analyzers/PublicAPI.Shipped.txt @@ -1,74 +1,74 @@ -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.CodeStyleOption(T value, Microsoft.CodeAnalysis.CodeStyle.NotificationOption notification) -> void -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.Equals(Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption other) -> bool -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.Notification.get -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.Notification.set -> void -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.ToXElement() -> System.Xml.Linq.XElement -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.Value.get -> T -Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.Value.set -> void -Microsoft.CodeAnalysis.CodeStyle.NotificationOption -Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Name.get -> string -Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Name.set -> void -Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Severity.get -> Microsoft.CodeAnalysis.ReportDiagnostic -Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Severity.set -> void -Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Value.get -> Microsoft.CodeAnalysis.DiagnosticSeverity -Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Value.set -> void +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.CodeStyleOption(T value, Microsoft.CodeAnalysis.Internal.Options.NotificationOption notification) -> void +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.Equals(Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption other) -> bool +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.Notification.get -> Microsoft.CodeAnalysis.Internal.Options.NotificationOption +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.Notification.set -> void +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.ToXElement() -> System.Xml.Linq.XElement +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.Value.get -> T +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.Value.set -> void +Microsoft.CodeAnalysis.Internal.Options.NotificationOption +Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Name.get -> string +Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Name.set -> void +Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Severity.get -> Microsoft.CodeAnalysis.ReportDiagnostic +Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Severity.set -> void +Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Value.get -> Microsoft.CodeAnalysis.DiagnosticSeverity +Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Value.set -> void Microsoft.CodeAnalysis.Formatting.FormattingOptions Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle.Block = 1 -> Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle.None = 0 -> Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle.Smart = 2 -> Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentStyle -Microsoft.CodeAnalysis.Options.IOption -Microsoft.CodeAnalysis.Options.IOption.DefaultValue.get -> object -Microsoft.CodeAnalysis.Options.IOption.Feature.get -> string -Microsoft.CodeAnalysis.Options.IOption.IsPerLanguage.get -> bool -Microsoft.CodeAnalysis.Options.IOption.Name.get -> string -Microsoft.CodeAnalysis.Options.IOption.StorageLocations.get -> System.Collections.Immutable.ImmutableArray -Microsoft.CodeAnalysis.Options.IOption.Type.get -> System.Type -Microsoft.CodeAnalysis.Options.Option -Microsoft.CodeAnalysis.Options.Option.DefaultValue.get -> T -Microsoft.CodeAnalysis.Options.Option.Feature.get -> string -Microsoft.CodeAnalysis.Options.Option.Name.get -> string -Microsoft.CodeAnalysis.Options.Option.Option(string feature, string name) -> void -Microsoft.CodeAnalysis.Options.Option.Option(string feature, string name, T defaultValue) -> void -Microsoft.CodeAnalysis.Options.Option.Option(string feature, string name, T defaultValue, params Microsoft.CodeAnalysis.Options.OptionStorageLocation[] storageLocations) -> void -Microsoft.CodeAnalysis.Options.Option.StorageLocations.get -> System.Collections.Immutable.ImmutableArray -Microsoft.CodeAnalysis.Options.Option.Type.get -> System.Type -Microsoft.CodeAnalysis.Options.OptionKey -Microsoft.CodeAnalysis.Options.OptionKey.Equals(Microsoft.CodeAnalysis.Options.OptionKey other) -> bool -Microsoft.CodeAnalysis.Options.OptionKey.Language.get -> string -Microsoft.CodeAnalysis.Options.OptionKey.Option.get -> Microsoft.CodeAnalysis.Options.IOption -Microsoft.CodeAnalysis.Options.OptionKey.OptionKey(Microsoft.CodeAnalysis.Options.IOption option, string language = null) -> void -Microsoft.CodeAnalysis.Options.OptionStorageLocation -Microsoft.CodeAnalysis.Options.OptionStorageLocation.OptionStorageLocation() -> void -Microsoft.CodeAnalysis.Options.PerLanguageOption -Microsoft.CodeAnalysis.Options.PerLanguageOption.DefaultValue.get -> T -Microsoft.CodeAnalysis.Options.PerLanguageOption.Feature.get -> string -Microsoft.CodeAnalysis.Options.PerLanguageOption.Name.get -> string -Microsoft.CodeAnalysis.Options.PerLanguageOption.PerLanguageOption(string feature, string name, T defaultValue) -> void -Microsoft.CodeAnalysis.Options.PerLanguageOption.PerLanguageOption(string feature, string name, T defaultValue, params Microsoft.CodeAnalysis.Options.OptionStorageLocation[] storageLocations) -> void -Microsoft.CodeAnalysis.Options.PerLanguageOption.StorageLocations.get -> System.Collections.Immutable.ImmutableArray -Microsoft.CodeAnalysis.Options.PerLanguageOption.Type.get -> System.Type -override Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.Equals(object obj) -> bool -override Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.GetHashCode() -> int -override Microsoft.CodeAnalysis.CodeStyle.NotificationOption.ToString() -> string -override Microsoft.CodeAnalysis.Options.Option.ToString() -> string -override Microsoft.CodeAnalysis.Options.OptionKey.Equals(object obj) -> bool -override Microsoft.CodeAnalysis.Options.OptionKey.GetHashCode() -> int -override Microsoft.CodeAnalysis.Options.OptionKey.ToString() -> string -override Microsoft.CodeAnalysis.Options.PerLanguageOption.ToString() -> string -static Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.Default.get -> Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption -static Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption.FromXElement(System.Xml.Linq.XElement element) -> Microsoft.CodeAnalysis.CodeStyle.CodeStyleOption -static Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentationSize.get -> Microsoft.CodeAnalysis.Options.PerLanguageOption -static Microsoft.CodeAnalysis.Formatting.FormattingOptions.NewLine.get -> Microsoft.CodeAnalysis.Options.PerLanguageOption -static Microsoft.CodeAnalysis.Formatting.FormattingOptions.SmartIndent.get -> Microsoft.CodeAnalysis.Options.PerLanguageOption -static Microsoft.CodeAnalysis.Formatting.FormattingOptions.TabSize.get -> Microsoft.CodeAnalysis.Options.PerLanguageOption -static Microsoft.CodeAnalysis.Formatting.FormattingOptions.UseTabs.get -> Microsoft.CodeAnalysis.Options.PerLanguageOption -static Microsoft.CodeAnalysis.Options.Option.implicit operator Microsoft.CodeAnalysis.Options.OptionKey(Microsoft.CodeAnalysis.Options.Option option) -> Microsoft.CodeAnalysis.Options.OptionKey -static Microsoft.CodeAnalysis.Options.OptionKey.operator !=(Microsoft.CodeAnalysis.Options.OptionKey left, Microsoft.CodeAnalysis.Options.OptionKey right) -> bool -static Microsoft.CodeAnalysis.Options.OptionKey.operator ==(Microsoft.CodeAnalysis.Options.OptionKey left, Microsoft.CodeAnalysis.Options.OptionKey right) -> bool -static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Error -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption -static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.None -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption -static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Silent -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption -static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Suggestion -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption -static readonly Microsoft.CodeAnalysis.CodeStyle.NotificationOption.Warning -> Microsoft.CodeAnalysis.CodeStyle.NotificationOption +Microsoft.CodeAnalysis.Internal.Options.IOption +Microsoft.CodeAnalysis.Internal.Options.IOption.DefaultValue.get -> object +Microsoft.CodeAnalysis.Internal.Options.IOption.Feature.get -> string +Microsoft.CodeAnalysis.Internal.Options.IOption.IsPerLanguage.get -> bool +Microsoft.CodeAnalysis.Internal.Options.IOption.Name.get -> string +Microsoft.CodeAnalysis.Internal.Options.IOption.StorageLocations.get -> System.Collections.Immutable.ImmutableArray +Microsoft.CodeAnalysis.Internal.Options.IOption.Type.get -> System.Type +Microsoft.CodeAnalysis.Internal.Options.Option +Microsoft.CodeAnalysis.Internal.Options.Option.DefaultValue.get -> T +Microsoft.CodeAnalysis.Internal.Options.Option.Feature.get -> string +Microsoft.CodeAnalysis.Internal.Options.Option.Name.get -> string +Microsoft.CodeAnalysis.Internal.Options.Option.Option(string feature, string name) -> void +Microsoft.CodeAnalysis.Internal.Options.Option.Option(string feature, string name, T defaultValue) -> void +Microsoft.CodeAnalysis.Internal.Options.Option.Option(string feature, string name, T defaultValue, params Microsoft.CodeAnalysis.Internal.Options.OptionStorageLocation[] storageLocations) -> void +Microsoft.CodeAnalysis.Internal.Options.Option.StorageLocations.get -> System.Collections.Immutable.ImmutableArray +Microsoft.CodeAnalysis.Internal.Options.Option.Type.get -> System.Type +Microsoft.CodeAnalysis.Internal.Options.OptionKey +Microsoft.CodeAnalysis.Internal.Options.OptionKey.Equals(Microsoft.CodeAnalysis.Internal.Options.OptionKey other) -> bool +Microsoft.CodeAnalysis.Internal.Options.OptionKey.Language.get -> string +Microsoft.CodeAnalysis.Internal.Options.OptionKey.Option.get -> Microsoft.CodeAnalysis.Internal.Options.IOption +Microsoft.CodeAnalysis.Internal.Options.OptionKey.OptionKey(Microsoft.CodeAnalysis.Internal.Options.IOption option, string language = null) -> void +Microsoft.CodeAnalysis.Internal.Options.OptionStorageLocation +Microsoft.CodeAnalysis.Internal.Options.OptionStorageLocation.OptionStorageLocation() -> void +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.DefaultValue.get -> T +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.Feature.get -> string +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.Name.get -> string +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.PerLanguageOption(string feature, string name, T defaultValue) -> void +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.PerLanguageOption(string feature, string name, T defaultValue, params Microsoft.CodeAnalysis.Internal.Options.OptionStorageLocation[] storageLocations) -> void +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.StorageLocations.get -> System.Collections.Immutable.ImmutableArray +Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.Type.get -> System.Type +override Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.Equals(object obj) -> bool +override Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.GetHashCode() -> int +override Microsoft.CodeAnalysis.Internal.Options.NotificationOption.ToString() -> string +override Microsoft.CodeAnalysis.Internal.Options.Option.ToString() -> string +override Microsoft.CodeAnalysis.Internal.Options.OptionKey.Equals(object obj) -> bool +override Microsoft.CodeAnalysis.Internal.Options.OptionKey.GetHashCode() -> int +override Microsoft.CodeAnalysis.Internal.Options.OptionKey.ToString() -> string +override Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption.ToString() -> string +static Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.Default.get -> Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption +static Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption.FromXElement(System.Xml.Linq.XElement element) -> Microsoft.CodeAnalysis.Internal.Options.CodeStyleOption +static Microsoft.CodeAnalysis.Formatting.FormattingOptions.IndentationSize.get -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption +static Microsoft.CodeAnalysis.Formatting.FormattingOptions.NewLine.get -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption +static Microsoft.CodeAnalysis.Formatting.FormattingOptions.SmartIndent.get -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption +static Microsoft.CodeAnalysis.Formatting.FormattingOptions.TabSize.get -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption +static Microsoft.CodeAnalysis.Formatting.FormattingOptions.UseTabs.get -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption +static Microsoft.CodeAnalysis.Internal.Options.Option.implicit operator Microsoft.CodeAnalysis.Internal.Options.OptionKey(Microsoft.CodeAnalysis.Internal.Options.Option option) -> Microsoft.CodeAnalysis.Internal.Options.OptionKey +static Microsoft.CodeAnalysis.Internal.Options.OptionKey.operator !=(Microsoft.CodeAnalysis.Internal.Options.OptionKey left, Microsoft.CodeAnalysis.Internal.Options.OptionKey right) -> bool +static Microsoft.CodeAnalysis.Internal.Options.OptionKey.operator ==(Microsoft.CodeAnalysis.Internal.Options.OptionKey left, Microsoft.CodeAnalysis.Internal.Options.OptionKey right) -> bool +static readonly Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Error -> Microsoft.CodeAnalysis.Internal.Options.NotificationOption +static readonly Microsoft.CodeAnalysis.Internal.Options.NotificationOption.None -> Microsoft.CodeAnalysis.Internal.Options.NotificationOption +static readonly Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Silent -> Microsoft.CodeAnalysis.Internal.Options.NotificationOption +static readonly Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Suggestion -> Microsoft.CodeAnalysis.Internal.Options.NotificationOption +static readonly Microsoft.CodeAnalysis.Internal.Options.NotificationOption.Warning -> Microsoft.CodeAnalysis.Internal.Options.NotificationOption diff --git a/src/CodeStyle/Core/Analyzers/PublicAPI.Unshipped.txt b/src/CodeStyle/Core/Analyzers/PublicAPI.Unshipped.txt index 8b137891791..b4390156271 100644 --- a/src/CodeStyle/Core/Analyzers/PublicAPI.Unshipped.txt +++ b/src/CodeStyle/Core/Analyzers/PublicAPI.Unshipped.txt @@ -1 +1,8 @@ - +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions +Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions.CodeStyleOptions() -> void +static readonly Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInDeclaration -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption> +static readonly Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions.PreferIntrinsicPredefinedTypeKeywordInMemberAccess -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption> +static readonly Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions.QualifyEventAccess -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption> +static readonly Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions.QualifyFieldAccess -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption> +static readonly Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions.QualifyMethodAccess -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption> +static readonly Microsoft.CodeAnalysis.Internal.Options.CodeStyleOptions.QualifyPropertyAccess -> Microsoft.CodeAnalysis.Internal.Options.PerLanguageOption> diff --git a/src/CodeStyle/Directory.Build.targets b/src/CodeStyle/Directory.Build.targets index 53ff9cdea49..649bb1f2df3 100644 --- a/src/CodeStyle/Directory.Build.targets +++ b/src/CodeStyle/Directory.Build.targets @@ -1,3 +1,7 @@ + + + + \ No newline at end of file diff --git a/src/Features/Core/Portable/Diagnostics/AnalyzerHelper.cs b/src/Features/Core/Portable/Diagnostics/AnalyzerHelper.cs index 01588befa6a..64226b3b3c0 100644 --- a/src/Features/Core/Portable/Diagnostics/AnalyzerHelper.cs +++ b/src/Features/Core/Portable/Diagnostics/AnalyzerHelper.cs @@ -13,8 +13,6 @@ using System.Reflection; using System.Threading; using System.Threading.Tasks; -using Microsoft.CodeAnalysis.Diagnostics; -using Microsoft.CodeAnalysis.Diagnostics.Log; using Microsoft.CodeAnalysis.Diagnostics.Telemetry; using Microsoft.CodeAnalysis.ErrorReporting; using Microsoft.CodeAnalysis.Internal.Log; @@ -24,7 +22,7 @@ namespace Microsoft.CodeAnalysis.Diagnostics { - internal static class AnalyzerHelper + internal static partial class AnalyzerHelper { private const string CSharpCompilerAnalyzerTypeName = "Microsoft.CodeAnalysis.Diagnostics.CSharp.CSharpCompilerDiagnosticAnalyzer"; private const string VisualBasicCompilerAnalyzerTypeName = "Microsoft.CodeAnalysis.Diagnostics.VisualBasic.VisualBasicCompilerDiagnosticAnalyzer"; @@ -109,92 +107,19 @@ public static async ValueTask GetAnalyzerOptionSetAsync(this Analyzer return new AnalyzerConfigOptionSet(configOptions, optionSet); } - public static T GetOption(this SemanticModelAnalysisContext context, Option option) - { - var analyzerOptions = context.Options; - var syntaxTree = context.SemanticModel.SyntaxTree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); - } - - public static T GetOption(this SyntaxNodeAnalysisContext context, Option option) - { - var analyzerOptions = context.Options; - var syntaxTree = context.Node.SyntaxTree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); - } - - public static T GetOption(this SyntaxTreeAnalysisContext context, Option option) - { - var analyzerOptions = context.Options; - var syntaxTree = context.Tree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); - } - - public static T GetOption(this OperationAnalysisContext context, Option option) - { - var analyzerOptions = context.Options; - var syntaxTree = context.Operation.Syntax.SyntaxTree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, syntaxTree, cancellationToken); - } - public static T GetOption(this AnalyzerOptions analyzerOptions, Option option, SyntaxTree syntaxTree, CancellationToken cancellationToken) { return GetOptionAsync(analyzerOptions, option, language: null, syntaxTree, cancellationToken).GetAwaiter().GetResult(); } - public static T GetOption(this SemanticModelAnalysisContext context, PerLanguageOption option, string language) - { - var analyzerOptions = context.Options; - var syntaxTree = context.SemanticModel.SyntaxTree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); - } - - public static T GetOption(this SyntaxNodeAnalysisContext context, PerLanguageOption option, string language) - { - var analyzerOptions = context.Options; - var syntaxTree = context.Node.SyntaxTree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); - } - - public static T GetOption(this SyntaxTreeAnalysisContext context, PerLanguageOption option, string language) - { - var analyzerOptions = context.Options; - var syntaxTree = context.Tree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); - } - - public static T GetOption(this OperationAnalysisContext context, PerLanguageOption option, string language) - { - var analyzerOptions = context.Options; - var syntaxTree = context.Operation.Syntax.SyntaxTree; - var cancellationToken = context.CancellationToken; - - return GetOption(analyzerOptions, option, language, syntaxTree, cancellationToken); - } - - public static T GetOption(this AnalyzerOptions analyzerOptions, PerLanguageOption option, string language, SyntaxTree syntaxTree, CancellationToken cancellationToken) + public static T GetOption(this AnalyzerOptions analyzerOptions, PerLanguageOption option, string? language, SyntaxTree syntaxTree, CancellationToken cancellationToken) { return GetOptionAsync(analyzerOptions, option, language, syntaxTree, cancellationToken).GetAwaiter().GetResult(); } public static async ValueTask GetOptionAsync(this AnalyzerOptions analyzerOptions, IOption option, string? language, SyntaxTree syntaxTree, CancellationToken cancellationToken) { - var configOptions = analyzerOptions.AnalyzerConfigOptionsProvider.GetOptions(syntaxTree); - if (configOptions.TryGetEditorConfigOption(option, out var value)) + if (analyzerOptions.TryGetEditorConfigOption(option, syntaxTree, out var value)) { return value; } @@ -205,11 +130,6 @@ public static async ValueTask GetOptionAsync(this AnalyzerOptions analyzer return (T)optionSet?.GetOption(new OptionKey(option, language)) ?? (T)option.DefaultValue!; } - [Obsolete] - [PerformanceSensitive("https://github.com/dotnet/roslyn/issues/23582", OftenCompletesSynchronously = true)] - public static OptionSet? GetOptions(this AnalyzerOptions analyzerOptions, SyntaxTree syntaxTree, CancellationToken cancellationToken) - => analyzerOptions.GetDocumentOptionSetAsync(syntaxTree, cancellationToken).GetAwaiter().GetResult(); - [PerformanceSensitive("https://github.com/dotnet/roslyn/issues/23582", OftenCompletesSynchronously = true)] public static ValueTask GetDocumentOptionSetAsync(this AnalyzerOptions analyzerOptions, SyntaxTree syntaxTree, CancellationToken cancellationToken) { diff --git a/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOption.cs b/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOption.cs index c74089720b3..f3e47026ab3 100644 --- a/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOption.cs +++ b/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOption.cs @@ -7,7 +7,11 @@ using System.Xml.Linq; using Microsoft.CodeAnalysis.Diagnostics; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { internal interface ICodeStyleOption { diff --git a/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOptions.cs b/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOptions.cs index 238d0c8e11f..df388c6ba9e 100644 --- a/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOptions.cs +++ b/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOptions.cs @@ -6,11 +6,15 @@ using System.Collections.Immutable; using System.Diagnostics; -using Microsoft.CodeAnalysis.Options; using Roslyn.Utilities; using static Microsoft.CodeAnalysis.CodeStyle.CodeStyleHelpers; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else +using Microsoft.CodeAnalysis.Options; namespace Microsoft.CodeAnalysis.CodeStyle +#endif { public class CodeStyleOptions { diff --git a/src/Workspaces/Core/Portable/CodeStyle/NotificationOption.cs b/src/Workspaces/Core/Portable/CodeStyle/NotificationOption.cs index dc9e6b9843b..4716f4907b5 100644 --- a/src/Workspaces/Core/Portable/CodeStyle/NotificationOption.cs +++ b/src/Workspaces/Core/Portable/CodeStyle/NotificationOption.cs @@ -9,7 +9,11 @@ using WorkspacesResources = Microsoft.CodeAnalysis.CodeStyleResources; #endif +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { /// /// Offers different notification styles for enforcing diff --git a/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation.cs b/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation.cs index d6c869f2e0f..4cffbc67ae7 100644 --- a/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation.cs +++ b/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation.cs @@ -7,7 +7,11 @@ using System; using Microsoft.CodeAnalysis.CodeStyle; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { internal static class EditorConfigStorageLocation { diff --git a/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocationExtensions.cs b/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocationExtensions.cs index ad74af1dc26..2f72b8874f0 100644 --- a/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocationExtensions.cs +++ b/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocationExtensions.cs @@ -4,7 +4,11 @@ using System.Collections.Generic; using Microsoft.CodeAnalysis.Diagnostics; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { internal static class EditorConfigStorageLocationExtensions { diff --git a/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation`1.cs b/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation`1.cs index 4f5f2ff8a87..c8465fb1120 100644 --- a/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation`1.cs +++ b/src/Workspaces/Core/Portable/Options/EditorConfig/EditorConfigStorageLocation`1.cs @@ -14,7 +14,11 @@ using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; #endif +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// Specifies that an option should be read from an .editorconfig file. diff --git a/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation.cs b/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation.cs index baa9b456695..4bccc5e5c30 100644 --- a/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation.cs +++ b/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation.cs @@ -7,7 +7,11 @@ using System; using System.Collections.Generic; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { internal interface IEditorConfigStorageLocation { diff --git a/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation2.cs b/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation2.cs index 77935e947b9..7e98c1b2981 100644 --- a/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation2.cs +++ b/src/Workspaces/Core/Portable/Options/EditorConfig/IEditorConfigStorageLocation2.cs @@ -8,7 +8,11 @@ using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; #endif +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { internal interface IEditorConfigStorageLocation2 : IEditorConfigStorageLocation { diff --git a/src/Workspaces/Core/Portable/Options/IOption.cs b/src/Workspaces/Core/Portable/Options/IOption.cs index e515933f615..e34e0f10bac 100644 --- a/src/Workspaces/Core/Portable/Options/IOption.cs +++ b/src/Workspaces/Core/Portable/Options/IOption.cs @@ -7,7 +7,11 @@ using System; using System.Collections.Immutable; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { public interface IOption { diff --git a/src/Workspaces/Core/Portable/Options/IOptionWithGroup.cs b/src/Workspaces/Core/Portable/Options/IOptionWithGroup.cs index 5731d333fbe..8c77cfe46cf 100644 --- a/src/Workspaces/Core/Portable/Options/IOptionWithGroup.cs +++ b/src/Workspaces/Core/Portable/Options/IOptionWithGroup.cs @@ -4,7 +4,11 @@ #nullable enable +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// Group/sub-feature associated with an . diff --git a/src/Workspaces/Core/Portable/Options/LocalUserProfileStorageLocation.cs b/src/Workspaces/Core/Portable/Options/LocalUserProfileStorageLocation.cs index 5a9ad5d86eb..eda7956b742 100644 --- a/src/Workspaces/Core/Portable/Options/LocalUserProfileStorageLocation.cs +++ b/src/Workspaces/Core/Portable/Options/LocalUserProfileStorageLocation.cs @@ -4,7 +4,11 @@ #nullable enable +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// Specifies that the option should be stored into the user's local registry hive. diff --git a/src/Workspaces/Core/Portable/Options/OptionGroup.cs b/src/Workspaces/Core/Portable/Options/OptionGroup.cs index 5ed07877392..4b65e0a176a 100644 --- a/src/Workspaces/Core/Portable/Options/OptionGroup.cs +++ b/src/Workspaces/Core/Portable/Options/OptionGroup.cs @@ -6,7 +6,11 @@ using System; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// Group/sub-feature associated with an . diff --git a/src/Workspaces/Core/Portable/Options/OptionKey.cs b/src/Workspaces/Core/Portable/Options/OptionKey.cs index a219ccadd72..aedd8d72488 100644 --- a/src/Workspaces/Core/Portable/Options/OptionKey.cs +++ b/src/Workspaces/Core/Portable/Options/OptionKey.cs @@ -11,7 +11,11 @@ using WorkspacesResources = Microsoft.CodeAnalysis.CodeStyleResources; #endif +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { [NonDefaultable] public readonly struct OptionKey : IEquatable diff --git a/src/Workspaces/Core/Portable/Options/OptionStorageLocation.cs b/src/Workspaces/Core/Portable/Options/OptionStorageLocation.cs index f8e51208441..f57273dbc15 100644 --- a/src/Workspaces/Core/Portable/Options/OptionStorageLocation.cs +++ b/src/Workspaces/Core/Portable/Options/OptionStorageLocation.cs @@ -4,7 +4,11 @@ #nullable enable +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// The base type of all types that specify where options are stored. diff --git a/src/Workspaces/Core/Portable/Options/Option`1.cs b/src/Workspaces/Core/Portable/Options/Option`1.cs index ac74d4e1ff1..05bcee9e118 100644 --- a/src/Workspaces/Core/Portable/Options/Option`1.cs +++ b/src/Workspaces/Core/Portable/Options/Option`1.cs @@ -7,7 +7,11 @@ using System; using System.Collections.Immutable; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// Marker interface for diff --git a/src/Workspaces/Core/Portable/Options/PerLanguageOption.cs b/src/Workspaces/Core/Portable/Options/PerLanguageOption.cs index 517c032b7fe..ad90d93599d 100644 --- a/src/Workspaces/Core/Portable/Options/PerLanguageOption.cs +++ b/src/Workspaces/Core/Portable/Options/PerLanguageOption.cs @@ -7,7 +7,11 @@ using System; using System.Collections.Immutable; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// Marker interface for diff --git a/src/Workspaces/Core/Portable/Options/RoamingProfileStorageLocation.cs b/src/Workspaces/Core/Portable/Options/RoamingProfileStorageLocation.cs index ceab904ac44..c42364844c4 100644 --- a/src/Workspaces/Core/Portable/Options/RoamingProfileStorageLocation.cs +++ b/src/Workspaces/Core/Portable/Options/RoamingProfileStorageLocation.cs @@ -6,7 +6,11 @@ using System; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.Options +#endif { /// /// Specifies that the option should be stored into a roamed profile across machines. diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions.cs index ad91c439580..c4ee14a1846 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions.cs @@ -7,9 +7,18 @@ using System.Linq; using Microsoft.CodeAnalysis.AddImports; using Microsoft.CodeAnalysis.CodeStyle; + +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else using Microsoft.CodeAnalysis.Options; +#endif +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle +#else namespace Microsoft.CodeAnalysis.CSharp.CodeStyle +#endif { internal static partial class CSharpCodeStyleOptions { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions_Parsing.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions_Parsing.cs index ac34ecbc483..6e4be16a941 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions_Parsing.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/CSharpCodeStyleOptions_Parsing.cs @@ -7,7 +7,17 @@ using Microsoft.CodeAnalysis.CodeStyle; using Roslyn.Utilities; +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else +using Microsoft.CodeAnalysis.Options; +#endif + +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle +#else namespace Microsoft.CodeAnalysis.CSharp.CodeStyle +#endif { internal static partial class CSharpCodeStyleOptions { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/PreferBracesPreference.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/PreferBracesPreference.cs index 364fe8c6aff..583ba9dd146 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/PreferBracesPreference.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/PreferBracesPreference.cs @@ -3,9 +3,18 @@ // See the LICENSE file in the project root for more information. using System.Xml.Linq; + +#if CODE_STYLE +using Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle; +#else using Microsoft.CodeAnalysis.CSharp.CodeStyle; +#endif +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { /// /// Defines the known values for . diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/TypeStyleHelper.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/TypeStyleHelper.cs index 48213528e65..57cdafb1d5a 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/TypeStyleHelper.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/TypeStyleHelper.cs @@ -15,7 +15,11 @@ using Microsoft.CodeAnalysis.Options; #endif +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle.TypeStyle +#else namespace Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle +#endif { internal static class TypeStyleHelper { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/UseVarPreference.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/UseVarPreference.cs index 876d1abe528..37f554f2a83 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/UseVarPreference.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/CodeStyle/TypeStyle/UseVarPreference.cs @@ -4,7 +4,11 @@ using System; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle.TypeStyle +#else namespace Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle +#endif { [Flags] internal enum UseVarPreference diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/CSharpFormattingOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/CSharpFormattingOptions.cs index 27615c20a3f..74c865acca8 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/CSharpFormattingOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/CSharpFormattingOptions.cs @@ -4,12 +4,14 @@ using System.Collections.Immutable; using System.Diagnostics; -using Microsoft.CodeAnalysis.Options; using Roslyn.Utilities; #if CODE_STYLE using CSharpWorkspaceResources = Microsoft.CodeAnalysis.CSharp.CSharpCodeStyleResources; using WorkspacesResources = Microsoft.CodeAnalysis.CodeStyleResources; +using Microsoft.CodeAnalysis.Internal.Options; +#else +using Microsoft.CodeAnalysis.Options; #endif namespace Microsoft.CodeAnalysis.CSharp.Formatting diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/Rules/SpacingFormattingRule.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/Rules/SpacingFormattingRule.cs index a2536958490..f9041017047 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/Rules/SpacingFormattingRule.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Formatting/Rules/SpacingFormattingRule.cs @@ -7,10 +7,12 @@ using Microsoft.CodeAnalysis.CSharp.Extensions; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Formatting.Rules; -using Microsoft.CodeAnalysis.Options; #if CODE_STYLE using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; +using Microsoft.CodeAnalysis.Internal.Options; +#else +using Microsoft.CodeAnalysis.Options; #endif namespace Microsoft.CodeAnalysis.CSharp.Formatting diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpTypeStyleHelper.State.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpTypeStyleHelper.State.cs index 8ffb1587f0d..8d9fb610241 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpTypeStyleHelper.State.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpTypeStyleHelper.State.cs @@ -3,16 +3,18 @@ // See the LICENSE file in the project root for more information. using System.Threading; -using Microsoft.CodeAnalysis.CSharp.CodeStyle; -using Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle; using Microsoft.CodeAnalysis.CSharp.Extensions; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Shared.Extensions; #if CODE_STYLE using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; +using Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle; +using Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle.TypeStyle; #else using Microsoft.CodeAnalysis.Options; +using Microsoft.CodeAnalysis.CSharp.CodeStyle; +using Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle; #endif namespace Microsoft.CodeAnalysis.CSharp.Utilities diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseExplicitTypeHelper.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseExplicitTypeHelper.cs index 59d9bf74ccc..23e7e98f8eb 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseExplicitTypeHelper.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseExplicitTypeHelper.cs @@ -4,15 +4,16 @@ using System.Threading; using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle; using Microsoft.CodeAnalysis.CSharp.Extensions; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Shared.Extensions; #if CODE_STYLE using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; +using Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle.TypeStyle; #else using Microsoft.CodeAnalysis.Options; +using Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle; #endif namespace Microsoft.CodeAnalysis.CSharp.Utilities diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseImplicitTypeHelper.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseImplicitTypeHelper.cs index 9d1a356240d..75e793e3860 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseImplicitTypeHelper.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/CSharp/Utilities/TypeStyle/CSharpUseImplicitTypeHelper.cs @@ -6,7 +6,6 @@ using System.Linq; using System.Threading; using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle; using Microsoft.CodeAnalysis.CSharp.Extensions; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Shared.Extensions; @@ -15,8 +14,10 @@ #if CODE_STYLE using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; +using Microsoft.CodeAnalysis.CSharp.Internal.CodeStyle.TypeStyle; #else using Microsoft.CodeAnalysis.Options; +using Microsoft.CodeAnalysis.CSharp.CodeStyle.TypeStyle; #endif namespace Microsoft.CodeAnalysis.CSharp.Utilities diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/AccessibilityModifiersRequired.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/AccessibilityModifiersRequired.cs index 74d8b24866f..6a25c279338 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/AccessibilityModifiersRequired.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/AccessibilityModifiersRequired.cs @@ -3,7 +3,11 @@ // See the LICENSE file in the project root for more information. +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { internal enum AccessibilityModifiersRequired { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/CodeStyleHelpers.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/CodeStyleHelpers.cs index 5915985e7e3..1fd89bd98c7 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/CodeStyleHelpers.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/CodeStyleHelpers.cs @@ -4,9 +4,14 @@ using System.Collections.Immutable; using System.Diagnostics; -using Microsoft.CodeAnalysis.Options; using Roslyn.Utilities; +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else +using Microsoft.CodeAnalysis.Options; +#endif + namespace Microsoft.CodeAnalysis.CodeStyle { internal static class CodeStyleHelpers diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/OperatorPlacementWhenWrappingPreference.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/OperatorPlacementWhenWrappingPreference.cs index 21ecdb8ffd6..d1b9552de31 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/OperatorPlacementWhenWrappingPreference.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/OperatorPlacementWhenWrappingPreference.cs @@ -2,9 +2,12 @@ // 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; - +#if CODE_STYLE +using Microsoft.CodeAnalysis.CodeStyle; +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { internal enum OperatorPlacementWhenWrappingPreference { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/ParenthesesPreference.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/ParenthesesPreference.cs index bf4329b68e4..6970e230202 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/ParenthesesPreference.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/ParenthesesPreference.cs @@ -2,7 +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. +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { internal enum ParenthesesPreference { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/UnusedParametersPreference.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/UnusedParametersPreference.cs index cd7e60efe4c..27cd378da91 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/UnusedParametersPreference.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CodeStyle/UnusedParametersPreference.cs @@ -2,7 +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. +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { /// /// Preferences for flagging unused parameters. diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems index ba5291b3984..fdee8748175 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/CompilerExtensions.projitems @@ -44,7 +44,7 @@ - + Execution\Desktop\DesktopAnalyzerAssemblyLoader.cs @@ -185,6 +185,7 @@ + diff --git a/src/Workspaces/Core/Portable/CodeStyle/AnalyzerConfigOptionsExtensions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/AnalyzerConfigOptionsExtensions.cs similarity index 67% rename from src/Workspaces/Core/Portable/CodeStyle/AnalyzerConfigOptionsExtensions.cs rename to src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/AnalyzerConfigOptionsExtensions.cs index 99c9b6580aa..23801a9aa51 100644 --- a/src/Workspaces/Core/Portable/CodeStyle/AnalyzerConfigOptionsExtensions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/AnalyzerConfigOptionsExtensions.cs @@ -1,20 +1,35 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.CodeAnalysis.Diagnostics; + +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else using Microsoft.CodeAnalysis.Options; +#endif namespace Microsoft.CodeAnalysis { - internal static class AnalyzerConfigOptionsExtensions + internal static partial class AnalyzerConfigOptionsExtensions { - public static bool TryGetEditorConfigOption(this AnalyzerConfigOptions analyzerConfigOptions, Option option, out T value) + public static T GetOption(this AnalyzerConfigOptions optionSet, Option option) { - return TryGetEditorConfigOption(analyzerConfigOptions, (IOption)option, out value); + if (!TryGetEditorConfigOption(optionSet, option, out T value)) + { + value = option.DefaultValue; + } + + return value; } - public static bool TryGetEditorConfigOption(this AnalyzerConfigOptions analyzerConfigOptions, PerLanguageOption option, out T value) + public static T GetOption(this AnalyzerConfigOptions optionSet, PerLanguageOption option, string language) { - return TryGetEditorConfigOption(analyzerConfigOptions, option, out value); + if (!TryGetEditorConfigOption(optionSet, option, out T value)) + { + value = option.DefaultValue; + } + + return value; } public static bool TryGetEditorConfigOption(this AnalyzerConfigOptions analyzerConfigOptions, IOption option, out T value) diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/NotificationOptionExtensions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/NotificationOptionExtensions.cs index d1214fed96a..fae1a025fab 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/NotificationOptionExtensions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Extensions/NotificationOptionExtensions.cs @@ -4,7 +4,11 @@ using Microsoft.CodeAnalysis.Diagnostics; +#if CODE_STYLE +namespace Microsoft.CodeAnalysis.Internal.Options +#else namespace Microsoft.CodeAnalysis.CodeStyle +#endif { internal static class NotificationOptionExtensions { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Fading/FadingOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Fading/FadingOptions.cs index 86ba8f9660c..42dbbecfb6e 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Fading/FadingOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Fading/FadingOptions.cs @@ -4,7 +4,11 @@ #nullable enable +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else using Microsoft.CodeAnalysis.Options; +#endif namespace Microsoft.CodeAnalysis.Fading { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/Engine/AbstractFormatEngine.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/Engine/AbstractFormatEngine.cs index 3b729112cff..4f9e34fcf81 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/Engine/AbstractFormatEngine.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/Engine/AbstractFormatEngine.cs @@ -8,14 +8,16 @@ using System.Threading; using Microsoft.CodeAnalysis.Formatting.Rules; using Microsoft.CodeAnalysis.Internal.Log; -using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Shared.Extensions; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.Text; using Roslyn.Utilities; #if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; +#else +using Microsoft.CodeAnalysis.Options; #endif namespace Microsoft.CodeAnalysis.Formatting diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions.cs index 151989d83a3..707ce6ef8ce 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions.cs @@ -6,11 +6,13 @@ using System; using System.Collections.Immutable; -using Microsoft.CodeAnalysis.Options; using Roslyn.Utilities; #if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; using WorkspacesResources = Microsoft.CodeAnalysis.CodeStyleResources; +#else +using Microsoft.CodeAnalysis.Options; #endif namespace Microsoft.CodeAnalysis.Formatting diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/FunctionIdOptions.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/FunctionIdOptions.cs index be6303b0b0a..2179e564f8c 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/FunctionIdOptions.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/FunctionIdOptions.cs @@ -4,7 +4,12 @@ using System; using System.Collections.Concurrent; + +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +#else using Microsoft.CodeAnalysis.Options; +#endif namespace Microsoft.CodeAnalysis.Internal.Log { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/Logger.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/Logger.cs index 09a7e2ad911..40b66e78689 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/Logger.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Log/Logger.cs @@ -3,9 +3,12 @@ // See the LICENSE file in the project root for more information. using System; -using System.Linq; using System.Threading; + +#if !CODE_STYLE +using System.Linq; using Microsoft.CodeAnalysis.Options; +#endif namespace Microsoft.CodeAnalysis.Internal.Log { diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/Helpers/SimplificationHelpers.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/Helpers/SimplificationHelpers.cs index 14cc163aff5..ee7d1eff326 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/Helpers/SimplificationHelpers.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/Helpers/SimplificationHelpers.cs @@ -3,11 +3,17 @@ // See the LICENSE file in the project root for more information. using System.Linq; -using Microsoft.CodeAnalysis.CodeStyle; -using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Shared.Extensions; using Roslyn.Utilities; +#if CODE_STYLE +using Microsoft.CodeAnalysis.Internal.Options; +using OptionSet = Microsoft.CodeAnalysis.Diagnostics.AnalyzerConfigOptions; +#else +using Microsoft.CodeAnalysis.CodeStyle; +using Microsoft.CodeAnalysis.Options; +#endif + namespace Microsoft.CodeAnalysis.Simplification { internal static class SimplificationHelpers -- GitLab