Intellij IDEA插件开发入门

现今的IDE尽管有如“洪水猛兽”般强大,但要知道再强大的IDE也没法提供给使用者想要的一切功能,

所以IDE一般都提供有API接口供开发者自行扩展。下面以Intellij IDEA 12下的插件开发为例,来看一下如何进一步增强IDE以适应开发者的需求。

 


 

1.创建Plugin工程

 

如果Module SDK中没有可选的SDK,那么点击New新添加一个SDK,目录就选择Intellij的安装位置即可。

 

 

创建出的Plugin项目结构很简单,只是在META-INF下多了一个plugin.xml配置文件,后文会介绍到它的用处。

 

 


 

2.让插件Say哈喽

 

2.1添加Component

 

在src目录上Alt+Insert,可以看到New对话框中列出有三种组件,分别对应三种级别:Application、Project、Module Component。

这里我们选择Application Component作为实例,在弹出框中输入一个名字例如MyComponent,这样一个组件就创建出来了。

 

 

然后在MyComponent中添加一个SayHello的方法,其他方法暂不实现,源代码如下所示:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

package com.cdai.plugin.rapidg;

 

import com.intellij.openapi.components.ApplicationComponent;

import com.intellij.openapi.ui.Messages;

import org.jetbrains.annotations.NotNull;

 

/**

 * My Component

 * User: cdai

 * Date: 13-11-4

 * Time: 上午10:08

 */

public class MyComponent implements ApplicationComponent {

    public MyComponent() {

    }

 

    public void initComponent() {

        // TODO: insert component initialization logic here

    }

 

    public void disposeComponent() {

        // TODO: insert component disposal logic here

    }

 

    @NotNull

    public String getComponentName() {

        return "MyComponent";

    }

 

    public void sayHello() {

        // Show dialog with message

        Messages.showMessageDialog(

                "Hello World!",

                "Sample",

                Messages.getInformationIcon()

        );

    }

}

 

2.2添加Action

 

现在需要添加一个Action让使用我们插件的用户可以通过菜单或其他方式点击到插件。

 

 

Action主要工作是创建一个Application和MyComponent对象,代码如下:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

package com.cdai.plugin.rapidg;

 

import com.intellij.openapi.actionSystem.AnAction;

import com.intellij.openapi.actionSystem.AnActionEvent;

import com.intellij.openapi.application.Application;

import com.intellij.openapi.application.ApplicationManager;

 

/**

 * Say Hello Action

 * User: cdai

 * Date: 13-11-4

 * Time: 上午10:16

 */

public class SayHelloAction extends AnAction {

 

    @Override

    public void actionPerformed(AnActionEvent e) {

        Application application = ApplicationManager.getApplication();

        MyComponent myComponent = application.getComponent(MyComponent.class);

        myComponent.sayHello();

    }

 

}

 

2.3配置文件

 

其实前面两步新建Component和Action的同时,IDEA在帮我们自动将它们注册到META-INF/plugin.xml中。

我们刚才添加的Application Component和Action会在<application-components>结点下,plugin.xml最终是下面的样子:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

<idea-plugin version="2">

  <id>com.cdai.plugin.rapidg</id>

  <name>CDai's Rapid Generator Plugin</name>

  <version>1.0</version>

  <vendor email="dc_726@163.com" url="http://www.yourcompany.com">CDai</vendor>

 

  <description><![CDATA[

      Enter short description for your plugin here.<br>

      <small>most HTML tags may be used</small>

      ]]></description>

 

  <change-notes><![CDATA[

      Add change notes here.<br>

      <small>most HTML tags may be used</small>

      ]]>

  </change-notes>

 

  <!-- please see http://confluence.jetbrains.net/display/IDEADEV/Build+Number+Ranges for description -->

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

 

  <!-- please see http://confluence.jetbrains.net/display/IDEADEV/Plugin+Compatibility+with+IntelliJ+Platform+Products

       on how to target different products -->

  <!-- uncomment to enable plugin in all products

  <depends>com.intellij.modules.lang</depends>

  -->

 

  <application-components>

    <!-- Add your application components here -->

      <component>

          <implementation-class>com.cdai.plugin.rapidg.MyComponent</implementation-class>

      </component>

  </application-components>

 

  <project-components>

    <!-- Add your project components here -->

  </project-components>

 

  <actions>

    <!-- Add your actions here -->

      <action id="SayHello" class="com.cdai.plugin.rapidg.SayHelloAction" text="Say Hello!">

          <add-to-group group-id="WindowMenu" anchor="first"/>

      </action>

  </actions>

 

  <extensions defaultExtensionNs="com.intellij">

    <!-- Add your extensions here -->

  </extensions>

