Shire1.1釋出:更強大的互動支援,升級AI智慧體與IDE的整合體驗

在經過多個專案上的試用後,我們進入了持續的修修補補,以及功能的增強階段。終於,我們釋出了 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 。


相關文章