我正在为Pycharm开发一个插件,Intellij IDEA。需要在两个 IDE 版本(2022.3.1 及更高版本)中访问 Java 和 Python 语言的 PSI 功能(PSIMethod(java class) & PyFunction) 无法编写一个可以在 PyCharm 和 IDEA 上运行的通用插件。
后来我们希望扩展我们的插件以支持其他语言,例如 c/c++。
如何实现这个功能?
在plugin.xml中添加了可选依赖项,这使我们可以在IDEA和PyCharm中安装插件,而不管java或python插件是否可用。
<depends config-file="jetbrains-java.xml" optional="true">com.intellij.java</depends>
<depends config-file="jetbrains-python.xml" optional="true">com.intellij.modules.python</depends>
在build.gradle.kts中,我有
intellij {
version.set("2022.3.1")
type.set("IC")
plugins.set("com.intellij.java, PythonCore:223.8214.16")
}
但是,对 PythonCore 版本进行硬编码将我们的插件功能限制为仅支持中列出的产品 https://plugins.jetbrains.com/plugin/7322-python-community-edition/versions/stable/263951 但我们也希望支持这些产品的更高版本,例如 Android Studio Hedgehog。
我认为您正在做的事情是添加对其他语言的支持的预期方式。
setPlugins
设置为 runIde
任务安装的插件,它不指定需要存在的插件的版本。
所以,如果您
setPlugins
使用2022.3版本的Python插件,它将与2023版本的Python插件一起使用,只是它将使用旧版本进行编译。
请参阅:https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html