public static void ComputeRefactorings(RefactoringContext context, LambdaExpressionSyntax lambda)
        {
            if (context.IsRefactoringEnabled(RefactoringIdentifiers.ExpandLambdaExpressionBody) &&
                ExpandLambdaExpressionBodyRefactoring.CanRefactor(context, lambda))
            {
                context.RegisterRefactoring(
                    "Expand lambda expression body",
                    cancellationToken =>
                {
                    return(ExpandLambdaExpressionBodyRefactoring.RefactorAsync(
                               context.Document,
                               lambda,
                               (ExpressionSyntax)lambda.Body,
                               cancellationToken));
                });
            }

            if (context.IsRefactoringEnabled(RefactoringIdentifiers.SimplifyLambdaExpression) &&
                SimplifyLambdaExpressionRefactoring.CanRefactor(lambda))
            {
                context.RegisterRefactoring(
                    "Simplify lambda expression",
                    cancellationToken =>
                {
                    return(SimplifyLambdaExpressionRefactoring.RefactorAsync(
                               context.Document,
                               lambda,
                               cancellationToken));
                });
            }
        }
Esempio n. 2
0
        public static async Task ComputeRefactoringsAsync(RefactoringContext context, LambdaExpressionSyntax lambda)
        {
            if (context.IsRefactoringEnabled(RefactoringIdentifiers.ExpandLambdaExpressionBody) &&
                ExpandLambdaExpressionBodyRefactoring.CanRefactor(context, lambda))
            {
                context.RegisterRefactoring(
                    "Expand lambda expression body",
                    cancellationToken =>
                {
                    return(ExpandLambdaExpressionBodyRefactoring.RefactorAsync(
                               context.Document,
                               lambda,
                               (ExpressionSyntax)lambda.Body,
                               cancellationToken));
                },
                    RefactoringIdentifiers.ExpandLambdaExpressionBody);
            }

            if (context.IsRefactoringEnabled(RefactoringIdentifiers.SimplifyLambdaExpression) &&
                SimplifyLambdaExpressionAnalysis.IsFixable(lambda))
            {
                context.RegisterRefactoring(
                    "Simplify lambda expression",
                    cancellationToken =>
                {
                    return(SimplifyLambdaExpressionRefactoring.RefactorAsync(
                               context.Document,
                               lambda,
                               cancellationToken));
                },
                    RefactoringIdentifiers.SimplifyLambdaExpression);
            }

            if (context.IsRefactoringEnabled(RefactoringIdentifiers.ExtractEventHandlerMethod) &&
                context.Span.IsBetweenSpans(lambda) &&
                lambda is ParenthesizedLambdaExpressionSyntax parenthesizedLambda)
            {
                await ExtractEventHandlerMethodRefactoring.ComputeRefactoringAsync(context, parenthesizedLambda).ConfigureAwait(false);
            }
        }