Kyde:高效能 Rust 為基礎的 Git Commit 與 Diff 編輯器
Kyde:高效能 Rust 為基礎的 Git Commit 與 Diff 編輯器
Kyde 是一款快速、原生的 commit 與 diff 程式碼編輯器,旨在取代笨重的基於 JVM 的 IDE,適合主要使用編輯器來檢視變更與提交程式碼的開發者。它以 Rust 與 GPUI 框架構建,著重於低延遲效能與精簡的 Git 工作流程。
GPU 加速效能
Kyde 透過 GPUI 框架(與 Zed 編輯器相同的框架)使用原生 GPU 渲染,達成高效能的繪製。即使處理極大型檔案,也能保持流暢捲動與低延遲。
- Viewport 虛擬化: 只在每一幀渲染目前螢幕上可見的列,避免在巨量檔案上出現效能退化。
- 非同步語法突顯: 大檔案會立即以純文字打開,語法突顯在背景執行,避免阻塞 UI。
- 效能基準: 作者回報在約 120fps 的速度下捲動 37,000 行的
package-lock.json檔案。
核心 Git 工作流程功能
Kyde 提供視覺化介面來執行常見的 Git 操作,實質上讓 git add -p 變得可視。它聚焦於檢視與提交變更所需的核心工具。
Commit 與 Diff 檢視
Kyde 具備並排 diff 檢視,支援單字層級的突顯。中間的 gutter 允許使用者直接在 UI 中暫存或還原特定程式碼區塊,提供對提交內容的細緻控制。
分支與檔案管理
- 分支切換器: 可搜尋的樹狀結構,將分支組織成資料夾,並追蹤最近的本機根目錄。
- 回滾: 原生視窗搭配勾選框樹狀結構,讓使用者可選擇性回滾變更,並可選擇刪除新增的檔案。
- 推送: 整合於狀態列的按鈕與右鍵選單,當本機領先上游分支時可直接推送變更。
搜尋與導覽
Kyde 實作多項類 IDE 的導覽工具,以維持工作效率:
- 模糊搜尋:
⌘⇧O/⌘P用於「前往檔案」,⌘⇧A用於「尋找動作」。 - 全域搜尋:
⌘⇧F(利用git grep)在整個倉庫中執行全文內容搜尋。 - Scratch 檔案: 專用的暫時緩衝區,用於臨時筆記或草稿。
技術棧與架構
Kyde 從頭開始使用一組高效能函式庫構建:
- GPUI: GPU 渲染的 GUI 框架(Apache-2.0)。
- Git: 應用程式會呼叫系統的
git,而非使用libgit2。 - Similar: 用於行與單字 diff(Apache-2.0)。
- Tree-sitter: 透過按需語言套件提供語法突顯(包括 TypeScript、Rust、JSON、Python 與 Go)。
安裝與設定
Kyde 主要以 macOS 應用程式形式發佈。雖然程式碼是跨平台的,且 GPUI 可在 Windows 與 Linux 上執行,作者目前僅提供 macOS 的預建發行版。
- 安裝: 使用者可從 GitHub releases 頁面下載
kyde-macos.zip。 - 安裝說明: 由於應用尚未簽署程式碼,macOS Gatekeeper 可能會阻擋首次啟動;使用者必須右鍵點擊並選擇「Open」或透過
xattr清除 quarantine 標記。 - Shell 整合: Kyde 提供可選的
kyshell 指令符號連結於~/.local/bin,以便直接從終端開啟倉庫。 - 快捷鍵映射: 編輯器提供 WebStorm 與 VSCode 的預設快捷鍵組合,以降低上手阻力。
社群回饋與討論
社群對此專案的反應不一,既關注技術實作,也關心專案的起源。
"我喜歡它的外觀。但終端已經有相當優秀的 diff 與 commit 工具。"
部分使用者希望加入更多無障礙功能,例如針對散光使用者的亮色主題,並支援 Git 子模組。另有使用者質疑相較於自訂的 Neovim 設定或 AI 代理程式碼工具,原生應用的價值何在。
此外,關於專案的「vibe‑coding」面向也引發大量討論,因為作者坦承不懂 Rust。此專案是使用 AI 協助完成的,這在開發者間激起了關於 AI 產生程式碼是否算程式設計的辯論。
已知限制
- 發行版: 預建二進位檔僅提供 macOS。
- 編輯器功能: 目前缺少軟換行與光標跟隨捲動。
- 緩衝區管理: 編輯器目前使用平面
String作為緩衝區;未來計畫改用 rope 結構,以更有效處理極大型編輯。