예제 #1
0
 internal static Task <Document> ReplaceMembersAsync(
     this Document document,
     MemberDeclarationListInfo info,
     SyntaxList <MemberDeclarationSyntax> newMembers,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     return(document.ReplaceNodeAsync(
                info.Parent,
                info.WithMembers(newMembers).Parent,
                cancellationToken));
 }
        private static Task <Document> RefactorAsync(
            Document document,
            MemberDeclarationSyntax declaration,
            List <MemberDeclarationSyntax> assignableMembers,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            MemberDeclarationListInfo info = SyntaxInfo.MemberDeclarationListInfo(GetContainingDeclaration(declaration));

            SyntaxList <MemberDeclarationSyntax> newMembers = MemberDeclarationInserter.Default.Insert(info.Members, CreateConstructor(GetConstructorIdentifierText(info.Parent), assignableMembers));

            SyntaxNode newNode = info.WithMembers(newMembers).Parent.WithFormatterAnnotation();

            return(document.ReplaceNodeAsync(info.Parent, newNode, cancellationToken));
        }
예제 #3
0
        public static Task <Document> RefactorAsync(
            Document document,
            MemberDeclarationSyntax member,
            CancellationToken cancellationToken = default)
        {
            MemberDeclarationListInfo info = SyntaxInfo.MemberDeclarationListInfo(member);

            SyntaxNode newNode = info
                                 .WithMembers(default(SyntaxList <MemberDeclarationSyntax>))
                                 .Parent
                                 .WithFormatterAnnotation();

            return(document.ReplaceNodeAsync(info.Parent, newNode, cancellationToken));
        }
예제 #4
0
        /// <summary>
        /// Creates a new document with the specified members replaced with new members.
        /// </summary>
        /// <param name="document"></param>
        /// <param name="info"></param>
        /// <param name="newMembers"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public static Task <Document> ReplaceMembersAsync(
            this Document document,
            MemberDeclarationListInfo info,
            SyntaxList <MemberDeclarationSyntax> newMembers,
            CancellationToken cancellationToken = default)
        {
            if (document == null)
            {
                throw new ArgumentNullException(nameof(document));
            }

            return(document.ReplaceNodeAsync(
                       info.Parent,
                       info.WithMembers(newMembers).Parent,
                       cancellationToken));
        }