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

诚信、勤奋、创新、卓越

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

13262879759

工作日:9:00-22:00

想让编程环境更强大?快来学学如何编写IDEA插件

发布时间:2025-09-26

浏览次数:0

回复“资源”获取独家整理的学习资料!

作者 | 木杉的博客

来源 | http://.com

编写Java程序时,常常会碰到一些需要反复执行的任务,这时就会希望存在一个相应的辅助工具,倘若这是许多人都会遇到的情形,集成开发环境或许已经内置了功能,或者也许有开发者创建了相关的扩展程序。

如果这个功能是你们编程环境独有的,那就只能自行开发工具了。因此,接下来要了解如何制作IDEA插件,以便增强自己的工作平台,同时也能更炫酷地展示技术。

开发环境

开发IDEA插件有以下这些依赖:

安装 IDEA

您或许已经安装了某个版本,不过您还是需要安装社区版,由于商业版是封闭源代码的,因此调试时无法对核心代码进行调试。

下载 IDEA 源码

社区版的软件包不附带原始代码,因此我们要自行从服务器获取一份:

  1. git clone --depth 1 git:在jetbrains的git仓库中找到社区版idea的代码库地址是git.jetbrains.org/idea/community.git, 这个代码库对应的本地分支名是idea

有关在源代码状态下启动IDEA的技巧,请参阅检出并构建章节

那个网址包含了多个部分,前面是协议标识,中间是域名主体,后面跟着路径和文件名,各个部分之间用斜杠分隔开来,整体结构清晰易懂。

添加IDEA jdk

尽管不清楚缘由,不过参照检查推出与构建流程:

http://www..org//sdk/docs//.html

我们需要建立一个 IDEA jdk来运行插件:

若非在苹果电脑上安装了标准版Java开发工具包,就必须自行将 /lib/tools.jar路径配置进去。想要获取最新版 IDEA使用指南,可以关注官方公众号:匠心零度,并在对话框输入:ideaintellij idea ultimate edition,即可收到全部实用教程内容。

配置 SDK

打开 File|新建一个 :

Java SDK选择我们刚刚建立的 IDEA jdk:

接下来,能够将获取的IDEA社区版源代码置入代码目录里,如此一来,在排错之际,便得以排查IDEA自身的程序了。

第一个插件

我们来编写一个最简单的插件来学习编写一个插件的完整步骤。

新建工程

intellij idea ultimate edition_编写IDEA插件_IDEA插件开发教程

选择 n,然后 SDK指定刚刚新建的 sdk:

新建的插件项目:

插件的主文件夹里包含两个子文件夹,一个是 src,另一个是 。src 专门存放插件的程序代码,而 则用来存储插件的辅助资料。在 文件夹中,有一个叫 META-INF 的子目录,里面有一个 .xml 文件,这个文件就是插件的说明文档,功能和 Java web 项目里的 web.xml 类似。

.xml默认的内容如下:

  1. 公司专属插件唯一标识符

  2. Plugin display name here

  3. 1.0

  4. email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany


  5. 请在此处输入插件简短说明。

  6. most HTML tags may be used

  7. \]\]>


  8. Add change notes here.

  9. most HTML tags may be used

  10. \]\]>


  11. since-build="145.0"/>


  12. 关于针对各类商品的具体方法

  13. com.intellij.modules.lang

  14. -->


  15. defaultExtensionNs="com.intellij">



新建一个

继承类别,在具体操作中完成附加功能实现2、登记,有两种途径,依靠编程登记和借助文件登记

  1. publicclass TextBoxes extends AnAction {

  2. 当运用Java编程语言完成注册操作时,相应的构造方法将会被执行,由该方法传递给父类的那段字符信息,将指定为菜单条目的标识名称

  3. 如果借助plugin.xml进行登记,那么这个构造方法可以不必考虑

  4. public TextBoxes() {

  5. // 设置菜单项名称

  6. super("Text _Boxes");

  7. // 还可以设置菜单项名称,描述,图标

  8. 调用构造函数,参数为"文本框",参数为"物品说明",参数为图标加载器获取的图标,图标路径为/Mypackage/icon.png

  9. }


  10. public void actionPerformed(AnActionEvent event) {

  11. Project project = event.getData(PlatformDataKeys.PROJECT);

  12. String txt= Messages.showInputDialog(project, "What is your name?", "Input your name", Messages.getQuestionIcon());

  13. Messages.showMessageDialog(project, "Hello, " \+ txt + "!\\n I am glad to see you.", "Information", Messages.getInformationIcon());

  14. }

  15. }

然后我们在 .xml中注册这个:

  1. id="MyPlugin.SampleMenu" text="_Sample Menu" description="Sample menu">

  2. group-id="MainMenu" anchor="last" />

  3. id="Myplugin.Textboxes"class="Mypackage.TextBoxes" text="Text _Boxes" description="A test menu item" />

此处我们新增了一个功能分类,其中text文本中的下划线标示出该字符用作热键,该功能分类的呈现方式如下:

IDEA具备便捷的文件创建途径,除了人工创建之外,还设有迅速生成功能,在源代码文件夹上实施创建指令,即可观察到相关选项

此处可录入需新增的内容,IDEA将自动建立相应类,并在文件中完成登记。

运行插件

启动插件非常容易,跟执行常规Java程序类似,按下执行或调试的选项intellij idea ultimate edition,便会开启一个新的IDEA版本,这个版本里插件可以正常使用。

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

往期推荐

欢迎加入我的知识星球,聊聊技术、说说职场、扯扯社会。

头发很多的中年程序员DD在这里期待你的到来!

加入方式:长按下方二维码噢

最近更新:

【技术圈】关于作为注册中心的四种形态演变

【技术圈】配置中心除了保存应用参数之外,还能用来存放其他类型的配置信息吗?

【社会人】老实工作没有其他收入,为什么还要补缴个税?

【社会人】除了年终汇算清缴之外,今年的另一件大事:LPR

【聊职场】过来人说说银行科技怎么样?值得进去吗?

我的星球是否适合你?

如有侵权请联系删除!

13262879759

微信二维码