记录一下在Intellij的自定义语言插件中,执行Psi元素重命名的关键节点

Psi元素的重命名其实就是一个用新的DTOPropName实例的AST节点换掉旧的DTOPropName实例的AST节点

这是一个获取新的DTOPropName实例的方法:

fun Project.propName(name: String): DTOPropName {
    val dtoFile = PsiFileFactory.getInstance(this).createFileFromText(DTOLanguage.INSTANCE, "Dummy { $name }") as DTOFile
    val dummy = PsiTreeUtil.getChildOfType(dtoFile, DTODto::class.java)!!
    return dummy.dtoBody!!.explicitPropList[0].positiveProp!!.propName
}