我正在编写自定义 CodeRefactoringProvider 。我的重构产生了一些新的变量。我希望用户重命名这些生成的变量。如何添加重命名注释,例如"提取方法"重构?
命名空间 Microsoft.CodeAnalysis.Rename 仅公开静态类 Renamer ,但它重命名符号而不进行任何突出显示和用户交互,因此它不是一个选项。
答案 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()));