</idea-plugin>

 


 

3.运行调试

 

打开Run/Debug配置对话框,新加一个Plugin类型的,Use classpath of module选择刚才的示例项目。

 

 

运行起来就会发现,原来会启动一个新的Intellij IDEA实例,重新走一遍启动配置过程,可以看到插件的名字就是plugin.xml中<name>中的值。

我们可以只选中我们刚开发的插件,忽略掉其他的。现在通过Window->Say Hello!就可以触发我们的插件了,效果就是会弹出个对话框。

 

 

有趣的是,plugin.xml中其他的一些描述会在插件崩溃时显示给用户,将问题报告给插件作者。

 

 


 

4.插件配置面板

 

很多插件都是在Settings中有配置页的,现在简单介绍一下如何为我们的插件添加一个配置页。

 

首先改造一下MyComponent类,主要变化就是多实现了一个Configurable接口。这个接口中有一个createComponent方法,

这个方法返回Swing的JComponent对象就会显示到Settings里。另外使用IDEA提供的Swing Designer设计器还是挺方便的,

自动生成的样式和布局代码为了避免被修改,也不会被我们看到(与NetBeans不同),所以最终代码很简洁。

 

 

最终效果就是这样的了,我们在设计器里设计的面板嵌入到了右边。

 

 


 

5.带对话框的插件

 

一种常见的插件就是点击插件对应的菜单项后,弹出一个对话框(例如搜索工作空间里的类、提交SVN前的代码确认等等)。

其实很简单,实现方法就是先创建一个Dialog,然后在Swing设计器中设计好Dialog中的控件布局,最后在Action中显示出对话框。

具体代码就不列举了,有需求可以找我索取。

 


 

参考资料

 

We have tried to answer some of these questions in the new demo: GoogleSearch Plugin for IntelliJ IDEA. This demo explains the basics of plugin writing and publishing.
More experienced plugin developers can find answers in these two articles:
1.   The Basics of Plugin Development for IntelliJ IDEA by Alexey Efimov (for beginners)
2.   Developing Custom Language Plugins for IntelliJ IDEA 5.0 by Dmitry Jemerov (for more advanced developers) 

Also IntelliJ IDEA tries to ease the plugin development by provid

