idea自定義plugin

1.創(chuàng)建Plugin工程

如果Module SDK中沒有可選的SDK,那么點(diǎn)擊New新添加一個(gè)SDK,目錄就選擇Intellij的安裝位置即可。

創(chuàng)建出的Plugin項(xiàng)目結(jié)構(gòu)很簡單,只是在META-INF下多了一個(gè)plugin.xml配置文件,后文會(huì)介紹到它的用處。

2.讓插件Say哈嘍

2.1添加Component

在src目錄上Alt+Insert,可以看到New對話框中列出有三種組件,分別對應(yīng)三種級別:Application、Project、Module Component。

這里我們選擇Application Component作為實(shí)例,在彈出框中輸入一個(gè)名字例如MyComponent,這樣一個(gè)組件就創(chuàng)建出來了。

然后在MyComponent中添加一個(gè)SayHello的方法,其他方法暫不實(shí)現(xiàn),源代碼如下所示:

<code>

packagecom.cdai.plugin.rapidg;

importcom.intellij.openapi.components.ApplicationComponent;

importcom.intellij.openapi.ui.Messages;

importorg.jetbrains.annotations.NotNull;

/**

*?My?Component

*?User:?cdai

*?Date:?13-11-4

*?Time:?上午10:08

*/

publicclassMyComponentimplementsApplicationComponent?{

publicMyComponent()?{

}

publicvoidinitComponent()?{

//?TODO:?insert?component?initialization?logic?here

}

publicvoiddisposeComponent()?{

//?TODO:?insert?component?disposal?logic?here

}

@NotNull

publicString?getComponentName()?{

return"MyComponent";

}

publicvoidsayHello()?{

//?Show?dialog?with?message

Messages.showMessageDialog(

"Hello?World!",

"Sample",

Messages.getInformationIcon()

);

}

}

</code>

## 螺絲刀積分iOS大姐夫


2.2添加Action

現(xiàn)在需要添加一個(gè)Action讓使用我們插件的用戶可以通過菜單或其他方式點(diǎn)擊到插件。

Action主要工作是創(chuàng)建一個(gè)Application和MyComponent對象,代碼如下:

packagecom.cdai.plugin.rapidg;

importcom.intellij.openapi.actionSystem.AnAction;

importcom.intellij.openapi.actionSystem.AnActionEvent;

importcom.intellij.openapi.application.Application;

importcom.intellij.openapi.application.ApplicationManager;

/**

*?Say?Hello?Action

*?User:?cdai

*?Date:?13-11-4

*?Time:?上午10:16

*/

publicclassSayHelloActionextendsAnAction?{

@Override

publicvoidactionPerformed(AnActionEvent?e)?{

Application?application?=?ApplicationManager.getApplication();

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

myComponent.sayHello();

}

}

2.3配置文件

其實(shí)前面兩步新建Component和Action的同時(shí),IDEA在幫我們自動(dòng)將它們注冊到META-INF/plugin.xml中。

我們剛才添加的Application Component和Action會(huì)在結(jié)點(diǎn)下,plugin.xml最終是下面的樣子:


com.cdai.plugin.rapidg

CDai's?Rapid?Generator?Plugin

1.0

http://www.yourcompany.com">CDai

Enter?short?description?for?your?plugin?here.

most?HTML?tags?may?be?used

]]>

Add?change?notes?here.

most?HTML?tags?may?be?used

]]>



on?how?to?target?different?products?-->


com.intellij.modules.lang

-->


com.cdai.plugin.rapidg.MyComponent




3.運(yùn)行調(diào)試

打開Run/Debug配置對話框,新加一個(gè)Plugin類型的,Use classpath of module選擇剛才的示例項(xiàng)目。

運(yùn)行起來就會(huì)發(fā)現(xiàn),原來會(huì)啟動(dòng)一個(gè)新的Intellij IDEA實(shí)例,重新走一遍啟動(dòng)配置過程,可以看到插件的名字就是plugin.xml中中的值。

我們可以只選中我們剛開發(fā)的插件,忽略掉其他的?,F(xiàn)在通過Window->Say Hello!就可以觸發(fā)我們的插件了,效果就是會(huì)彈出個(gè)對話框。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容