PSI 更改侦听器
PSI change listener
我需要一个可以在 PsiElement 无效时发出通知的侦听器。 PsiTreeChangeListener 似乎不适合这个。有没有其他听众可以告诉这个。或者我必须创建一个监听器?如何创建这个监听器?
您可以使用 SmartPsiElementPointer class 创建和维护 psi 元素列表。
SmartPsiElementPointer 是一个指向 PsiElement 的指针,即使它指向的 psi 元素被删除也不会变得无效。在那种情况下,它的 getElement() 方法将简单地 return null。您可以检测并处理它。
要将元素包装到 SmartPsiElementPointer 中,您可以使用以下代码:
SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);
我需要一个可以在 PsiElement 无效时发出通知的侦听器。 PsiTreeChangeListener 似乎不适合这个。有没有其他听众可以告诉这个。或者我必须创建一个监听器?如何创建这个监听器?
您可以使用 SmartPsiElementPointer class 创建和维护 psi 元素列表。
SmartPsiElementPointer 是一个指向 PsiElement 的指针,即使它指向的 psi 元素被删除也不会变得无效。在那种情况下,它的 getElement() 方法将简单地 return null。您可以检测并处理它。
要将元素包装到 SmartPsiElementPointer 中,您可以使用以下代码:
SmartPointerManager.getInstance(element.getProject()).createSmartPsiElementPointer(element);