赞
踩
以下文档将帮助大家撑握基本的插件开发知识,如果需要深入开发,还需要参考官方提供文档
idea提供了两种方式开发插件, 一种是基于devkit sdk开发(这种已不推荐), 一种是gradle方式开发
使用Gradle方式有以下几点好处:
gradle-intellij-plugin gradle插件是官方推荐的idea插件开发插件, 插件中有开发插件中的所有依赖
开发语言: java + kotlin
版本要求:Gradle 6.6 or newer, 推荐使用最新版, 但新版的gradle要求使用jdk11
建gradle项目有两种方式, 一种是直接使用idea创建,另一种是使用官方提供的Github Template, 这里推荐使用github模板仓库, 因为下载下来的模板中已有示例代码、目录已规划后,减少很多不必要的麻烦。
使用Github Template, 需要在登录github之后,可以看到“Use thie template”, 出现一个简单的向导, 创建后就在自己的账号下的仓库中生成了,当然可以将其下载下来上传至公司的仓库中
将项目导入到idea中,目录结构如下
推荐开发语言为kotlin, 但是用java也是可以的, kotlin得需要先学习下语法知识 Kotlin 教程 | 菜鸟教程
右键 -》New → Plugin Devkit -》 Action
上面的字段解释:
In this case, PopupDialogAction would be available in the Tools menu, it would be placed at the top, and would have no shortcuts.
After finishing the New Action form and applying the changes, the <actions> section of the plugin's plugins.xml file would contain:
<actions>
<action id="org.intellij.sdk.action.PopupDialogAction" class="org.intellij.sdk.action.PopupDialogAction" text="Pop Dialog Action" description="SDK action example">
<add-to-group group-id="ToolsMenu" anchor="first"/>
</action>
</actions>
The <action> element declares the Action ID (id,) Class Name (class,) Name (text,) and Description from the New Action form. The <add-to-group> element declares where the action will appear and mirrors the names of entries from the form.
This declaration is adequate, but adding more attributes is discussed in the next section.
打开右侧 Gradle 工具视图, search “runIde”, 然后右键debug
之后就会运行一个idea出来,可以在新打开的idea上找下自己加的特性, 点击新增加的功能时就会进行断点调试
使用gradle 发布插件
配置Gradle支持后,您可以自动构建插件并将其部署到JetBrains插件存储库.
在发布插件之前,首先需要能将插件源码编译通过,并且打包, 打包之后的文件位于${项目目录}/build/distributions , 编译打包插件可使用 intellij下的buildPlugin 命令
发布插件到JetBrains Plugins仓库时, 首先需要提供 JetBrains Hub Permanent Token.
基于gradle,有以下两种方式可以提供Hub Permanent Token
1)使用环境变量
配置环境变量
|
选择Gradle项目,指定publishPlugin
任务,然后添加上面的环境变量
|
请注意,您仍需要在Gradle属性中放置一些默认值(可以为空),否则您将收到编译错误.
2)为Gradle任务提供参数
与使用环境变量类似,您也可以将凭证作为参数传递给Gradle任务.
-Dorg.gradle.project.intellijPublishToken=YOUR_HUB_TOKEN_HERE
更多知识请参考 Publishing Plugins with Gradle | IntelliJ Platform Plugin SDK
Actions 继承自AnAction, 需要实现actionPerformed 方法 。 actionPerformed会在菜单项(menu item)或 工具栏上的按扭触发。
Actions 是插件中最常用的方式,可以被放到分组中,以分组的方式呈现
|
详细资料参考
Actions | IntelliJ Platform Plugin SDK
plugin.xml 文件是核心配置文件,你可以理解成 Java web 开发中的 web.xml 文件,Android 开发中的 AndroidManifest.xml 文件。所有的组件的注册都需要在此文件中进行配置,否则该组件不会生效。
plugin.xml 文件所在位置为 /ProjectRoot/resources/META-INF/plugin.xml
|
针对一些常用配置整理说明
标签 | 说明 | 示例 |
---|---|---|
id | 插件 ID,唯一表示。用户在插件市场众多插件当中唯一确定你的插件。一旦插件 ID 定义好并启用后,后续不可再更改,否则会成为新的插件 | |
name | 插件名称,显示的位置如下图 | |
description | 插件功能说明,如上图中 插件名称下方的描述 | |
version | >插件版本号,如:1.0 | |
change-notes | 插件更新日志描述,建议保留所有版本的更新说明。书写时,建议写上每个版本的版本号,以及内容。内容支持 html 标签,比喻ul,li | |
vendor | 标签为作者主站网址和邮箱配置。便于用户有疑问时联系你。 <vendor url="http://www.jetbrains.com" email="support@jetbrains.com" /> | |
actions | 标签之间可以配置多个 action 标签。 action 的快捷键标签。 first-keystroke:首选快捷键 second-keystroke:备选快捷键 keymap:默认快捷键 | <action <keyboard-shortcut first-keystroke="control alt G" second-keystroke="C" keymap="$default"/> |
官方文档 Creating Your First Plugin | IntelliJ Platform Plugin SDK
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。