首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修改Kotlin的PSI?

如何修改Kotlin的PSI?
EN

Stack Overflow用户
提问于 2022-11-22 08:10:27
回答 1查看 19关注 0票数 0

我试图为IntelliJ的想法创建一个插件,它的功能类似于lombok。

这就是我想要做的,用一个现有的接口:

代码语言:javascript
复制
interface TestInterface {
    var testProperty: Int
}

我想修改PSI,以便IntelliJ的想法能够将它识别为:

代码语言:javascript
复制
interface TestInterface {
    var testProperty: Int

    companion object: TestInterface {
        override var testProperty: Int
            get() {
                TODO("Do something")
            }
            set(value) {
                TODO("Do something")
            }
    }
}

使用kapt,我可以实现我想要的功能,下面是我的代码:Github,但是它不起作用。

你能帮我解决这个问题吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74529334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档