因为节点是不可变的,每次创建新实例时我的引用都会变得陈旧。处理此问题的最佳方法是什么?我重构了将类定义提升一级。首先我将它添加到祖父节点,但是我对类定义节点的引用是陈旧的,我不能使用它。
var nodeExpression
var nodeMethod
var nodeClassDef
当我修改nodeExpression
时,会产生一个全新的世界;如何快速获取nodeMethod
和nodeClassDef
的新世界中的匹配节点?
答案 0 :(得分:1)
查看在更改后要查找的节点上创建SyntaxAnnotation
s。一种方便的方法是通过TrackNodes()
上的SyntaxNode
扩展方法。
您可以提供节点列表,然后在使用GetCurrentNodes()
重写后找到它们。