2014-09-25 84 views
0

我在写自定义CodeRefactoringProvider。我的重构产生了一些新的变量。我想让用户重命名这些生成的变量。我如何添加像“抽取方法”重构中使用的重命名注释?如何添加重命名注释?

命名空间Microsoft.CodeAnalysis.Rename公开只有静态类更名,但它重命名符号,没有任何加亮和用户交互,所以它不是一个选项。

+0

SyntaxToken newVarToken = SyntaxFactory.VerbatimIdentifier( default(SyntaxTriviaList), "newVar1", "newVar2", default(SyntaxTriviaList)) .WithAdditionalAnnotations(RenameAnnotation.Create()); 

或VariableDeclarator ,您应该将其添加为您的问题的答案,而不是仅编辑原始问题。 – JoshVarty 2014-09-29 03:44:31

+1

固定。谢谢@JoshVarty!这实际上是我在StackOverflow上的第一个答案:) – 2014-09-30 20:09:11

回答

2

我找到了解决方案。必须的注解是Microsoft.CodeAnalysis.CodeActions.RenameAnnotation

这是如何创建新的变量令牌:如果你已经找到了解决办法

var declarator = SyntaxFactory.VariableDeclarator("newVar1"); 
declarator = declarator.ReplaceToken(
    declarator.Identifier, 
    declarator.Identifier.WithAdditionalAnnotations(RenameAnnotation.Create()));