public static async Task <Document> RefactorAsync( Document document, UsingStatementSyntax usingStatement, ExpressionSyntax expression, CancellationToken cancellationToken) { SemanticModel semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false); string name = NameGenerator.Default.EnsureUniqueLocalName(DefaultNames.Variable, semanticModel, expression.SpanStart); VariableDeclarationSyntax declaration = VariableDeclaration( VarType(), Identifier(name).WithRenameAnnotation(), EqualsValueClause(expression.WithoutTrivia())); declaration = declaration .WithTriviaFrom(expression) .WithFormatterAnnotation(); UsingStatementSyntax newNode = usingStatement .WithExpression(null) .WithDeclaration(declaration); return(await document.ReplaceNodeAsync(usingStatement, newNode, cancellationToken).ConfigureAwait(false)); }