你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

IDEA插件开发教程:用Ultimate版也能自己写插件

发布时间: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中注册这个:


  <group id="MyPlugin.SampleMenu" text="_Sample Menu" description="Sample menu">
    <add-to-group group-id="MainMenu" anchor="last"  />
       "Myplugin.Textboxes"
 class="Mypackage.TextBoxes" text="Text _Boxes" description="A test menu item" />
  group>

在此处,我们创建了一个菜单组,当中intellij idea ultimate edition,text 这一字符串里的下划线意味着该字母用作快捷键,此菜单呈现出的效果如下:

除了依靠手动去进行新建之外,IDEA额外给出了能够实现快速新建的方式,于代码目录之上进行点击以开展新建操作,此时便能够看到:

在这个面板里头能够填写你打算新建的信息,IDEA会助力你新建类intellij idea ultimate edition,并且还会在.xml里帮你进行注册。

运行插件

运作插件尤为简易,如同运作普通Java代码那般,轻点运行或者调试的按钮,便会开启一个全新的IDEA实例,在此实例里插件是起作用的。

点击 Text Boxes 就可以看到插件的效果了。

参考资料

觉得本文对你有帮助?请分享给更多人

关注「全栈开发者社区」加星标,提升全栈技能

本公众号会不定期给大家发福利,包括送书、学习资源等,敬请期待吧!

如果感觉推送内容不错,不妨右下角点个在看转发朋友圈或收藏,感谢支持。

好文章,留言、点赞、在看和分享一条龙

如有侵权请联系删除!

13262879759

微信二维码