public override async Task ComputeRefactoringsAsync(CodeRefactoringContext context)
        {
            SyntaxNode root = await context.Document.GetSyntaxRootAsync(context.CancellationToken);

            ArgumentListSyntax argumentList = root
                .FindNode(context.Span, getInnermostNodeForTie: true)?
                .FirstAncestorOrSelf<ArgumentListSyntax>();

            if (argumentList == null)
                return;

            if (argumentList.Arguments.Count == 0)
                return;

            if (!context.Span.IsEmpty)
                ArgumentRefactoring.AddOrRemoveArgumentName(context, argumentList);

            if (argumentList.IsSingleline())
            {
                if (argumentList.Arguments.Count > 1)
                {
                    context.RegisterRefactoring(
                        "Format each argument on separate line",
                        cancellationToken => FormatEachArgumentOnNewLineAsync(context.Document, argumentList, cancellationToken));
                }
            }
            else
            {
                context.RegisterRefactoring(
                    "Format all arguments on a single line",
                    cancellationToken => FormatAllArgumentsOnSingleLineAsync(context.Document, argumentList, cancellationToken));
            }

            SwapArgumentsRefactoring.Refactor(context, argumentList);
        }