public static async Task <Document> RefactorAsync(
            Document document,
            MemberDeclarationSyntax memberDeclaration,
            bool copyCommentFromBaseIfAvailable,
            CancellationToken cancellationToken)
        {
            MemberDeclarationSyntax newNode = null;

            if (copyCommentFromBaseIfAvailable &&
                DocumentationCommentGenerator.CanGenerateFromBase(memberDeclaration.Kind()))
            {
                SemanticModel semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false);

                BaseDocumentationCommentInfo info = DocumentationCommentGenerator.GenerateFromBase(memberDeclaration, semanticModel, cancellationToken);

                if (info.Success)
                {
                    newNode = Inserter.InsertDocumentationComment(memberDeclaration, info.Trivia, indent: true);
                }
            }

            newNode = newNode ?? DocumentationCommentGenerator.AddNewDocumentationComment(memberDeclaration);

            return(await document.ReplaceNodeAsync(memberDeclaration, newNode, cancellationToken).ConfigureAwait(false));
        }
        public static Task <Document> RefactorAsync(
            Document document,
            MemberDeclarationSyntax memberDeclaration,
            SyntaxTrivia commentTrivia,
            CancellationToken cancellationToken)
        {
            MemberDeclarationSyntax newMemberDeclaration = Inserter.InsertDocumentationComment(memberDeclaration, commentTrivia, indent: true);

            return(document.ReplaceNodeAsync(memberDeclaration, newMemberDeclaration, cancellationToken));
        }
예제 #3
0
        public static MemberDeclarationSyntax AddNewDocumentationComment(
            MemberDeclarationSyntax memberDeclaration,
            DocumentationCommentGeneratorSettings settings,
            SemanticModel semanticModel,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (memberDeclaration == null)
            {
                throw new ArgumentNullException(nameof(memberDeclaration));
            }

            if (CanGenerateFromBase(memberDeclaration.Kind()))
            {
                BaseDocumentationCommentInfo info = GenerateFromBase(memberDeclaration, semanticModel, cancellationToken);

                if (info.Success)
                {
                    return(Inserter.InsertDocumentationComment(memberDeclaration, info.Trivia, indent: true));
                }
            }

            return(AddNewDocumentationComment(memberDeclaration, settings));
        }