idea插件开发记录
2023-06-13 09:18:09 时间
插件开发示例
功能开发代码示例
java
package com.cjl.plugins.code.hints;
import com.cjl.plugins.code.code.NavigatorPanel;
import com.cjl.plugins.code.http.HttpUtils;
import com.cjl.plugins.code.json.Json;
import com.intellij.codeInsight.hint.HintManager;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.SelectionModel;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentFactory;
import org.apache.http.util.TextUtils;
public class CodeHints extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
final Editor mEditor = e.getData(PlatformDataKeys.EDITOR);
if (null == mEditor) {
return;
}
SelectionModel model = mEditor.getSelectionModel();
final String selectedText = model.getSelectedText();
if (TextUtils.isEmpty(selectedText)) {
return;
}
String baseUrl = "http://fanyi.youdao.com/openapi.do?keyfrom=Skykai521&key=977124034&type=data&doctype=json&version=1.1&q=";
String fanyi = HttpUtils.doGet(baseUrl + selectedText);
HintManager instance = HintManager.getInstance();
instance.showInformationHint(mEditor, Json.jsonFormat(fanyi));
// ToolWindow toolWindow = ToolWindowManager.getInstance(e.getProject()).getToolWindow("CodeHints");
// toolWindow.activate(()->{
//// ContentFactory contentFactory = ContentFactory.SERVICE.getInstance();
// NavigatorPanel navigatorPanel = new NavigatorPanel(toolWindow, e.getProject());
//// Content content = contentFactory.createContent(navigatorPanel, "", false);
// navigatorPanel.setList(null);
//// toolWindow.getContentManager().addContent(content);
// });
}
}
plugin.xml
<!-- Plugin Configuration File. Read more: https://plugins.jetbrains.com/docs/intellij/plugin-configuration-file.html -->
<idea-plugin>
<id>org.jetbrains.plugins.template</id>
<name>Template</name>
<vendor>JetBrains</vendor>
<depends>com.intellij.modules.platform</depends>
<extensions defaultExtensionNs="com.intellij">
<applicationService serviceImplementation="org.jetbrains.plugins.template.services.MyApplicationService"/>
<projectService serviceImplementation="org.jetbrains.plugins.template.services.MyProjectService"/>
<!-- <toolWindow id="CodeHints" secondary="true" anchor="right" canCloseContents="true"-->
<!-- factoryClass="com.cjl.plugins.code.code.CodeToolWindow"/>-->
</extensions>
<applicationListeners>
<listener class="org.jetbrains.plugins.template.listeners.MyProjectManagerListener"
topic="com.intellij.openapi.project.ProjectManagerListener"/>
</applicationListeners>
<actions>
<group id="MyPlugin.SampleMenu" text="_Sample Menu" description="Sample menu">
<add-to-group group-id="MainMenu" anchor="last" />
<action id="Myplugin.Textboxes" class="com.cjl.plugins.code.hints.Hints" text="Text _Boxes" description="A test menu item" />
</group>
<group id="cjlPlugins" text="cjlPlugins" description="cjlPlugins">
<add-to-group group-id="MainMenu" anchor="last" />
<action id="cjlPluginsAction" class="com.cjl.plugins.code.hints.CodeHints" text="翻译" description="A test menu item" >
<keyboard-shortcut keymap="$default" first-keystroke="C" second-keystroke="C"/>
</action>
</group>
<!-- <group id="Test-Group-id" text="Test-Group" >-->
<!-- </group>-->
</actions>
</idea-plugin>
快捷键CC即可实现选定代码翻译功能
功能展示
翻译选中要翻译的英文点击快捷键 c+c 点两次C
打包
查看版本
2020.0=202 版本配置不对,安装插件会导致报错
修改插件版本并打包
安装插件
相关文章
- idea 离线安装 lombok插件[通俗易懂]
- IDEA中使用SVN IDEA配置SVN步骤
- IDEA优化内存配置,可提高启动和运行速度(亲测有效)「建议收藏」
- Intellij IDEA–Pycharm插件开发
- 使用IDEA创建一个Maven项目
- IntelliJ IDEA Community Edition 社区版插件汇总「建议收藏」
- IDEA 高版本 PlantUML 插件默认主题修改
- IDEA运行main方法,为什么要编译整个工程?
- 工具优化篇之IDEA新UI+日常插件
- IDEA无法使用Spring Initializr进行初始化解决
- 「重磅」最新值得拥有的Idea插件竟然是……
- 「重磅」Idea插件-Maven360功能亮眼-Bg-BoomV1.0.2发布
- IDEA设置自动生成注释模板
- 使用IntelliJ IDEA必备的插件!
- 2-4. 实战Git常用操作(IDEA界面+命令)
- 【IntelliJ IDEA】创建 导入 Java 项目
- IntelliJ IDEA 2023 for Mac 完美兼容版:最智能的 Java 集成开发环境
- IDEA用上这十大插件绝对舒服
- idea实用插件(持续更新中。。。)详解编程语言
- IntelliJ IDEA中连接MySQL数据库的操作步骤(idea连接mysql数据库)
- 实现Idea集成Oracle数据库(idea集成oracle)
- 从Idea中将Oracle数据库映射到前端(idea映射oracle)
- 快速掌握Idea 使用 Oracle数据库技巧(idea使用oracle)
- 在 IDEA 中创建 Java Web 项目的方式(详细步骤教程)