Skip to content

Commit

Permalink
Turn IdeCodeStyleOptions to records
Browse files Browse the repository at this point in the history
  • Loading branch information
tmat committed Feb 1, 2023
1 parent 532cd93 commit 0b348a2
Show file tree
Hide file tree
Showing 18 changed files with 272 additions and 398 deletions.
4 changes: 2 additions & 2 deletions src/Analyzers/Core/Analyzers/AnalyzerOptionsProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ private TValue GetOption<TValue>(Option2<TValue> option, TValue defaultValue)
private TValue GetOption<TValue>(PerLanguageOption2<TValue> option, TValue defaultValue)
=> _options.GetOption(option, _language, defaultValue);

private IdeCodeStyleOptions.CommonOptions FallbackCodeStyleOptions
=> _fallbackOptions.CodeStyleOptions?.Common ?? IdeCodeStyleOptions.CommonOptions.Default;
private IdeCodeStyleOptions FallbackCodeStyleOptions
=> _fallbackOptions.CodeStyleOptions ?? IdeCodeStyleOptions.CommonDefaults;

private SimplifierOptions.CommonOptions FallbackSimplifierOptions
=> _fallbackOptions.CleanupOptions?.SimplifierOptions.Common ?? SimplifierOptions.CommonOptions.Default;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public static CSharpSyntaxWrappingOptions GetCSharpSyntaxWrappingOptions(this IO

return new(
options.GetCSharpSyntaxFormattingOptions((CSharpSyntaxFormattingOptions)fallbackOptions.CleanupOptions.FormattingOptions),
operatorPlacement: options.GetOption(CodeStyleOptions2.OperatorPlacementWhenWrapping, fallbackOptions.CodeStyleOptions.Common.OperatorPlacementWhenWrapping),
operatorPlacement: options.GetOption(CodeStyleOptions2.OperatorPlacementWhenWrapping, fallbackOptions.CodeStyleOptions.OperatorPlacementWhenWrapping),
wrappingColumn: fallbackOptions.WrappingColumn,
newLinesForBracesInObjectCollectionArrayInitializers: options.GetOption(CSharpFormattingOptions2.NewLineBeforeOpenBrace, newLineBeforeOpenBraceDefault).HasFlag(NewLineBeforeOpenBracePlacement.ObjectCollectionArrayInitializers));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Wrapping
Public Shared Function Create(options As IOptionsReader, fallbackOptions As CodeActionOptions) As VisualBasicSyntaxWrappingOptions
Return New VisualBasicSyntaxWrappingOptions(
formattingOptions:=VisualBasicSyntaxFormattingOptions.Create(options, DirectCast(fallbackOptions.CleanupOptions.FormattingOptions, VisualBasicSyntaxFormattingOptions)),
operatorPlacement:=options.GetOption(CodeStyleOptions2.OperatorPlacementWhenWrapping, fallbackOptions.CodeStyleOptions.Common.OperatorPlacementWhenWrapping),
operatorPlacement:=options.GetOption(CodeStyleOptions2.OperatorPlacementWhenWrapping, fallbackOptions.CodeStyleOptions.OperatorPlacementWhenWrapping),
wrappingColumn:=fallbackOptions.WrappingColumn)
End Function
End Class
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,10 @@ End Sub

ideAnalyzerOptions = ideAnalyzerOptions with
{
CodeStyleOptions = new VisualBasicIdeCodeStyleOptions(
Common: new IdeCodeStyleOptions.CommonOptions()
{
PreferNullPropagation = new CodeStyleOption2<bool>(false, NotificationOption2.Silent)
})
CodeStyleOptions = new VisualBasicIdeCodeStyleOptions()
{
PreferNullPropagation = new CodeStyleOption2<bool>(false, NotificationOption2.Silent)
}
};

var analyzerType = typeof(VisualBasicUseNullPropagationDiagnosticAnalyzer);
Expand All @@ -116,11 +115,10 @@ End Sub

ideAnalyzerOptions = ideAnalyzerOptions with
{
CodeStyleOptions = new VisualBasicIdeCodeStyleOptions(
Common: new IdeCodeStyleOptions.CommonOptions()
{
PreferNullPropagation = new CodeStyleOption2<bool>(true, NotificationOption2.Error)
})
CodeStyleOptions = new VisualBasicIdeCodeStyleOptions()
{
PreferNullPropagation = new CodeStyleOption2<bool>(true, NotificationOption2.Error)
}
};

analyzerResult = await AnalyzeAsync(workspace, workspace.CurrentSolution.ProjectIds.First(), analyzerType, ideAnalyzerOptions);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,46 +23,5 @@ public IdeCodeStyleOptions DefaultOptions
=> CSharpIdeCodeStyleOptions.Default;

public IdeCodeStyleOptions GetIdeCodeStyleOptions(IOptionsReader options, IdeCodeStyleOptions? fallbackOptions)
=> options.GetCSharpCodeStyleOptions((CSharpIdeCodeStyleOptions?)fallbackOptions);
}

