如何添加重命名注释?

时间:2014-09-25 08:59:26

标签: visual-studio annotations refactoring rename roslyn

我正在编写自定义 CodeRefactoringProvider 。我的重构产生了一些新的变量。我希望用户重命名这些生成的变量。如何添加重命名注释,例如"提取方法"重构?

命名空间 Microsoft.CodeAnalysis.Rename 仅公开静态类 Renamer ,但它重命名符号而不进行任何突出显示和用户交互,因此它不是一个选项。

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。所需的注释是 Microsoft.CodeAnalysis.CodeActions.RenameAnnotation

这是创建新变量标记的方法:

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

或使用VariableDeclarator:

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