手把手制作个划词翻译的IDEA插件

简介

源码

插件工程目录

  • 工程相当简单, 代码也相当简单…
    手把手制作个划词翻译的IDEA插件

代码分析

  • 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

  • 插件的基础信息
    手把手制作个划词翻译的IDEA插件

  • 插件的菜单和快捷键
    手把手制作个划词翻译的IDEA插件

参考

Intellij SDK editor相关

Intellij SDK popups相关