效果
自己也編寫了一個代碼生成器插件并發(fā)布到了倉庫中,可以直接搜索“Neo Coder”殷勘,開發(fā)的這個插件是位于Tool Windows里面的,如下
https://github.com/SimonAlong/Neo
下面講述下巩趁,如果創(chuàng)建自己的idea插件
1.建項目
創(chuàng)建idea插件項目很簡單,idea對應的項目就有,如下
其中plugin.xml就是idea給我們的配置文件议慰,后續(xù)要將我們的插件在哪些位置限制蠢古,都在該文件中配置即可
2.寫代碼
項目創(chuàng)建完畢就可以開發(fā)我們自己的插件了,插件的開發(fā)可以根據idea的插件包别凹,進行快速的開發(fā)
編寫基本代碼
我們這里創(chuàng)建Action草讶,該Action就是一個動作
創(chuàng)建Action
添加之后,在plugin.xml中就有如下的配置
<actions>
<!-- Add your actions here -->
<action id="test" class="com.simonalong.test.test" text="test" description="test">
<add-to-group group-id="ViewMenu" anchor="first"/>
</action>
</actions>
對應的test類
public class test extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
Project project = e.getData(PlatformDataKeys.PROJECT);
Messages.showMessageDialog(project, "helloword", "test", Messages.getInformationIcon());
}
}
3.調試
在配置中炉菲,如下堕战,直接運行即可,運行會重新啟動一個新的idea拍霜,記得新的idea也是需要激活才行嘱丢,所以用一些激活碼激活即可(怎么獲取你懂得)
在這里就有我們添加的,其中文案對應的就是我們上面的text
注意:
如果重新打開祠饺,有些時候 Use classpath of module顯示為[none]越驻,如果是這種情況請看后面的問題
4.試用
當我們開發(fā)完我們的,我們就可以將我們的程序發(fā)布出去道偷,但是在發(fā)布之前缀旁,我們可以給其他小伙伴或者自己的其他程序先安裝試用下,這個時候只需要build出來我們自己的jar包勺鸦,然后安裝到我們的插件庫就可以了
編寫插件對外文案
如果不編輯則采用的就是默認的
打包
打包出來如下
本地安裝
打包之后并巍,只需要將如上的jar包安裝即可,如下
從本地安裝即可
5.發(fā)布
當也試用完畢后祝旷,沒什么問題履澳,就可以將自己的插件發(fā)布到idea的市場上面
https://plugins.jetbrains.com/plugin/add#teamcity
如果發(fā)布成功,比如如下怀跛,而且會有一封郵件距贷,表示插件會進行審核,在1~2個工作日之后才會對外公開
[圖片上傳失敗...(image-54dd49-1598283563586)]
6.問題
1.idea插件項目再次打開時候無法運行
原因是idea會將打開的項目默認為java項目吻谋,只需要手動將根目錄下面的.idea文件下的*.iml中的Model從"JAVA_MODULE"修改為"PLUGIN_MODULE"即可忠蝗,就可以運行了
2.編譯啟動上報錯誤
Plugin Error
Problems found loading plugins:
Duplicate plugin id:com.your.company.unique.plugin.id
我這里其實是修改了自己的plugin id的,但是不知道為什么還有上面這個錯誤漓拾,后來重新創(chuàng)建了一個項目阁最,將代碼都拷貝過去,然后就好了
3.發(fā)布時候報如下問題
Invalid plugin descriptor 'plugin.xml': value of <description> must not have default 'Enter short description for your plugin here.' or 'most HTML tags may be used'
發(fā)現自己的描述中有如下這么一句話骇两,這句話是之前舊的描述速种,我只是在上面添加了一行,刪除就可以了
<em>most HTML tags may be used</em>
4.發(fā)布時候上報問題
[圖片上傳失敗...(image-dfc664-1598283563586)]
Plugin has no dependencies. Please check the documentation.
只需要將plugin.xml下面的注釋取消即可
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<!-- uncomment to enable plugin in all products
<depends>com.intellij.modules.lang</depends>
-->
或者將下面的添加即可
<depends>com.intellij.modules.lang</depends>
補充:
1.編寫界面
對于需要編寫界面的部分低千,可以采用Swing的手寫方式配阵,也可以采用idea提供的這個界面拖拽公共。
前面調用部分寫完之后,就可以在idea點擊了棋傍,但是沒有界面的話救拉,還是不好交互,我們直接用idea中的拖拽方式進行開發(fā)界面即可
創(chuàng)建完就如下瘫拣,然后就可以在上面通過拖拽的方式亿絮,開發(fā)自己的界面了
提示:
開發(fā)后界面的查看可以直接點擊右鍵預覽,不用啟動也可以看界面效果麸拄,只能看界面效果不能看功能