IDEA Plugin 開發探索

Deemons發表於2018-07-31

pexels-photo-1116613

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

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

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

例如:PyCharmWebStormPhpStorm ,還有谷歌維護的 Android Studio

這些工具有些需要收費,當然,網上也有很多免費的註冊碼,線上生成intellij idea註冊碼 (話題跑偏了~)

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

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


搭建環境

外掛開發,要用到IntelliJ Platform SDK 環境,所有一般使用到 IntelliJ IDEA點此下載

這裡有兩個版本,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="deemonsch@gmail.com" 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 的熟悉程度了,反正我是不熟悉的。

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

Android Studio Plugin 外掛開發教程(一) —— 開發你的第一個外掛

Android Studio外掛開發1--環境搭建

這兩個系列教程。

打包釋出

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

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

prepare plugin

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

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

地址:https://plugins.jetbrains.com/ 登入之後,就可以上傳你的外掛了

add new plugin

其中,LICENSE 需要填寫協議證照地址,一般直接填寫 http://www.apache.org/licenses/LICENSE-2.0

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


TinyPNG 這個外掛以及上傳,Github 地址

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


參考

IntelliJ Platform SDK

AndroidStudio外掛開發(Hello World篇)

【Intellij Idea 外掛從入門到深坑】系列目錄

學會編寫Android Studio外掛 別停留在用的程度了

手把手教你 Android Studio 外掛從開發到釋出官方

Android Studio Plugin 外掛開發教程(一) —— 開發你的第一個外掛

Android Studio外掛開發1--環境搭建


相關文章