private static void AnalyzeRegionDirective(SyntaxNodeAnalysisContext context) { var regionDirective = (RegionDirectiveTriviaSyntax)context.Node; RegionInfo region = SyntaxInfo.RegionInfo(regionDirective); if (!region.Success) { return; } if (!region.IsEmpty) { return; } DiagnosticHelpers.ReportDiagnostic( context, DiagnosticDescriptors.RemoveEmptyRegion, regionDirective.GetLocation(), additionalLocations: ImmutableArray.Create(region.EndDirective.GetLocation())); DiagnosticHelpers.ReportDiagnostic(context, DiagnosticDescriptors.RemoveEmptyRegionFadeOut, regionDirective.GetLocation()); DiagnosticHelpers.ReportDiagnostic(context, DiagnosticDescriptors.RemoveEmptyRegionFadeOut, region.EndDirective.GetLocation()); }
public static void ComputeRefactorings(RefactoringContext context, EndRegionDirectiveTriviaSyntax endRegionDirective) { if (context.IsRefactoringEnabled(RefactoringIdentifiers.RemoveRegion) && context.IsRootCompilationUnit) { RegionInfo region = SyntaxInfo.RegionInfo(endRegionDirective); if (region.Success) { context.RegisterRefactoring( "Remove region", cancellationToken => context.Document.RemoveRegionAsync(region, cancellationToken)); } } }
public static void ComputeRefactorings(RefactoringContext context, RegionDirectiveTriviaSyntax regionDirective) { if (context.IsRefactoringEnabled(RefactoringDescriptors.RemoveRegion) && context.IsRootCompilationUnit) { RegionInfo region = SyntaxInfo.RegionInfo(regionDirective); if (region.Success) { context.RegisterRefactoring( "Remove region", ct => context.Document.RemoveRegionAsync(region, ct), RefactoringDescriptors.RemoveRegion); } } }
public override async Task RegisterCodeFixesAsync(CodeFixContext context) { SyntaxNode root = await context.GetSyntaxRootAsync().ConfigureAwait(false); if (!TryFindFirstAncestorOrSelf(root, context.Span, out RegionDirectiveTriviaSyntax regionDirective, findInsideTrivia: true)) { return; } CodeAction codeAction = CodeAction.Create( "Remove empty region", ct => RemoveEmptyRegionRefactoring.RefactorAsync(context.Document, SyntaxInfo.RegionInfo(regionDirective), ct), GetEquivalenceKey(DiagnosticIdentifiers.RemoveEmptyRegion)); context.RegisterCodeFix(codeAction, context.Diagnostics); }