在經過多個專案上的試用後,我們進入了持續的修修補補,以及功能的增強階段。終於,我們釋出了 Shire 1.1 版本,這個版本帶來了更強大的互動支援, 多功能升級 AI 與 IDE 的整合體驗。
-
互動:豐富與大量 IDE 外掛的互動,可以支援部分三方外掛的 UI 入口
-
語言:支援新的語言 ProtoBuf,以及對 JavaScript 的支援最佳化
-
功能:支援更多的程式碼度量,以及程式碼質量的檢查等
詳細可以見 GitHub 上的 CHANGELOG。
解鎖更多互動入口,全面提升自定義靈活性

基於我們在不同專案的探索試驗,我們增加了更多的互動入口,以便於藉助 IDE 豐富的外掛生態,來提升 Shire 的自定義靈活性。
RightPanel 輸出展示

在這個版本中,我們增加了新的
Interaction
: RightPanel
,用於提供更好的輸出顯示。我們在設計 Shire 時,定位的是一個智慧體程式語言,因此 在並不想讓使用者過多的關注到輸出。但是在實際的使用中,右側的輸出展示是非常重要的,因此我們增加了這個功能。儘管,我們還不打算在這個版本中新增聊天的功能,但是我們會考慮在後續的版本中增加這個功能。與 AutoDev 相似,RightPanel 也支援 Copy, Paste, Insert 三種操作(Action)。未來,我們也將提供自定義的操作能力。
更加豐富的 ActionLocation
相似的,在新的版本中,我們添加了四種新的入口(ActionLocation),以便於使用者可以在不同的地方新增自定義的 Action。
-
DatabaseMenu:在 IDEA 的 Database 右鍵選單列表(
Ultimate
版本才支援)中新增的 Action。

-
ConsoleMenu:在 IDEA 的執行結果右鍵選單列表(Menu)中新增的 Action。

-
VCSLogMenu:在 IDEA 的 VCS Log 右鍵選單列表中新增的 Action。

-
ExtSonarQubeMenu:在 Sonarlint 外掛的面板(Panel)中新增的 Action。

未來,我們將進一步對能力進行抽象,讓你可以在任意的地方新增自定義的 Action。
外部函式互動
在 issue#146 和 issue#149 中,使用 Python 語言進行互動時,會出現一些問題。在這個版本中,我們優化了
thread
函式的邏輯,使得你現在,可以 直接呼叫外部的 Python UI 應用,諸如於 issue 中使用的 tk 框架。
你可以在 Shire 中直接喚起這個應用,然後透過這個應用來進行互動。這樣,你就可以在 Shire 中,直接呼叫外部的 Python 應用,來進行互動。
新語言支援:ProtoBuf
考慮到 ProtoBuf 在微服務架構中的重要性,我們在這個版本中增加了對 ProtoBuf 的支援。
ProtoBuf 是一個高效的 IDL(Interface Description Language)工具,它可以用於定義資料結構、服務介面等。通常,我們在微服務架構中會使用 ProtoBuf 來定義服務介面,以及資料結構。
由於 ProtoBuf 的語法比較簡單,只需要提供定義 Message 和 Service 兩個部分的支援,所以現有的版本支援:
-
Structure 分析:基於 File 和 Class 級別的結構分析
-
工具上下文:提供 ProtoBuf 版本資訊
-
PsiVariable:提供通用的語法支援
儘管,可能還存在一些其它使用 ProtoBuf 的場景,還需要進一步的支援,但是我們會在後續的版本中按需增加。
其它更新
提示詞策略影響下的程式碼度量
考慮到程式碼的複雜度、行數、變更頻率等會影響 Code Review 等策略,我們加入了對程式碼度量的支援。
-
changeCount:Git 統計當前檔案的變更次數
-
complexity:計算當前元素/檔案的複雜度
-
lineCount:統計當前元素/檔案的行數
語法完善
-
支援結合登入使用者的資訊,來生成程式碼提交資訊。
-
支援 if 語句的語法。
感謝
感謝 @liuk 提供的 PR,修復了一系列的報錯,以及語法問題。
其它
從 GitHub 下載最新版本:https://github.com/phodal/shire 。