Jetbrains插件之升级到2.0

之前做的小组内使用的jetbrains插件是1.0的,在高版本的goland上经常出现

1
com.intellij.diagnostic.PluginException: `ActionUpdateThread.OLD_EDT` is deprecated and going to removed soon.

这主要是重写了AnAction的update方法出现的。新的jetbrains IDE平台上需要指定一下ActionUpdateThread是BGT或者EDT,OLD_EDT是将要移除的。

可以看一下下面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.intellij.openapi.actionSystem;

public enum ActionUpdateThread {
BGT,
EDT,
/** @deprecated */
@Deprecated(
forRemoval = true
)
OLD_EDT;

private ActionUpdateThread() {
}
}

插件是好几年前写的了,那时候还是1.0,现在干脆一步到位升级到2.0。
当初的插件是java写的,也不想升级到kotlin,还是用gradle构建。
修改plugins
从这样

1
2
3
4
plugins {
id 'java'
id 'org.jetbrains.intellij' version '1.0'
}

改成这样

1
2
3
4
plugins {
id("org.jetbrains.intellij.platform") version "2.1.0"
id("org.jetbrains.intellij.platform.migration") version "2.1.0
}

dependencies

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dependencies {
// intellijDependencies()
// instrumentationTools(
//
// )

//一堆implementation

intellijPlatform {
local "本地IDE的路径"
zipSigner()
instrumentationTools()
bundledPlugin("org.jetbrains.plugins.go") // 需要go语言相关的psi

}
}

plugin.xml

1
2
3
4
5
<idea-plugin>
...
<depends>org.jetbrains.plugins.go</depends>
...
</idea-plugin>

然后重写一些报错的AnAction

1
2
3
4
@Override
public @NotNull ActionUpdateThread getActionUpdateThread() {
return ActionUpdateThread.BGT;
}
作者

ZhongHuihong

发布于

2024-11-14

更新于

2024-11-14

许可协议