IntelliJ IDEA 插件开发

IntelliJIDEA-Plugins

说明

我现在用的这个插件时ECTranslation,是用于做中英文翻译的,可以在看文档和注释的是方便的使用,然而近期变得不好用了

  • 翻译的内容有时能出来,有时出不来,有时甚至没有反应
  • 查看了该款插件的源代码,发现是调用的有道翻译的API接口,而且在代码里写死了APIkey和KeyFrom
  • 调用了有道的API,加上上面作者提供的Key,再传入翻译的文本内容,发现返回值居然是请求次数过多,被封禁了…..
  • 明白了,很多使用这个插件的开发者都是用的作者提供的默认Key,默认情况下1小时请求的限制次数是1000次
  • 肯定是次数超了
  • 但是他的配置信息是写在代码里的,能配置到IDEA的面板上供使用者自己配置就好了
  • 于是我有了自己动手的想法

开始项目

第一步创建IDEA插件项目:
IntelliJIDEA-Build
第二步目录结构如下图所示:
IntelliJIDEA-Folder

项目配置

plugin.xml

看代码,相信能看懂的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<idea-plugin>
<id>cn.joylau.plugins.translation</id>
<name>joylau-translation</name>
<version>1.0</version>
<vendor email="2587038142.liu@gmail" url="http://www.joylau.cn">JoyLau</vendor>

<description><![CDATA[
Plugin for translate English to Chinese.<br>
<li>1. Choose the word you want translate.</li>
<li>2. Press Ctrl + NUMPAD0.</li>
<li>3. Fork ECTranslation Change ApiKey and KeyFrom</li>

]]></description>

<change-notes><![CDATA[
<li>Change ApiKey and KeyFrom for myself</li>
<li>Change KeyMap to Ctrl + NumPad 0</li>
]]>
</change-notes>

<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
<idea-version since-build="141.0"/>

<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<!-- uncomment to enable plugin in all products
<depends>com.intellij.modules.lang</depends>
-->

<extensions defaultExtensionNs="com.intellij">
<!-- Add your extensions here -->
</extensions>

<actions>
<!-- Add your actions here -->
<action id="ECTranslation" class="cn.joylau.plugins.translation.ECTranslation" text="Translate">
<add-to-group group-id="EditMenu" anchor="first"/>
<add-to-group group-id="EditorPopupMenu" anchor="first"/>
<keyboard-shortcut keymap="$default" first-keystroke="ctrl NUMPAD0"/>
</action>
</actions>

</idea-plugin>

只有一个action ,调用的类是ECTranslation,快捷键设置的ctrl + NumPad 0

最后

代码都是人家的,我就没好意思往IDEA的仓库里上传了…

如果你想使用这个插件: 点击查看点击下载

更新(2023-08-02)

最近发现有道 API 的接口不能用了,无法返回翻译数据,于是重新修改了下插件,发布最新版本

地址: https://github.com/JoyLau/joylau-translation/releases/tag/V2

目前有个问题就是,现在的有道 API 是收费的,刚开始注册送 50 元,不过很快会用完的, 到时再换其他的翻译 API 吧