--------------------- 本文来自 cdai 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/dc_726/article/details/14139155?utm_source=copy

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IntelliJ IDEA 是一个功能强大的集成开发环境(IDE),特别适用于 Java 开发。以下是关于 IntelliJ IDEA 入门的一些重要事项: 1. 下载和安装:首先,您需要从 JetBrains 官方网站下载 IntelliJ IDEA 的安装包,并按照指示进行安装。安装完成后,您可以根据需要选择不同的版本:Community(免费版)或 Ultimate(收费版)。 2. 创建新项目:打开 IntelliJ IDEA 后,您可以选择创建一个新项目。选择项目类型并配置项目设置,例如选择所需的编程语言和构建工具(如 Maven 或 Gradle)。 3. 导入现有项目:如果您有一个现有的项目,可以使用 IntelliJ IDEA 导入该项目。选择“导入项目”选项,然后选择项目所在的文件夹,IntelliJ IDEA 将自动加载并配置项目。 4. 界面导览:IntelliJ IDEA 的界面相当直观,并提供了许多功能。主要组件包括菜单栏、工具栏、项目导航、编辑器窗口和工具窗口。学习如何使用和自定义这些组件将帮助您更高效地使用 IDE。 5. 编辑代码:IntelliJ IDEA 提供了强大的代码编辑器,具有许多功能,如自动完成、代码建议、重构、代码导航等。学习使用这些功能可以提高代码编写的速度和质量。 6. 调试和运行:通过 IntelliJ IDEA,您可以轻松进行代码调试和运行。使用断点来调试代码,检查变量的值和表达式的结果。您还可以配置运行配置,以指定要运行的类或应用程序。 7. 版本控制:IntelliJ IDEA 集成了许多版本控制系统,如 Git、Mercurial 和 Subversion。您可以使用 IDE 的版本控制工具来管理和提交代码。 8. 插件和扩展:IntelliJ IDEA 支持各种插件和扩展,使您可以根据需要增强 IDE 的功能。您可以通过 IntelliJ IDEA 的插件市场安装和管理这些插件。 总之,IntelliJ IDEA 是一款功能强大的 IDE,提供了许多有用的功能和工具,以提高您的代码开发效率。通过熟练使用并掌握 IntelliJ IDEA,您将能够更加轻松地开发和管理您的 Java 项目。 ### 回答2: IntelliJ IDEA 是一种集成开发环境(IDE),适用于Java开发。下面是关于如何入门使用IntelliJ IDEA的一些建议。 1. 安装:首先,你需要在官方网站上下载并安装IntelliJ IDEA的适用版本。确保选择与你的操作系统兼容的版本,并遵循安装向导的指示进行安装。 2. 配置:安装完成后,你需要进行一些基本配置。可以选择你的Java开发工具包(JDK)版本,设置代码样式和代码模板等。你还可以选择安装和配置插件,以扩展IDE的功能。 3. 创建项目:在开始使用IntelliJ IDEA之前,你需要创建一个新的项目。选择“新建项目”选项,根据你的需求和项目类型选择相应的选项。输入项目名称和目录,并选择项目的模板。IDE会自动生成初始的项目结构。 4. 导入项目:如果你已经有一个现有的项目,则可以选择“导入项目”选项。在对话框中选择你的项目的根目录,并选择适当的构建工具,如Maven或Gradle。IDE将自动导入并配置你的项目。 5. 编写代码:IntelliJ IDEA提供了一套强大的代码编辑工具和功能,以提高开发效率。开始编写你的代码,可以使用自动完成、代码导航、重构等功能。你还可以使用Debug模式调试代码,并查看实时错误和警告。 6. 构建和运行:完成代码编写后,你可以使用IDE的构建工具编译和构建你的项目。选择“构建”选项,IDE将检查代码并生成可执行文件。你可以直接在IDE中运行你的项目,也可以将其部署到服务器上。 7. 调试和测试:IntelliJ IDEA提供了强大的调试和测试工具,以帮助你在开发过程中找到和修复错误。你可以设置断点并逐步执行代码,观察变量和表达式的值。还可以运行单元测试和集成测试,以确保代码的正确性。 8. 版本控制:如果你使用版本控制系统(如Git)来管理你的代码,IntelliJ IDEA也提供了集成的版本控制功能。可以通过IDE的Git插件来对源代码进行版本管理,轻松地进行提交、拉取和推送操作。 总之,IntelliJ IDEA 是一个功能强大且易于使用的集成开发环境,为Java开发提供了各种工具和功能,可以大大提高开发效率。希望这些简单的入门指导能帮助你开始使用并掌握IntelliJ IDEA。 ### 回答3: Intellij IDEA 是一款功能强大的集成开发环境(IDE),被广泛应用于Java开发中。下面是关于Intellij IDEA入门的一些基本信息和使用指南。 首先,你需要下载并安装Intellij IDEA。在Intellij官网上可以找到各个版本的下载链接,根据你的操作系统选择适合的版本进行安装。安装完成后,打开Intellij IDEA。 在首次运行Intellij IDEA时,你会看到一个欢迎界面。在这个界面上,你可以选择新建一个项目、打开一个已有项目,或者导入一个项目。 在新建项目中,你需要选择项目类型、语言和框架等信息,并指定项目的存储位置。然后,你可以开始编写代码了。 Intellij IDEA提供了丰富的功能和工具来提高开发效率。比如,它具有智能代码完成功能,可以根据你编写的代码提供自动补全建议。它还支持代码导航功能,可以方便地跳转到某个类或方法的定义处。此外,Intellij IDEA还提供了调试、测试、版本控制等常用工具,方便你进行调试和代码管理。 另外,Intellij IDEA还支持插件扩展,你可以根据自己的需要安装和使用一些额外的插件,以增强IDE的功能。 总之,Intellij IDEA是一款强大且易于使用的Java集成开发环境。通过学习和使用Intellij IDEA,你可以提高开发效率,更加方便地进行Java开发工作。希望这些简单的介绍对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值