Beispiel #1
0
 private static SyntaxNode GetParentNode(StatementSyntax statement)
 {
     return(statement
            .AncestorsAndSelf()
            .OfType <StatementSyntax>()
            .LastOrDefault());
 }
Beispiel #2
0
        public static async Task <Solution> Replace(CodeRefactoringContext context, LocalDeclarationStatementSyntax localDeclarationStatement, StatementSyntax oldStatement)
        {
            var root = await context.Document.GetSyntaxRootAsync(context.CancellationToken).ConfigureAwait(false);

            var localStatementWithTrivia = localDeclarationStatement
                                           .WithLeadingTrivia(oldStatement.GetLeadingTrivia())
                                           .WithTrailingTrivia(oldStatement.GetTrailingTrivia());
            var block       = oldStatement.AncestorsAndSelf().OfType <BlockSyntax>().First();
            var newRoot     = root.ReplaceNode(block, block.ReplaceNode(oldStatement, localStatementWithTrivia));
            var newDocument = context.Document.WithSyntaxRoot(newRoot);

            return(await LocalVariableRenamer.RenameVariable(newDocument, context));
        }