提交 1d91c75e 编写于 作者: C CyrusNajmabadi

Provide C# options for controlling new Dev15 features.

上级 3f314720
......@@ -17,5 +17,9 @@ internal static class CompletionOptions
public static readonly Option<bool> AlwaysShowBuilder = new Option<bool>(ControllerFeatureName, "AlwaysShowBuilder", defaultValue: false);
public static readonly Option<bool> FilterOutOfScopeLocals = new Option<bool>(ControllerFeatureName, "FilterOutOfScopeLocals", defaultValue: true);
public static readonly Option<bool> ShowXmlDocCommentCompletion = new Option<bool>(ControllerFeatureName, "ShowXmlDocCommentCompletion", defaultValue: true);
// Dev15 options
public static readonly PerLanguageOption<bool> ShowCompletionItemFilters = new PerLanguageOption<bool>(FeatureName, nameof(ShowCompletionItemFilters), defaultValue: false);
public static readonly PerLanguageOption<bool> HighlightMatchingPortionsOfCompletionListItems = new PerLanguageOption<bool>(FeatureName, nameof(HighlightMatchingPortionsOfCompletionListItems), defaultValue: false);
}
}
......@@ -11,17 +11,14 @@ namespace Microsoft.CodeAnalysis.Completion
[ExportOptionProvider, Shared]
internal class CompletionOptionsProvider : IOptionProvider
{
private readonly IEnumerable<IOption> _options = new List<IOption>
{
CompletionOptions.HideAdvancedMembers,
CompletionOptions.IncludeKeywords,
CompletionOptions.TriggerOnTyping,
CompletionOptions.TriggerOnTypingLetters
}.ToImmutableArray();
private readonly IEnumerable<IOption> _options = ImmutableArray.Create<IOption>(
CompletionOptions.HideAdvancedMembers,
CompletionOptions.IncludeKeywords,
CompletionOptions.TriggerOnTyping,
CompletionOptions.TriggerOnTypingLetters,
CompletionOptions.ShowCompletionItemFilters,
CompletionOptions.HighlightMatchingPortionsOfCompletionListItems);
public IEnumerable<IOption> GetOptions()
{
return _options;
}
public IEnumerable<IOption> GetOptions() => _options;
}
}
}
\ No newline at end of file
......@@ -483,6 +483,15 @@ internal class CSharpVSResources {
}
}
/// <summary>
/// Looks up a localized string similar to Highlight matching portions of completion list items.
/// </summary>
internal static string Option_Highlight_matching_portions_of_completion_list_items {
get {
return ResourceManager.GetString("Option_Highlight_matching_portions_of_completion_list_items", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Highlighting.
/// </summary>
......@@ -591,6 +600,15 @@ internal class CSharpVSResources {
}
}
/// <summary>
/// Looks up a localized string similar to Show completion item filters.
/// </summary>
internal static string Option_Show_completion_item_filters {
get {
return ResourceManager.GetString("Option_Show_completion_item_filters", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Place _keywords in completion lists.
/// </summary>
......
......@@ -459,4 +459,10 @@
<data name="Option_Split_string_literals_on_enter" xml:space="preserve">
<value>Split string literals on _enter</value>
</data>
<data name="Option_Highlight_matching_portions_of_completion_list_items" xml:space="preserve">
<value>Highlight matching portions of completion list items</value>
</data>
<data name="Option_Show_completion_item_filters" xml:space="preserve">
<value>Show completion item filters</value>
</data>
</root>
\ No newline at end of file
......@@ -45,6 +45,18 @@ public int BringUpOnIdentifier
set { SetBooleanOption(CompletionOptions.TriggerOnTypingLetters, value); }
}
public int HighlightMatchingPortionsOfCompletionListItems
{
get { return GetBooleanOption(CompletionOptions.HighlightMatchingPortionsOfCompletionListItems); }
set { SetBooleanOption(CompletionOptions.HighlightMatchingPortionsOfCompletionListItems, value); }
}
public int ShowCompletionItemFilters
{
get { return GetBooleanOption(CompletionOptions.ShowCompletionItemFilters); }
set { SetBooleanOption(CompletionOptions.ShowCompletionItemFilters, value); }
}
[Obsolete("This SettingStore option has now been deprecated in favor of CSharpClosedFileDiagnostics")]
public int ClosedFileDiagnostics
{
......
......@@ -82,6 +82,8 @@ private bool ShouldIncludeOnOffOption(FieldInfo fieldInfo)
{
new KeyValuePair<string, IOption>(GetStorageKeyForOption(CompletionOptions.IncludeKeywords), CompletionOptions.IncludeKeywords),
new KeyValuePair<string, IOption>(GetStorageKeyForOption(CompletionOptions.TriggerOnTypingLetters), CompletionOptions.TriggerOnTypingLetters),
new KeyValuePair<string, IOption>(GetStorageKeyForOption(CompletionOptions.ShowCompletionItemFilters), CompletionOptions.ShowCompletionItemFilters),
new KeyValuePair<string, IOption>(GetStorageKeyForOption(CompletionOptions.HighlightMatchingPortionsOfCompletionListItems), CompletionOptions.HighlightMatchingPortionsOfCompletionListItems),
});
Type[] types = new[]
......@@ -145,6 +147,8 @@ protected override bool SupportsOption(IOption option, string languageName)
{
if (option == CompletionOptions.IncludeKeywords ||
option == CompletionOptions.TriggerOnTypingLetters ||
option == CompletionOptions.ShowCompletionItemFilters ||
option == CompletionOptions.HighlightMatchingPortionsOfCompletionListItems ||
option.Feature == SimplificationOptions.PerLanguageFeatureName ||
option.Feature == ExtractMethodOptions.FeatureName ||
option.Feature == ServiceFeatureOnOffOptions.OptionName ||
......
......@@ -27,17 +27,18 @@
<CheckBox x:Uid="ShowSnippets"
x:Name="ShowSnippets"
Content="{x:Static local:IntelliSenseOptionPageStrings.Option_ShowSnippets}" />
<CheckBox x:Uid="InsertNewlineOnEnterWithWholeWord"
x:Name="InsertNewlineOnEnterWithWholeWord"
Content="{x:Static local:IntelliSenseOptionPageStrings.Option_InsertNewlineOnEnterWithWholeWord}" />
<CheckBox x:Uid="Highlight_matching_portions_of_completion_list_items"
x:Name="Highlight_matching_portions_of_completion_list_items"
Content="{x:Static local:IntelliSenseOptionPageStrings.Option_Highlight_matching_portions_of_completion_list_items}" />
<CheckBox x:Uid="Show_completion_item_filters"
x:Name="Show_completion_item_filters"
Content="{x:Static local:IntelliSenseOptionPageStrings.Option_Show_completion_item_filters}" />
</StackPanel>
</StackPanel>
</GroupBox>
<GroupBox x:Uid="SelectionInCompletionListGroupBox"
Header="{x:Static local:IntelliSenseOptionPageStrings.Option_SelectionInCompletionList}">
<StackPanel>
<CheckBox x:Uid="InsertNewlineOnEnterWithWholeWord"
x:Name="InsertNewlineOnEnterWithWholeWord"
Content="{x:Static local:IntelliSenseOptionPageStrings.Option_InsertNewlineOnEnterWithWholeWord}" />
</StackPanel>
</GroupBox>
</StackPanel>
</ScrollViewer>
</options:AbstractOptionPageControl>
......@@ -14,6 +14,8 @@ public IntelliSenseOptionPageControl(IServiceProvider serviceProvider) : base(se
{
InitializeComponent();
BindToOption(Show_completion_item_filters, CompletionOptions.ShowCompletionItemFilters, LanguageNames.CSharp);
BindToOption(Highlight_matching_portions_of_completion_list_items, CompletionOptions.HighlightMatchingPortionsOfCompletionListItems, LanguageNames.CSharp);
BindToOption(InsertNewlineOnEnterWithWholeWord, CSharpCompletionOptions.AddNewLineOnEnterAfterFullyTypedWord);
BindToOption(ShowSnippets, CSharpCompletionOptions.IncludeSnippets);
BindToOption(ShowKeywords, CompletionOptions.IncludeKeywords, LanguageNames.CSharp);
......
......@@ -33,5 +33,11 @@ public static string Option_ShowSnippets
{
get { return CSharpVSResources.Option_ShowSnippets; }
}
public static string Option_Highlight_matching_portions_of_completion_list_items =>
CSharpVSResources.Option_Highlight_matching_portions_of_completion_list_items;
public static string Option_Show_completion_item_filters =>
CSharpVSResources.Option_Show_completion_item_filters;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册