提交 068e0a7e 编写于 作者: C CyrusNajmabadi

Add user facing Code Style Option.

上级 4a4fedd5
......@@ -53,7 +53,7 @@ private void AnalyzeSyntax(SyntaxNodeAnalysisContext context)
return;
}
var codeStyleOption = optionSet.GetOption(CSharpCodeStyleOptions.PreferSimpleDefault);
var codeStyleOption = optionSet.GetOption(CSharpCodeStyleOptions.PreferDefaultLiteral);
if (!codeStyleOption.Value)
{
return;
......
......@@ -425,6 +425,21 @@ public Customer()
//]
}}
}}
";
private static readonly string s_preferDefaultLiteral = $@"
using System.Threading;
class Customer
{{
//[
// {ServicesVSResources.Prefer_colon}
void DoWork(CancellationToken cancellationToken = default) {{ }}
// {ServicesVSResources.Over_colon}
void DoWork(CancellationToken cancellationToken = default(CancellationToken)) {{ }}
//]
}}
";
private static readonly string s_preferInlinedVariableDeclaration = $@"
......@@ -693,6 +708,7 @@ internal StyleViewModel(OptionSet optionSet, IServiceProvider serviceProvider) :
CodeStyleItems.Add(new BooleanCodeStyleOptionViewModel(CSharpCodeStyleOptions.PreferPatternMatchingOverIsWithCastCheck, CSharpVSResources.Prefer_pattern_matching_over_is_with_cast_check, s_preferPatternMatchingOverIsWithCastCheck, s_preferPatternMatchingOverIsWithCastCheck, this, optionSet, expressionPreferencesGroupTitle));
CodeStyleItems.Add(new BooleanCodeStyleOptionViewModel(CSharpCodeStyleOptions.PreferPatternMatchingOverAsWithNullCheck, CSharpVSResources.Prefer_pattern_matching_over_as_with_null_check, s_preferPatternMatchingOverAsWithNullCheck, s_preferPatternMatchingOverAsWithNullCheck, this, optionSet, expressionPreferencesGroupTitle));
CodeStyleItems.Add(new BooleanCodeStyleOptionViewModel(CodeStyleOptions.PreferExplicitTupleNames, ServicesVSResources.Prefer_explicit_tuple_name, s_preferExplicitTupleName, s_preferExplicitTupleName, this, optionSet, expressionPreferencesGroupTitle));
CodeStyleItems.Add(new BooleanCodeStyleOptionViewModel(CSharpCodeStyleOptions.PreferDefaultLiteral, ServicesVSResources.Prefer_default_literal, s_preferDefaultLiteral, s_preferDefaultLiteral, this, optionSet, expressionPreferencesGroupTitle));
AddExpressionBodyOptions(optionSet, expressionPreferencesGroupTitle);
......
......@@ -19,7 +19,7 @@ namespace Microsoft.VisualStudio.LanguageServices {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class ServicesVSResources {
......@@ -1502,6 +1502,15 @@ internal class ServicesVSResources {
}
}
/// <summary>
/// Looks up a localized string similar to Prefer &apos;default&apos; literal.
/// </summary>
internal static string Prefer_default_literal {
get {
return ResourceManager.GetString("Prefer_default_literal", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Prefer explicit tuple name.
/// </summary>
......
......@@ -906,10 +906,13 @@ Additional information: {1}</value>
<data name="prefer_throwing_properties" xml:space="preserve">
<value>prefer throwing properties</value>
</data>
<data name="When_generating_properties" xml:space="preserve">
<data name="When_generating_properties" xml:space="preserve">
<value>When generating properties:</value>
</data>
</data>
<data name="Options" xml:space="preserve">
<value>Options</value>
</data>
<data name="Prefer_default_literal" xml:space="preserve">
<value>Prefer 'default' literal</value>
</data>
</root>
\ No newline at end of file
......@@ -134,11 +134,11 @@ internal static class CSharpCodeStyleOptions
EditorConfigStorageLocation.ForBoolCodeStyleOption("csharp_prefer_braces"),
new RoamingProfileStorageLocation($"TextEditor.CSharp.Specific.{nameof(PreferBraces)}")});
public static readonly Option<CodeStyleOption<bool>> PreferSimpleDefault = new Option<CodeStyleOption<bool>>(
nameof(CodeStyleOptions), nameof(PreferSimpleDefault), defaultValue: CodeStyleOptions.TrueWithSuggestionEnforcement,
public static readonly Option<CodeStyleOption<bool>> PreferDefaultLiteral = new Option<CodeStyleOption<bool>>(
nameof(CodeStyleOptions), nameof(PreferDefaultLiteral), defaultValue: CodeStyleOptions.TrueWithSuggestionEnforcement,
storageLocations: new OptionStorageLocation[] {
EditorConfigStorageLocation.ForBoolCodeStyleOption("csharp_prefer_simple_default"),
new RoamingProfileStorageLocation($"TextEditor.CSharp.Specific.{nameof(PreferSimpleDefault)}")});
EditorConfigStorageLocation.ForBoolCodeStyleOption("csharp_prefer_default_literal"),
new RoamingProfileStorageLocation($"TextEditor.CSharp.Specific.{nameof(PreferDefaultLiteral)}")});
public static IEnumerable<Option<CodeStyleOption<bool>>> GetCodeStyleOptions()
{
......@@ -149,7 +149,7 @@ public static IEnumerable<Option<CodeStyleOption<bool>>> GetCodeStyleOptions()
yield return PreferPatternMatchingOverAsWithNullCheck;
yield return PreferPatternMatchingOverIsWithCastCheck;
yield return PreferBraces;
yield return PreferSimpleDefault;
yield return PreferDefaultLiteral;
}
public static IEnumerable<Option<CodeStyleOption<ExpressionBodyPreference>>> GetExpressionBodyOptions()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册