public static async Task <Document> RefactorAsync( Document document, MemberDeclarationSyntax memberDeclaration, bool copyCommentFromBaseIfAvailable, CancellationToken cancellationToken = default(CancellationToken)) { MemberDeclarationSyntax newNode = null; if (copyCommentFromBaseIfAvailable && DocumentationCommentGenerator.CanGenerateFromBase(memberDeclaration.Kind())) { SemanticModel semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false); DocumentationCommentData data = DocumentationCommentGenerator.GenerateFromBase(memberDeclaration, semanticModel, cancellationToken); if (data.Success) { SyntaxTrivia comment = DocumentationCommentTriviaFactory.Parse(data.RawXml, semanticModel, memberDeclaration.SpanStart); newNode = memberDeclaration.WithDocumentationComment(comment, indent: true); } } newNode = newNode ?? memberDeclaration.WithNewSingleLineDocumentationComment(); return(await document.ReplaceNodeAsync(memberDeclaration, newNode, cancellationToken).ConfigureAwait(false)); }
public static async Task <Document> RefactorAsync( Document document, MemberDeclarationSyntax memberDeclaration, bool copyCommentFromBaseIfAvailable, CancellationToken cancellationToken = default) { MemberDeclarationSyntax newNode = null; if (copyCommentFromBaseIfAvailable && DocumentationCommentGenerator.CanGenerateFromBase(memberDeclaration.Kind())) { SemanticModel semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false); DocumentationCommentData data = DocumentationCommentGenerator.GenerateFromBase(memberDeclaration, semanticModel, cancellationToken); if (data.Success) { SyntaxTrivia comment = DocumentationCommentTriviaFactory.Parse(data.RawXml, semanticModel, memberDeclaration.SpanStart); newNode = memberDeclaration.WithDocumentationComment(comment, indent: true); } } DocumentationCommentGeneratorSettings settings = DocumentationCommentGeneratorSettings.Default; if (document.TryGetAnalyzerOptionValue( memberDeclaration, CodeFixOptions.CS1591_MissingXmlCommentForPubliclyVisibleTypeOrMember_IgnoredTags, out string value)) { ImmutableArray <string> ignoredTags = value .Split(_tagSeparator, StringSplitOptions.RemoveEmptyEntries) .Select(f => f.Trim()) .Where(f => f.Length > 0) .ToImmutableArray(); settings = new DocumentationCommentGeneratorSettings(ignoredTags: ignoredTags); } newNode ??= memberDeclaration.WithNewSingleLineDocumentationComment(settings); return(await document.ReplaceNodeAsync(memberDeclaration, newNode, cancellationToken).ConfigureAwait(false)); }