简介
- 看这篇之前可先看下 IDEA插件Demo搭建篇
- 插件功能: 划词翻译
- 使用方式: 选中单词后按
ctrl+shift+alt+O后即弹出翻译 - 效果如下

源码
- 源码仓库: gitee.com/shuogg/Shuo…
插件工程目录
- 工程相当简单, 代码也相当简单...

代码分析
actionPerformed为插件的核心流程, 你按下ctrl+shift+alt+O时执行的就是这个方法- 总流程: 获取编辑器的文本 --> 将文本进行翻译 --> 弹窗显示翻译后文本
- 编辑器指的就是Editor, 都是调API直接查官方文档即可...参考链接在最下面
- 翻译用的是有道的rest api (用的是我自己的账号, 所以随时都可能过期或欠费无法使用...)
- 弹窗就是popups, 同样是调API的, 直接查看官方文档, 参考链接在最下面
@Override
public void actionPerformed(AnActionEvent anActionEvent) {
Editor editor = anActionEvent.getData(PlatformDataKeys.EDITOR);
if (editor == null) return;
String sText = editor.getSelectionModel().getSelectedText();
String translated = getTranslation(sText);
showTip(translated, editor);
}
private void showTip(String msg, Editor editor) {
ApplicationManager.getApplication().invokeLater(() -> JBPopupFactory.getInstance()
.createHtmlTextBalloonBuilder(msg, Messages.getInformationIcon(),
new JBColor(new Color(214, 241, 255), new Color(0, 200, 250)), null)
.setFadeoutTime(20000)
.setHideOnAction(true)
.createBalloon()
.show(JBPopupFactory.getInstance()
.guessBestPopupLocation(editor), Balloon.Position.below));
}
关于plugin.xml
-
插件的基础信息

-
插件的菜单和快捷键
