繁体   English   中英

如何修改 Kotlin 的 PSI?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM