下面为一个陈列了所有可以在配置文件使用的元素的示例配置文件。
<!-- url="" 指定插件主页(会显示在欢迎页和插件配置对话框中) -->
<idea-plugin url="http://www.jetbrains.com/idea">
<!-- 插件名称 -->
<name>VssIntegration</name>
<!-- 插件的唯一标识符。
插件的不同版本不能有不同的标识符。
如果未指定标识符,则使用名称为标识符值。 -->
<id>VssIntegration</id>
<!-- 插件描述 -->
<description>Vss integration plugin</description>
<!-- 插件最新版本的变更描述。
会显示到插件的配置对话框和web的插件界面。 -->
<change-notes>Initial release of the plugin.</change-notes>
<!-- 插件版本 -->
<version>1.0</version>
<!-- 插件厂商。
通过url属性指定厂商的主页,可选。
通过email属性指定厂商的邮箱,可选。
通过logo指定插件的图标路径,需要为16*16尺寸。该logo会显示到欢迎界面。 -->
<vendor url="http://www.jetbrains.com" email="[email protected]" logo="icons/plugin.png">Foo Inc.</vendor>
<!-- 依赖的插件的标识符 -->
<depends>MyFirstPlugin</depends>
<!-- 非必须的插件依赖。
如果插件"MySecondPlugin"已经安装,则mysecondplugin.xml(符合plugin.xml格式的配置)就会被加载。 -->
<depends optional="true" config-file="mysecondplugin.xml">MySecondPlugin</depends>
<!-- 允许插件将帮助文档(JavaHelp格式)集成到IDEA的帮助系统中。“file”属性指定插件目录中的help子目录下的jar名称。“path”属性指定jar包内的helpset名称。-->
<helpset file="myhelp.jar" path="/Help.hs" />
<!-- 可兼容的IDEA最大最小版本 -->
<idea-version since-build="3000" until-build="3999"/>
<!-- 需要加载的资源文件,可用于插件描述、交互名称等。-->
<resource-bundle>messages.MyPluginBundle</resource-bundle>
<!-- 应用级别组件 -->
<application-components>
<component>
<!-- 组件接口 -->
<interface-class>com.foo.Component1Interface</interface-class>
<!-- 组件实现类-->
<implementation-class>com.foo.impl.Component1Impl</implementation-class>
</component>
</application-components>
<!-- 项目级别组件 -->
<project-components>
<component>
<!-- 未指定接口,则组件和接口的实现类相同 -->
<interface-class>com.foo.Component2</interface-class>
<!-- 如果“workspace”属性设为“true”,则组件将状态存储到.iws文件中,而不是.ipr中。注意:只有组件基于JDOMExternalizable接口,<option>配置才生效。否则<option>配置无效。-->
<option name="workspace" value="true" />
<!-- "loadForDefaultProject"标签表示项目级别组件会为默认项目加载。 -->
<loadForDefaultProject>
</component>
</project-components>
<!-- 模块级别组件 -->
<module-components>
<component>
<interface-class>com.foo.Component3</interface-class>
</component>
</module-components>
<!-- 交互 -->
<actions>
<action id="VssIntegration.GarbageCollection" class="com.foo.impl.CollectGarbage" text="Collect _Garbage" description="Run garbage collector">
<keyboard-shortcut first-keystroke="control alt G" second-keystroke="C" keymap="$default"/>
</action>
</actions>
<!-- 扩展点。其他插件可以通过扩展点访问当前插件资源。“beanClass”属性指定可以使用该扩展点的类。
-->
<extensionPoints>
<extensionPoint name="testExtensionPoint" beanClass="com.foo.impl.MyExtensionBean"/>
</extensionPoints>
<!-- 扩展可以访问IDEA或者其他插件提供的扩展点。“defaultExtensionNs”属性设置为定义扩展点的插件ID,若使用IDEA核心扩展点,设置为“com.intellij”。“<extensions>”标签类的元素必须为扩展点的名称,“implementation”为访问扩展点的类名称。 -->
<extensions xmlns="VssIntegration">
<testExtensionPoint implementation="com.foo.impl.MyExtensionImpl"/>
</extensions>
</idea-plugin>