public static async Task ComputeRefactoringsAsync(RefactoringContext context, AttributeArgumentListSyntax argumentList) { if (!argumentList.Arguments.Any()) { return; } await AttributeArgumentParameterNameRefactoring.ComputeRefactoringsAsync(context, argumentList).ConfigureAwait(false); if (context.IsRefactoringEnabled(RefactoringDescriptors.CopyArgument)) { CopyAttributeArgumentRefactoring.ComputeRefactoring(context, argumentList); } if (context.IsRefactoringEnabled(RefactoringDescriptors.WrapArguments) && context.Span.IsEmptyAndContainedInSpanOrBetweenSpans(argumentList)) { if (argumentList.IsSingleLine()) { if (argumentList.Arguments.Count > 1) { context.RegisterRefactoring( "Wrap arguments", ct => SyntaxFormatter.WrapArgumentsAsync(context.Document, argumentList, ct), RefactoringDescriptors.WrapArguments); } } else if (argumentList.DescendantTrivia(argumentList.Span).All(f => f.IsWhitespaceOrEndOfLineTrivia())) { context.RegisterRefactoring( "Unwrap arguments", ct => SyntaxFormatter.UnwrapExpressionAsync(context.Document, argumentList, ct), RefactoringDescriptors.WrapArguments); } } }
public static async Task ComputeRefactoringsAsync(RefactoringContext context, AttributeArgumentListSyntax argumentList) { if (!argumentList.Arguments.Any()) { return; } await AttributeArgumentParameterNameRefactoring.ComputeRefactoringsAsync(context, argumentList).ConfigureAwait(false); if (context.IsRefactoringEnabled(RefactoringIdentifiers.DuplicateArgument)) { DuplicateAttributeArgumentRefactoring.ComputeRefactoring(context, argumentList); } if (context.IsRefactoringEnabled(RefactoringIdentifiers.FormatArgumentList) && context.Span.IsEmptyAndContainedInSpanOrBetweenSpans(argumentList)) { if (argumentList.IsSingleLine()) { if (argumentList.Arguments.Count > 1) { context.RegisterRefactoring( "Format arguments on separate lines", ct => SyntaxFormatter.ToMultiLineAsync(context.Document, argumentList, ct), RefactoringIdentifiers.FormatArgumentList); } } else if (argumentList.DescendantTrivia(argumentList.Span).All(f => f.IsWhitespaceOrEndOfLineTrivia())) { context.RegisterRefactoring( "Format arguments on a single line", ct => SyntaxFormatter.ToSingleLineAsync(context.Document, argumentList, ct), RefactoringIdentifiers.FormatArgumentList); } } }