IDEA插件开发(一):Hello World

718 阅读1分钟

1、为何要做一个IDEA插件

我就是纯无聊就去做一个。可能会用于娱乐,也可能作为一个工具。也可能之后做一半GG。不过不管啦,先做一个试试吧。

2、如何创建

步骤 1

image.png

步骤 2

image.png

步骤 3

image.png

步骤 3.1 创建plugin.xml配置文件

<idea-plugin>
  <id>com.rodagroup.support.demo</id>
  <name>DemoIdeaPlugin</name>
  <version>1.0</version>
  <vendor email="vvip2u@126.com" url="http://www.xxx.com">xxx</vendor>

  <description>
    <![CDATA[
    Plugin Test<br>
    第一行:这是一个插件<br>
    第二行:说多了都是幸福,请不要说了<br>
    <a href='http://www.xxx.com'>主页</a>
    ]]>
  </description>

  <change-notes>
    <![CDATA[
    Plugin Test<br>
    版本号: v0.1
    Description: 测试
    <em>0.1</em>
    ]]>
  </change-notes>

  <idea-version since-build="173.0"/>

  <extensions defaultExtensionNs="com.intellij">
    <!-- Add your extensions here -->
  </extensions>

  <!-- 主要是actions,1.定义位置,ToolsMenu就是Tools菜单下,2.定义插件相关逻辑,在DemoAction里 -->
  <actions>
    <group id="PluginTest" text="插件测试组" description="插件测试描述">
      <!--add-to-group控制把该分组加到IDEA里,group-id用来描述加在哪个位置,MainMenu表示加在IDEA上方的主菜单栏里,
      anchor表示顺序,last表示最后一个,所以下面的配置可以描述为:将该插件加到IDEA上方主菜单栏的最后一位-->
      <add-to-group group-id="ToolsMenu" anchor="last"/>
      <!--这个用来指定一个分组下的触发动作,同样的需要一个id,自定义;class就是用来处理这个动作的逻辑类,具体的插件逻辑都会写到对应的action类里,text用来控制文案,description为描述-->
      <action id="DemoPlugin"
              class="com.xxx.xxx.plugin.demo.DemoAction"
              text="表单测试" description="表单测试描述"/>
    </group>
  </actions>

</idea-plugin>

步骤 3.2 创建DemoAction

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import org.jetbrains.annotations.NotNull;

public class DemoAction extends AnAction {

  @Override
  public void actionPerformed(@NotNull AnActionEvent event) {
    Project project = event.getData(PlatformDataKeys.PROJECT);
    event.getPresentation().setEnabledAndVisible(project != null);

    String str = "Hello World";
    Messages.showMessageDialog(project, str, str, Messages.getErrorIcon());
  }
}

步骤 4 Build你的插件

菜单: Build -> Prepare Plugin Module ...

image.png

就会在项目的目录下创建了一个jar文件,如本文中的demo-idea-plugin.jar

步骤 5 使用插件

在插件管理中,点Install Plugin from Disk 然后选择刚刚前面创建的demo-idea-plugin.jar,然后重启IDEA就能使用啦

image.png

使用

点击菜单 Tools -> 表单测试

image.png

展示结果

image.png

3、写在之后

真正做这个demo看起来还不算太难吧。根据上述步骤就能做出来。

我用的Java版本是1.8

Intellij Platform SDK版本:IntelliJ IDEA IU-192.7142.36