PSI 更改侦听器

PSI change listener

我需要一个可以在 PsiElement 无效时发出通知的侦听器。 PsiTreeChangeListener 似乎不适合这个。有没有其他听众可以告诉这个。或者我必须创建一个监听器?如何创建这个监听器?

您可以使用 SmartPsiElementPointer class 创建和维护 psi 元素列表。

SmartPsiElementPointer 是一个指向 PsiElement 的指针,即使它指向的 psi 元素被删除也不会变得无效。在那种情况下,它的 getElement() 方法将简单地 return null。您可以检测并处理它。

要将元素包装到 SmartPsiElementPointer 中,您可以使用以下代码:

SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);