diff --git a/src/EditorFeatures/Core/Options/NavigationBarViewOptionsStorage.cs b/src/EditorFeatures/Core/Options/NavigationBarViewOptionsStorage.cs index 24d9f3fc65c87..e571de28b422b 100644 --- a/src/EditorFeatures/Core/Options/NavigationBarViewOptionsStorage.cs +++ b/src/EditorFeatures/Core/Options/NavigationBarViewOptionsStorage.cs @@ -11,5 +11,5 @@ internal sealed class NavigationBarViewOptionsStorage private const string FeatureName = "NavigationBarOptions"; public static readonly PerLanguageOption2 ShowNavigationBar = new( - FeatureName, "ShowNavigationBar", defaultValue: true, new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Dropdown Bar")); + FeatureName, "ShowNavigationBar", defaultValue: true, new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Dropdown Bar", useEditorLanguageName: true)); } diff --git a/src/EditorFeatures/Core/Options/SignatureHelpViewOptionsStorage.cs b/src/EditorFeatures/Core/Options/SignatureHelpViewOptionsStorage.cs index b887e3fbdbaf3..d14eb540f4d38 100644 --- a/src/EditorFeatures/Core/Options/SignatureHelpViewOptionsStorage.cs +++ b/src/EditorFeatures/Core/Options/SignatureHelpViewOptionsStorage.cs @@ -11,5 +11,5 @@ internal sealed class SignatureHelpViewOptionsStorage private const string FeatureName = "SignatureHelpOptions"; public static readonly PerLanguageOption2 ShowSignatureHelp = new( - FeatureName, "ShowSignatureHelp", defaultValue: true, new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Auto List Params")); + FeatureName, "ShowSignatureHelp", defaultValue: true, new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Auto List Params", useEditorLanguageName: true)); } diff --git a/src/Features/LanguageServer/Protocol/Features/Options/CompletionOptionsStorage.cs b/src/Features/LanguageServer/Protocol/Features/Options/CompletionOptionsStorage.cs index e12ebce56e77b..21dd403597c59 100644 --- a/src/Features/LanguageServer/Protocol/Features/Options/CompletionOptionsStorage.cs +++ b/src/Features/LanguageServer/Protocol/Features/Options/CompletionOptionsStorage.cs @@ -49,11 +49,11 @@ public static CompletionOptions GetCompletionOptions(this IGlobalOptionService o public static readonly PerLanguageOption2 HideAdvancedMembers = new( "CompletionOptions", "HideAdvancedMembers", CompletionOptions.Default.HideAdvancedMembers, - new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Hide Advanced Auto List Members")); + new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Hide Advanced Auto List Members", useEditorLanguageName: true)); public static readonly PerLanguageOption2 TriggerOnTyping = new( "CompletionOptions", "TriggerOnTyping", CompletionOptions.Default.TriggerOnTyping, - new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Auto List Members")); + new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Auto List Members", useEditorLanguageName: true)); public static readonly PerLanguageOption2 TriggerOnTypingLetters = new(nameof(CompletionOptions), nameof(TriggerOnTypingLetters), CompletionOptions.Default.TriggerOnTypingLetters, storageLocation: new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Specific.TriggerOnTypingLetters")); diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions2.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions2.cs index 9e188625b5605..ee72b464261a9 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions2.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Formatting/FormattingOptions2.cs @@ -41,19 +41,19 @@ public Provider() new(FeatureName, FormattingOptionGroups.IndentationAndSpacing, nameof(UseTabs), LineFormattingOptions.Default.UseTabs, storageLocations: ImmutableArray.Create( new EditorConfigStorageLocation("indent_style", s => s == "tab", isSet => isSet ? "tab" : "space"), - new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Insert Tabs"))); + new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Insert Tabs", useEditorLanguageName: true))); public static PerLanguageOption2 TabSize = new(FeatureName, FormattingOptionGroups.IndentationAndSpacing, nameof(TabSize), LineFormattingOptions.Default.TabSize, storageLocations: ImmutableArray.Create( EditorConfigStorageLocation.ForInt32Option("tab_width"), - new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Tab Size"))); + new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Tab Size", useEditorLanguageName: true))); public static PerLanguageOption2 IndentationSize = new(FeatureName, FormattingOptionGroups.IndentationAndSpacing, nameof(IndentationSize), LineFormattingOptions.Default.IndentationSize, storageLocations: ImmutableArray.Create( EditorConfigStorageLocation.ForInt32Option("indent_size"), - new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Indent Size"))); + new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Indent Size", useEditorLanguageName: true))); public static PerLanguageOption2 NewLine = new(FeatureName, FormattingOptionGroups.NewLine, nameof(NewLine), LineFormattingOptions.Default.NewLine, @@ -80,7 +80,7 @@ public Provider() public static PerLanguageOption2 SmartIndent { get; } = new(FeatureName, FormattingOptionGroups.IndentationAndSpacing, nameof(SmartIndent), defaultValue: IndentationOptions.DefaultIndentStyle, - new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Indent Style")); + new RoamingProfileStorageLocation("TextEditor.%LANGUAGE%.Indent Style", useEditorLanguageName: true)); #if !CODE_STYLE internal static readonly ImmutableArray Options = ImmutableArray.Create( diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/ClientSettingsStorageLocation.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/ClientSettingsStorageLocation.cs index 3d12ba03c3427..208785f37caed 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/ClientSettingsStorageLocation.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/ClientSettingsStorageLocation.cs @@ -17,9 +17,13 @@ namespace Microsoft.CodeAnalysis.Options; internal abstract class ClientSettingsStorageLocation : OptionStorageLocation2 { private readonly Func _keyNameFromLanguageName; + private readonly bool _useEditorLanguageName; - public ClientSettingsStorageLocation(string keyName) - => _keyNameFromLanguageName = _ => keyName; + public ClientSettingsStorageLocation(string keyName, bool useEditorLanguageName) + { + _keyNameFromLanguageName = _ => keyName; + _useEditorLanguageName = useEditorLanguageName; + } /// /// Creates a that has different key names for different languages. @@ -39,7 +43,7 @@ public string GetKeyNameForLanguage(string? languageName) keyName = keyName.Replace("%LANGUAGE%", languageName switch { LanguageNames.CSharp => "CSharp", - LanguageNames.VisualBasic => "VisualBasic", + LanguageNames.VisualBasic => _useEditorLanguageName ? "Basic" : "VisualBasic", _ => languageName // handles F#, TypeScript and Xaml }); } diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/LocalClientSettingsStorageLocation.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/LocalClientSettingsStorageLocation.cs index d4cf826b9c501..bee5aa2890c20 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/LocalClientSettingsStorageLocation.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/LocalClientSettingsStorageLocation.cs @@ -20,7 +20,7 @@ internal sealed class LocalClientSettingsStorageLocation : ClientSettingsStorage public override bool IsMachineLocal => true; public LocalClientSettingsStorageLocation(string keyName) - : base(keyName) + : base(keyName, useEditorLanguageName: false) { } diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/RoamingProfileStorageLocation.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/RoamingProfileStorageLocation.cs index ec382f18d23df..a36e674923fd4 100644 --- a/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/RoamingProfileStorageLocation.cs +++ b/src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Options/RoamingProfileStorageLocation.cs @@ -13,8 +13,8 @@ internal sealed class RoamingProfileStorageLocation : ClientSettingsStorageLocat { public override bool IsMachineLocal => false; - public RoamingProfileStorageLocation(string keyName) - : base(keyName) + public RoamingProfileStorageLocation(string keyName, bool useEditorLanguageName = false) + : base(keyName, useEditorLanguageName) { }