[英]How can I modify PSI of Kotlin?
我正在尝试为 IntelliJ IDEA 创建一个功能类似于 lombok 的插件。
这是我正在尝试使用现有界面执行的操作:
interface TestInterface {
var testProperty: Int
}
我想修改 PSI 以便 IntelliJ IDEA 可以将其识别为:
interface TestInterface {
var testProperty: Int
companion object: TestInterface {
override var testProperty: Int
get() {
TODO("Do something")
}
set(value) {
TODO("Do something")
}
}
}
使用kapt,我可以实现我想要的功能,这是我的代码: Github ,但它不起作用。
你能帮我解决这个问题吗? 谢谢!
与IDEA团队沟通后,得到如下信息:
嗨,不幸的是。 即时生成 Kotlin PSI 供 Kotlin 解析使用是不可能的,IDE 中的 Java 解析使用 PSI 来解析事物。 这就是为什么它适用于 Java,IDE 中的 Kotlin 分辨率使用 Kotlin 编译器。 因此即时创建 PSI 和使用 PsiAugmentProvider 将不起作用。
综上所述,如果想实现一个类似Lombok插件的function,不能使用编辑PSI的方法。 然后根据以上信息找到了一个可行的方法,就是KSP: https://kotlinlang.org/docs/ksp-overview.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.