IntelliJ Platform SDK DevGuide

Edit page

Safe Delete Refactoring

“安全删除”重构也建立在与“重命名”相同的“查找用法”框架上.

除此之外,为了支持“安全删除”,插件需要实现两件事:

*     RefactoringSupportProvider     在com.intellij.lang.refactoringSupport扩展点中注册的接口,以及isSafeDeleteAvailable()方法,该方法检查特定PSI元素的“安全删除”重构是否可用

*     PsiElement.delete()<! - #L371–>     的方法     PsiElement     可以使用“安全删除”的子类.     删除PSI元素是通过从AST树中删除底层AST节点来实现的(这反过来又会导致从文档中删除与AST节点相对应的文本范围).

例:

删除()<! - #L363–>

实施一个

属性语言插件

如果需要,可以进一步自定义如何为特定类型的元素执行安全删除(如何搜索引用等).

这是通过实现SafeDeleteProcessorDelegate接口完成的.

:

SafeDeleteProcessorDelegate

实施

属性语言插件

Last modified: 9 May 2019