Пример #1
0
        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));
        }
Пример #2
0
 public PhaseTemplate(AnalyzerRoot root)
 {
     Root = root;
 }