如何删除 roslyn 语法树中的标记。例如从 属性 中删除虚拟关键字标记?
How do I remove token in syntax tree in roslyn. e.g. remove virtual keyword token from property?
如何删除 roslyn 语法树中的标记。例如从 属性 中删除虚拟关键字标记?
Roslyn 有 RemoveNode
方法,但我找不到 RemoveToken
方法或删除令牌的方法。
找到答案了。要删除,请将令牌替换为种类 none 的新令牌。笨拙但有效。
var noneToken = SyntaxFactory.Token(SyntaxKind.None);
node = node.ReplaceToken(token_to_remove, noneToken);
当 运行 上述代码时,我得到一个 ArgumentException
。这似乎可行(尽管可能有点乱):
var node = node.ReplaceToken(dotToken_to_remove, SyntaxFactory.MissingToken(SyntaxKind.DotToken));
如何删除 roslyn 语法树中的标记。例如从 属性 中删除虚拟关键字标记?
Roslyn 有 RemoveNode
方法,但我找不到 RemoveToken
方法或删除令牌的方法。
找到答案了。要删除,请将令牌替换为种类 none 的新令牌。笨拙但有效。
var noneToken = SyntaxFactory.Token(SyntaxKind.None);
node = node.ReplaceToken(token_to_remove, noneToken);
当 运行 上述代码时,我得到一个 ArgumentException
。这似乎可行(尽管可能有点乱):
var node = node.ReplaceToken(dotToken_to_remove, SyntaxFactory.MissingToken(SyntaxKind.DotToken));