public static async Task <Solution> ApplyCodeFixAsync(Document document, TextSpan diagnosticSpan, CancellationToken ct) { var root = await document.GetSyntaxRootAsync(ct).ConfigureAwait(false); var declaration = root.FindToken(diagnosticSpan.Start) .Parent .AncestorsAndSelf() .OfType <TypeDeclarationSyntax>() .First(); if (!(declaration is InterfaceDeclarationSyntax ids)) { return(document.Project.Solution); } var syntax = await PhaseGroupSyntax.FromDeclarationAsync(ids, document, ct); var semantics = AnalyzerRoot.FromPhaseGroup(syntax); var template = new PhaseTemplate(semantics); return(ApplyGeneratedCode(document, template)); }
public PhaseTemplate(AnalyzerRoot root) { Root = root; }