我试图为IntelliJ的想法创建一个插件,它的功能类似于lombok。
这就是我想要做的,用一个现有的接口:
interface TestInterface {
var testProperty: Int
}我想修改PSI,以便IntelliJ的想法能够将它识别为:
interface TestInterface {
var testProperty: Int
companion object: TestInterface {
override var testProperty: Int
get() {
TODO("Do something")
}
set(value) {
TODO("Do something")
}
}
}使用kapt,我可以实现我想要的功能,下面是我的代码:Github,但是它不起作用。
你能帮我解决这个问题吗?谢谢!
发布于 2022-12-02 01:28:43
在与IDEA团队沟通之后,我得到了以下信息:
嗨!不幸的是,在动态生成Kotlin PSI供Kotlin决心使用是不可能的。IDE中的Java解析使用PSI来解决问题,这就是为什么它适用于Java。IDE中的Kotlin解析使用Kotlin编译器,因此动态创建PSI和使用PsiAugmentProvider将无法工作。
总之,如果您想要实现类似于Lombok插件的功能,则不能使用编辑PSI的方法。在此基础上,我找到了一种可行的方法,即KSP:https://kotlinlang.org/docs/ksp-overview.html。
https://stackoverflow.com/questions/74529334
复制相似问题