发布时间:2026-04-02
浏览次数:0
点击上方[全栈开发者社区]→右上角[...]→[设为星标
点击领取全栈资料:全栈资料
在编写Java代码之际,时常会碰到重复性的操作情形,于这般的时候,便会萌生出要是存在如此一个插件该多好的想法,倘若属于大家皆会遭遇的场景状态,那么IDE 也许已然给予提供了,不然的话,也极有可能有人已然编写好了相关的插件。
倘若此项操作是你们所特有的编码环境方面的,那就唯有自行去编写工具了。故而在此处来学习怎样编写IDEA插件,以使自身的编程环境更为强大,更优地去进行显摆。
开发环境
开发IDEA插件有以下这些依赖:
或许你已然安装了版本,不过你依旧得去安装IDEA的社区版本。鉴于商业版属于闭源性质,因而在进行调试的时候不能调试核心代码。
社区版的安装包之中,并不含有源码,因而,我们得手动去上面clone一份。
git clone --depth 1 git://git.jetbrains.org/idea/community.git idea提到从源码运行IDEA的办法参照,是Check Out And Build。
添加 IDEA jdk
暂且不知其所以然,然而依据Check Out And Build这般情况之下,我们所需去创建一个IDEA jdk以便能够运行插件。
你需要手动添加 /lib/tools.jar 到中,除非、假如你是在 Mac 这一特定设备上使用官方 JDK ,否则就要这么做。
配置 SDK
打开 File | 新建一个 SDK:
Java SDK 选择我们刚刚建立的 IDEA jdk:
其次,我们能够将所下载的IDEA社区版源码增添至源码路径里,如此一来,于调试之际,便能够调试IDEA自身的代码了。
第一个插件
我们来编写一个最简单的插件来学习编写一个插件的完整步骤。
新建工程
选择 ,然后 SDK指定刚刚新建的 sdk:
新建的插件项目:
插件根目录之下,存在着两个目录,分别是src以及另一个。src属于插件代码的目录,而它是插件资源的目录,当中包含的META-INF/.xml,是插件的描述文件,这就如同Java web项目的web.xml那般。
.xml 默认的内容如下:
<idea-plugin>
<id>com.your.company.unique.plugin.idid>
<name>Plugin display name herename>
<version>1.0version>
<vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompanyvendor>
<description> Enter short description for your plugin here.
most HTML tags may be used
]]>description>
<change-notes> Add change notes here.
most HTML tags may be used
]]>
change-notes>
<idea-version since-build="145.0"/>
<extensions defaultExtensionNs="com.intellij">
extensions>
<actions>
actions>
idea-plugin>新建一个
在菜单栏或者工具栏里添加菜单项,这是插件扩展IDEA最为常见的方式,用户借助点击菜单项去触发插件功能。IDEA给出了class,此类存在一个虚方法,该方法于每次菜单被点击之际会被调用。
新建一个自定义的 有两个步骤:
1. 继承 类,在 方法中实现插件逻辑
2. 注册 ,有两种方式,通过代码注册和通过 .xml 注册
我们先写一个简单的类:
public class TextBoxes extends AnAction {
// 如果通过Java代码来注册,这个构造函数会被调用,传给父类的字符串会被作为菜单项的名称
// 如果你通过plugin.xml来注册,可以忽略这个构造函数
public TextBoxes() {
// 设置菜单项名称
super("Text _Boxes");
// 还可以设置菜单项名称,描述,图标
// super("Text _Boxes","Item description",IconLoader.getIcon("/Mypackage/icon.png"));
}
public void actionPerformed(AnActionEvent event) {
Project project = event.getData(PlatformDataKeys.PROJECT);
String txt= Messages.showInputDialog(project, "What is your name?", "Input your name", Messages.getQuestionIcon());
Messages.showMessageDialog(project, "Hello, " + txt + "!\n I am glad to see you.", "Information", Messages.getInformationIcon());
}
}然后我们在.xml中注册这个:
class="Mypackage.TextBoxes" text="Text _Boxes" description="A test menu item" />
<group id="MyPlugin.SampleMenu" text="_Sample Menu" description="Sample menu">
<add-to-group group-id="MainMenu" anchor="last" />
"Myplugin.Textboxes"
group>在此处,我们创建了一个菜单组,当中intellij idea ultimate edition,text 这一字符串里的下划线意味着该字母用作快捷键,此菜单呈现出的效果如下:
除了依靠手动去进行新建之外,IDEA额外给出了能够实现快速新建的方式,于代码目录之上进行点击以开展新建操作,此时便能够看到:
在这个面板里头能够填写你打算新建的信息,IDEA会助力你新建类intellij idea ultimate edition,并且还会在.xml里帮你进行注册。
运行插件
运作插件尤为简易,如同运作普通Java代码那般,轻点运行或者调试的按钮,便会开启一个全新的IDEA实例,在此实例里插件是起作用的。
点击 Text Boxes 就可以看到插件的效果了。
参考资料
觉得本文对你有帮助?请分享给更多人
关注「全栈开发者社区」加星标,提升全栈技能
本公众号会不定期给大家发福利,包括送书、学习资源等,敬请期待吧!
如果感觉推送内容不错,不妨右下角点个在看转发朋友圈或收藏,感谢支持。
好文章,留言、点赞、在看和分享一条龙
如有侵权请联系删除!
TAGS:
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码