公司介绍 产品展示 业务支持 解决方案 文档资料
网站导航 访客留言 技术论坛
     
     
  产品资料
  业界动态
  JAVA技术


首  页 > 文档资料 > 产品资料  
 
  IntelliJ IDEA插件之Hello World

IDEA的插件开发文档可谓非常少,除了能作www.intellij.org上发现几篇外,很少再有其他文档,相比Eclipse的插件开发文档,IDEA几乎可以用没有来说明。但是这并不等于IDEA的插件开发就很复杂,无法下手。IDEA的插件开发其实非常简单,在下面的例子中我们就向大家介绍如何去开发一个插件。

在开发前,让我们了解一下IDEA的插件组成,IDEA插件通常包含四个内容组成:Action、Module Component、Project Component和Application Component,其中IDEA主要是响应的操作,Module Component提供和Module相关的设定和操作,Project Component提供和项目相关的服务和操作,Application Component主要是与IDEA应用程序相关,这样的组成可以说涉及到IDEA的方方面面啦。

IDEA并没有提供一个快速插入当前日期的功能,这项功能应该说还是挺必要的,下面就拟定编写一个插件实现这样的功能。在编写插件之前,让我们看看具体的需求:

  1. 使用快捷键在编辑窗口快速插入日期
  2. 日期的格式要可定义,可以使用自己喜欢的格式,如2005年6月10日,2005-6-10等等。
  3. 可以根据具体的国家信息生成相应的日期信息格式。

有了这些需求后,就开始我们的插件开发之旅。

1 现在最新的IDEA EAP版本,这个你可以通过www.intellij.net/eap下载,启动IDEA,打开IDEA的设置面板,选择“Jdk & Global Libraries”,创建一个新的“IDEA JDK”,IDEA JDK还需要一个Sandbox Home属性,这个用于存储IDEA运行期的数据,你只需指向一个空白的目录即可。

2 下面我们就需要创建一个新的项目,这个很简单,项目的Jdk请选择IDEA JDK,在设置项目的模块类型时请选择Plugin Module,这样这个项目就创建完毕啦。

3 接下来我们需要设计一个界面用于设置日期相关的数据信息,如格式,国别,这里我们的格式拟定采用Java的日期格式处理方法,所以还要提供一个java格式设置的超链接参考,这个界面可以通过IDEA的GUI Designer设计。我们创建一个SettingForm窗体,同时创建一个SettingForm类进和窗体绑定,这样我们就完成界面的设计。

4 接下来我们要创建一个Application Component,用于设置日期的格式和Locale,我们命名为TimeStampInsertPlugin,这个类需要实现ApplicationComponent, Configurable, JDOMExternalizable。ApplicationComponent接口表示这是一个应用组件,Configurable接口表示要在设置面板显示一个插件设置项,就象“General”、“Editor”等设置项一样,JDOMExternalizable接口表示我们要保存设置的信息。

在TimeStampInsertPlugin中,我们只需提供以下信息:1 一个图标用于在设置面板显示,2 一个图形组件用于显示插件信息配置界面,这个也就是我们上面创建的SettingForm,3 组件名称。同时我们做一些事情就是同步欲保存的数据和显示组件数据,这个很容易编写。

5 接下来我们就要编写一个Action来响应用户的操作,也就是在编辑窗口按下快捷键然后插入当前日期。这里主要是针对编辑窗口操作,所以我们创建一个EditorAction,EditorAction需要一个默认的Handler去处理其操作,这里因为牵涉到要向编辑窗口插入文本,执行写入操作,所以我们要使用EditorWriteActionHandler,保证日期能正确地被插入到编辑窗口。在Action中,我们查找到TimeStampInsertPlugin组件,这样就可以获取日期的格式和国别信息,这样就可以设定输出日期字符串的格式。

6 所有的代码编写完毕后,我们需要设置该插件信息,这里主要是设置一个应用组件和一个Action。在IDEA编辑xml是一件愉快的事情,你只需根据plugin.xml的DTD就可以自动完成代码提示。

7 接下来就让我们运行一个新的IDEA,让其加载这个插件,体验该插件的功能。点击“Run|Edit Configurations”,选择“Plugin”标签,然后创建一个新的plugin应用即可,创建完毕后我们只需点击“Run”按钮就运行plugin应用啦,回到编辑器窗口,你只需按下快捷键就可以依据设定的格式插入日期。

总结:IDEA的插件开发并不复杂,只要我们了解其机制,开发是非常便利的。IDEA本身的功能就非常强大,如果你在其基础上做一些便利的插件,那么对你开发效率的提示非常有益。IDEA 5.0结合了PicoContainer,这样对一些资源的引用完全可以通过IoC方式进行,这样开发就更简单啦。

附件:插入当前日期插件的源码