private void AnalyzeAnonymousMethod(SyntaxNodeAnalysisContext context) { var anonymousMethod = (AnonymousMethodExpressionSyntax)context.Node; if (ReplaceAnonymousMethodWithLambdaExpressionRefactoring.CanRefactor(anonymousMethod)) { context.ReportDiagnostic( DiagnosticDescriptors.ReplaceAnonymousMethodWithLambdaExpression, anonymousMethod.GetLocation()); FadeOut(context, anonymousMethod); } }
private void AnalyzeAnonymousMethod(SyntaxNodeAnalysisContext context) { if (GeneratedCodeAnalyzer?.IsGeneratedCode(context) == true) { return; } var anonymousMethod = (AnonymousMethodExpressionSyntax)context.Node; if (ReplaceAnonymousMethodWithLambdaExpressionRefactoring.CanRefactor(anonymousMethod)) { context.ReportDiagnostic( DiagnosticDescriptors.ReplaceAnonymousMethodWithLambdaExpression, context.Node.GetLocation()); FadeOut(context, anonymousMethod); } }
public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context) { SyntaxNode root = await context.Document.GetSyntaxRootAsync(context.CancellationToken).ConfigureAwait(false); AnonymousMethodExpressionSyntax anonymousMethod = root .FindNode(context.Span, getInnermostNodeForTie: true)? .FirstAncestorOrSelf <AnonymousMethodExpressionSyntax>(); if (anonymousMethod == null) { return; } CodeAction codeAction = CodeAction.Create( "Replace anonymous method with lambda expression", cancellationToken => ReplaceAnonymousMethodWithLambdaExpressionRefactoring.RefactorAsync(context.Document, anonymousMethod, cancellationToken), DiagnosticIdentifiers.ReplaceAnonymousMethodWithLambdaExpression + EquivalenceKeySuffix); context.RegisterCodeFix(codeAction, context.Diagnostics); }