internal static class CSharpIdeCodeStyleOptionsProviders
{
public static CSharpIdeCodeStyleOptions GetCSharpCodeStyleOptions(this IOptionsReader options, CSharpIdeCodeStyleOptions? fallbackOptions)
{
fallbackOptions ??= CSharpIdeCodeStyleOptions.Default;

return new()
{
Common = options.GetCommonCodeStyleOptions(LanguageNames.CSharp, fallbackOptions.Common),
ImplicitObjectCreationWhenTypeIsApparent = options.GetOption(CSharpCodeStyleOptions.ImplicitObjectCreationWhenTypeIsApparent, fallbackOptions.ImplicitObjectCreationWhenTypeIsApparent),
PreferNullCheckOverTypeCheck = options.GetOption(CSharpCodeStyleOptions.PreferNullCheckOverTypeCheck, fallbackOptions.PreferNullCheckOverTypeCheck),
AllowBlankLinesBetweenConsecutiveBraces = options.GetOption(CSharpCodeStyleOptions.AllowBlankLinesBetweenConsecutiveBraces, fallbackOptions.AllowBlankLinesBetweenConsecutiveBraces),
AllowBlankLineAfterColonInConstructorInitializer = options.GetOption(CSharpCodeStyleOptions.AllowBlankLineAfterColonInConstructorInitializer, fallbackOptions.AllowBlankLineAfterColonInConstructorInitializer),
AllowBlankLineAfterTokenInConditionalExpression = options.GetOption(CSharpCodeStyleOptions.AllowBlankLineAfterTokenInConditionalExpression, fallbackOptions.AllowBlankLineAfterTokenInConditionalExpression),
AllowBlankLineAfterTokenInArrowExpressionClause = options.GetOption(CSharpCodeStyleOptions.AllowBlankLineAfterTokenInArrowExpressionClause, fallbackOptions.AllowBlankLineAfterTokenInArrowExpressionClause),
PreferConditionalDelegateCall = options.GetOption(CSharpCodeStyleOptions.PreferConditionalDelegateCall, fallbackOptions.PreferConditionalDelegateCall),
PreferSwitchExpression = options.GetOption(CSharpCodeStyleOptions.PreferSwitchExpression, fallbackOptions.PreferSwitchExpression),
PreferPatternMatching = options.GetOption(CSharpCodeStyleOptions.PreferPatternMatching, fallbackOptions.PreferPatternMatching),
PreferPatternMatchingOverAsWithNullCheck = options.GetOption(CSharpCodeStyleOptions.PreferPatternMatchingOverAsWithNullCheck, fallbackOptions.PreferPatternMatchingOverAsWithNullCheck),
PreferPatternMatchingOverIsWithCastCheck = options.GetOption(CSharpCodeStyleOptions.PreferPatternMatchingOverIsWithCastCheck, fallbackOptions.PreferPatternMatchingOverIsWithCastCheck),
PreferNotPattern = options.GetOption(CSharpCodeStyleOptions.PreferNotPattern, fallbackOptions.PreferNotPattern),
PreferExtendedPropertyPattern = options.GetOption(CSharpCodeStyleOptions.PreferExtendedPropertyPattern, fallbackOptions.PreferExtendedPropertyPattern),
PreferInlinedVariableDeclaration = options.GetOption(CSharpCodeStyleOptions.PreferInlinedVariableDeclaration, fallbackOptions.PreferInlinedVariableDeclaration),
PreferDeconstructedVariableDeclaration = options.GetOption(CSharpCodeStyleOptions.PreferDeconstructedVariableDeclaration, fallbackOptions.PreferDeconstructedVariableDeclaration),
PreferIndexOperator = options.GetOption(CSharpCodeStyleOptions.PreferIndexOperator, fallbackOptions.PreferIndexOperator),
PreferRangeOperator = options.GetOption(CSharpCodeStyleOptions.PreferRangeOperator, fallbackOptions.PreferRangeOperator),
PreferUtf8StringLiterals = options.GetOption(CSharpCodeStyleOptions.PreferUtf8StringLiterals, fallbackOptions.PreferUtf8StringLiterals),
PreferredModifierOrder = options.GetOption(CSharpCodeStyleOptions.PreferredModifierOrder, fallbackOptions.PreferredModifierOrder),
PreferSimpleUsingStatement = options.GetOption(CSharpCodeStyleOptions.PreferSimpleUsingStatement, fallbackOptions.PreferSimpleUsingStatement),
PreferLocalOverAnonymousFunction = options.GetOption(CSharpCodeStyleOptions.PreferLocalOverAnonymousFunction, fallbackOptions.PreferLocalOverAnonymousFunction),
PreferTupleSwap = options.GetOption(CSharpCodeStyleOptions.PreferTupleSwap, fallbackOptions.PreferTupleSwap),
UnusedValueExpressionStatement = options.GetOption(CSharpCodeStyleOptions.UnusedValueExpressionStatement, fallbackOptions.UnusedValueExpressionStatement),
UnusedValueAssignment = options.GetOption(CSharpCodeStyleOptions.UnusedValueAssignment, fallbackOptions.UnusedValueAssignment),
PreferMethodGroupConversion = options.GetOption(CSharpCodeStyleOptions.PreferMethodGroupConversion, fallbackOptions.PreferMethodGroupConversion),
PreferExpressionBodiedLambdas = options.GetOption(CSharpCodeStyleOptions.PreferExpressionBodiedLambdas, fallbackOptions.PreferExpressionBodiedLambdas),
PreferReadOnlyStruct = options.GetOption(CSharpCodeStyleOptions.PreferReadOnlyStruct, fallbackOptions.PreferReadOnlyStruct),
PreferStaticLocalFunction = options.GetOption(CSharpCodeStyleOptions.PreferStaticLocalFunction, fallbackOptions.PreferStaticLocalFunction)
};
}
=> new CSharpIdeCodeStyleOptions(options, (CSharpIdeCodeStyleOptions?)fallbackOptions ?? CSharpIdeCodeStyleOptions.Default);
}
12 changes: 5 additions & 7 deletions src/Workspaces/CoreTest/Remote/ServiceDescriptorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -239,13 +239,11 @@ public void OptionsAreMessagePackSerializable(string language)
ExtractMethodGenerationOptions.GetDefault(languageServices),

// some non-default values:
new VisualBasicIdeCodeStyleOptions(
new IdeCodeStyleOptions.CommonOptions()
{
AllowStatementImmediatelyAfterBlock = new CodeStyleOption2<bool>(false, NotificationOption2.Error)
},
PreferredModifierOrder: new CodeStyleOption2<string>("Public Private", NotificationOption2.Error))

new VisualBasicIdeCodeStyleOptions()
{
AllowStatementImmediatelyAfterBlock = new CodeStyleOption2<bool>(false, NotificationOption2.Error),
PreferredModifierOrder = new CodeStyleOption2<string>("Public Private", NotificationOption2.Error)
}
};

foreach (var original in options)
Expand Down
Loading

0 comments on commit 0b348a2

Please sign in to comment.