private SyntaxNode AddDescription(SyntaxNode rootNode, MemberDeclarationSyntax memberDeclaration, string description, CancellationToken cancellation) { cancellation.ThrowIfCancellationRequested(); var summaryTag = memberDeclaration .GetLeadingTrivia() .Select(t => t.GetStructure()) .OfType <DocumentationCommentTriviaSyntax>() .SelectMany(d => d.ChildNodes()) .OfType <XmlElementSyntax>() .First(n => XmlCommentSummaryTag.Equals(n.StartTag?.Name?.ToString(), StringComparison.Ordinal)); var xmlDescription = new[] { XmlText( XmlTextNewLine(Environment.NewLine, true) ), XmlText( XmlTextNewLine(description + Environment.NewLine, true) ) }; var newContent = new SyntaxList <XmlNodeSyntax>(xmlDescription); var newSummaryTag = summaryTag .WithContent(newContent) .WithAdditionalAnnotations(Formatter.Annotation); return(rootNode.ReplaceNode(summaryTag, newSummaryTag)); }
private XmlElementSyntax GetSummaryTag(DocumentationCommentTriviaSyntax xmlComment) => xmlComment .ChildNodes() .OfType <XmlElementSyntax>() .FirstOrDefault(n => XmlCommentSummaryTag.Equals(n.StartTag?.Name?.ToString(), StringComparison.Ordinal));