相关文章推荐
狂野的伏特加  ·  开源日报 | ...·  3 月前    · 
彷徨的马铃薯  ·  ELSE (IF...ELSE) ...·  1 年前    · 

这东西开发过程和传统的java项目不太一样,开发前有两个限制:

  • Gradle:一个相当于maven的管理工具,需要至少6.6版本;可以采用idea的默认版本,也可以自己安装​ ​下载地址​
  • java:这个建议下载,version=11, vendor=Amazon Corretto 11.0.16.1

一、开发前配置

这一节有些是踩坑的内容,需要特别注意一定要先配置一下。只有这些配置没问题了,才能正常创建源码。

1.1、下载JAVA11+

官方要求,最低是11版本。理论上19版本也可以,笔者下载的是11版本。如下:

idea插件开发(1)-入门_子菜单

1.1、配置Gradle6.6+

gradle在6.6版本开始要求使用java11,一般时idea不会自动配置和更新,需要人为查看一下,路径为/Preferences/Build,Exccution,Deployment/Build Tools/Gradle。改动Gradle JVM为事先下载好的corretto-11版本:如下图所示:

idea插件开发(1)-入门_java_02

二、准备知识

idea插件一共有两种类型:功能性插件和主题类插件。

idea插件采用的是gradle来管理的,网上的知识比较少。官方提供了两个必要的东西:1、SDK;2、插件。所以最好熟读文档。如果创建好项目后会生成一个叫build.gradle.kts文件,之中有一行配置是

plugins {
id("java")
id("org.jetbrains.intellij") version "1.9.0"
}

上面表示引入了java和gradle-intellij-plugin插件。这个插件是一个必要的东西需要了解其一些基本知识:

三、简单示例

笔者的idea版本是2022.02版本,所以截图会稍有不同。

3.1、创建模块

这里就一个注意点,注意JDK的选择。创建后会生成一个项目,所有的内容都不需要改,如果需要的话可以改动【准备知识】中提到的插件版本,默认是1.8.0。

idea插件开发(1)-入门_ide_03

可打开右侧的Gradle面板,先运行下图的命令,下载必要的依赖,大概有1G大小,耐心等待。

idea插件开发(1)-入门_ide_04

3.2、创建第一个Action文件

这一步建设按下图创建,以后熟悉以后再采用其它方式创建,否则需要生动修改/resources/META-INF/plugin.xml中的内容。

idea插件开发(1)-入门_子菜单_05

文件内容如下:

idea插件开发(1)-入门_java_06

 action的基本信息,其中Name属性的值作为将来菜单的文本内容
作为Tools菜单下的子菜单
子菜单位置放在第一个
为子菜单添加快捷键
package com.example.firstplugs;

import com.intellij.notification.Notification;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationGroup;
import com.intellij.notification.Notifications;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.ui.MessageType;

public class TestAction extends AnAction {

@Override
public void actionPerformed(AnActionEvent e) {
NotificationGroup notificationGroup = new NotificationGroup("testid", NotificationDisplayType.BALLOON, false);
/**
* content : 通知内容
* type :通知的类型,warning,info,error
*/
Notification notification = notificationGroup.createNotification("测试通知", MessageType.INFO);
Notifications.Bus.notify(notification);
}
}

这块创建好的内容会自动生成在配置文件中

idea插件开发(1)-入门_子菜单_07

3.3、运行

按图所示,红框内哪个都可以:

idea插件开发(1)-入门_java_08

启动需要花费一点时间,然后会打开一个新的idea,做为测试环境。开发的插件会自动安装在新的idea中。

idea插件开发(1)-入门_java_09