插件已發布
1,在Plugins中搜索CCLines,進行下載安裝;
2,源碼在Github中開源下載;
3,搜索不到的朋友,可以升級一下idea后再嘗試,因為插件有跟idea的版本關聯;
PopupMenu的演示效果圖,如下:
看上面的效果圖,在Project區域的右鍵彈窗,選擇【Compute Lines】進行統計,這個功能就是我們今天要講的主要內容,如果喜歡的話,記得支持一下~~~
創建ProjectViewPopupMenu
其實創建ProjectViewPopupMenu,其實就是創建一個Action,具體怎么創建,請見Android Studio插件開發2--Action創建,里面詳細講了怎么創建一個Action。
只不過今天創建的Action在指定【group-id】上有所不同,如下圖:
這里指定的【Groups】是在ProjectViewPopupMenu中,然后我選擇的【Anchor】是【Last】。
在plugin.xml中的信息,如下:
<!--Action注冊,比如在某個菜單下增加一個按鈕就要在這注冊 -->
<actions>
<!-- Add your actions here -->
<action id="ActionComputePopupMenu" class="action.ActionComputePopupMenu" text="Compute Lines"
icon="/myToolWindow/chk_normal.png" description="Compute code lines.">
<add-to-group group-id="ProjectViewPopupMenu" anchor="last"/>
</action>
</actions>
創建完成后的效果圖,如下:
到這里,其實創建的ProjectViewPopupMenu就結束了,如果看到過前面的Action創建的文章,其實看到這里就非常容易理解。
不過。。。我們得明白為什么要創建一個ProjectViewPopupMenu在這里,我前面做的Dialog創建,其實只是統計某一整個項目內的所有文件,但肯定有這樣的需求,就是我只是想統計某一個目錄,甚至是某一個文件的代碼行數,所以我又做了這樣的一個功能。
獲取Project中,選擇統計的路徑
那么在Project的右鍵菜單中,添加了我們需要觸發統計的Action入口后,我們下一步應該想辦法去獲取我們當前所選擇的路徑。只要能獲取到路徑,我們接下來走的邏輯其實跟就統計一整個項目是一樣的了。
代碼如下:
// 獲取當前選擇的文件或文件夾路徑 2017/3/24 15:48
VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(e.getDataContext());
if(file == null) {
if (jTextArea != null)
jTextArea.append("找不到統計文件.\n");
return;
}
String path = file.getPath(); // 獲取統計路徑 2017/3/24 15:50
PS:
1,上面的【e.getDataContext()】,是在Action的【actionPerformed】方法中的參數【AnActionEvent e】,如下圖:
2,記得判斷file是否為空,如下圖:
3,怎么展示文本信息,請見ToolWindow的創建;
回顧我們今天的文章主要解決的兩個問題,如下:
其實到這里我們一個比較完整的插件已經開發完成了。接下來要講的就是怎么去發布我們的插件,還有就是整個項目的總結。
那到這里,今天我們要講的主要內容就告一段落了。
謝謝支持~~~