1. 程式人生 > >IDEA Plugin 開發探索

IDEA Plugin 開發探索

pexels-photo-1116613

最近,在優化 APK 體積,壓縮圖片一般會使用 TinyPNG ,想著一張一張處理太麻煩,就搜尋了一些批量處理的工具,有 gradle 指令碼的,也有 IDEA 外掛的,結果都不大理想,因此,想自己開發一個 TinyPNG 的外掛。

IDEA 全稱IntelliJ IDEA,是用於 java 語言開發的整合環境(也可用於其他語言),IntelliJ 在業界被公認為最好的java開發工具。

IDEA 的創造者,大名鼎鼎的 JetBreain 公司,同時還創造出許多 IT 界耳熟能詳的開發工具,

這些工具有些需要收費,當然,網上也有很多免費的註冊碼,線上生成intellij idea註冊碼

(話題跑偏了~)

我們在使用這些整合環境時,通常會安裝許多 Plugin,而這些外掛也是可以自行開發的。

這裡就以 TinyPNGGithub 地址)這個外掛為例,記錄下開發外掛的過程。

搭建環境

這裡有兩個版本,Community 是免費版,Ultimate 30 天免費使用,過後可以使用註冊碼。

兩個版本都可以,下載安裝完成後,開啟

IntelliJ IDEA

選擇新建專案 Create New Project

IntelliJ Platform Plugin
左邊選擇外掛專案 IntelliJ Platform Plugin ,然後右邊選擇正確的外掛環境,點選 Next ,填寫專案名稱以及存放位置。

專案建立完成後,目錄很簡單,這裡放出

TinyPNG 的目錄

plugin.xml

lib 目錄是手動建立的目錄,裡面存放一些依賴庫
src 目錄存放專案程式碼
resources 目錄中, plugin.xml 是整個外掛的配置檔案,很重要,下面給出 TinyPNG 中的 plugin.xml 檔案部分程式碼

<idea-plugin>
  <id>cn.deemons.tinypng.plugin</id><!--外掛id,不能和其他外掛專案重複,推薦com.xxx.xxx的格式 -->
  <name>TinyPNG</name><!--外掛名稱 -->
<version>1.3</version><!--外掛版本號 --> <vendor email="[email protected]" url="https://deemons.cn">Deemons</vendor> <!--外掛釋出者資訊,可以新增郵箱連結 --> <!--外掛描述資訊,在這裡可以介紹你的外掛內容,支援HTML標籤 --> <description><![CDATA[ <h1>TinyPNG</h1> <br/> <p><b>A plugin for compression picture by TinyPNG API.</b></p> <br/> <p><b>利用 TinyPNG 的 API ,開發的圖片壓縮工具,其中提供了一些 Key。</b></p> <p><b>歡迎大家留言,提供更多 API Key。</b></p> ]]> </description> <!--外掛版本變更日誌,支援HTML標籤 --> <change-notes><![CDATA[ <ul> <li>v1.3 fix some bug</li> <li>v1.2 add info</li> <li>v1.1 fix bug</li> <li>v1.0 init</li> </ul> ]]> </change-notes> <!-- 對IntelliJ IDEA軟體支援本外掛版本號 --> <idea-version since-build="145"/> <!-- 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> <!--自定義擴充套件,暫時用不到 --> <extensions defaultExtensionNs="com.intellij"> <!-- Add your extensions here --> </extensions> <!--具體的外掛動作,後面會介紹 --> <actions> <!-- Add your actions here --> </actions> </idea-plugin>

這裡填寫的資訊,會在別人搜尋你外掛的時候展現介紹

browse repositories

建立Action

在 src 下新建 Action

new action

然後,填寫相關資訊

Action

點選 ok 後,會在 src 目錄下,自動生成對應的檔案

public class Action extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        // TODO: insert action logic here
        // 每次點選此 Action,都會呼叫到這裡
    }
}

同時,在外掛的配置檔案中 plugin.xml ,自動生成對應的 action

  <actions>
    <!-- Add your actions here -->
    <action id="Action" class="Action" text="Action" description="Action">
      <add-to-group group-id="CodeMenu" anchor="last"/>
    </action>
  </actions>

到此,外掛的基本建立就結束了。

之後的程式設計,很大程度需要依賴 對 Java GUI Swing 的熟悉程度了,反正我是不熟悉的。

如果需要了解,建立彈窗、儲存資料等知識,請參考

這兩個系列教程。

打包釋出

在外掛編寫的工程中,需要檢視效果,可以直接點選 run 按鈕,它會重啟一個新的 IDEA,然後隨便進入一個專案,檢視此外掛的效果。

如果外掛編寫完成,這時候,可以直接打包外掛,點選 Build -> Prepare Plugin Module…

prepare plugin

之後,會在專案目錄下,生成一個 zip 檔案,這個檔案就是打包的外掛。

這個外掛,可以釋出到外掛市場,供其它人下載使用。

add new plugin

提交,上傳成功後,需要一兩天的稽核時間,如果稽核通過,就可以搜尋到此外掛了。

歡迎 start ,歡迎留言更多 API Key

參考