基於Rust的Zed編輯器已開源,內置對OpenAI和GitHub Copilot的支持

2024年2月6日 23点热度 0人点赞

作者丨Tim Anderson

編譯丨諾亞

出品 | 51CTO技術棧(微信號:blog51cto)

Zed 編輯器項目(目前仍處於預發佈階段)現已在 AGPL、GPL 和 Apache 許可下開源。該編輯器以其高性能和多種AI輔助選擇為特色,但目前仍處於預覽階段且僅限於Mac平臺使用。

昨日,Zed創始人內森·索博(Nathan Sobo)在一篇帖子中解釋道,Zed項目在GitHub上的代碼庫中,編輯器部分采用了GPL許可,服務器端組件則使用了AGPL(GNU Affero通用公共許可證),而GPUI(GPU加速用戶界面)部分采用了Apache 2.0許可。GPUI是由Zed團隊開發的一款Rust UI框架。

在此之前,索博曾創建過Atom編輯器以及Electron框架,後者被全球最流行的編輯器和輕量級IDE——VS Code所采用。Electron基於Chromium瀏覽器組件和V8 JavaScript引擎構建,而Zed具有非常不同的代碼基礎,它用Rust編寫並編譯成原生代碼。

與擁有超過55,000個擴展插件的VS Code不同,Zed目前僅具備初步的插件模型,並未形成完整的擴展生態系統;其FAQ中指出,“在Zed開源之前我們不會添加插件系統,但一旦完成開源,我們將致力於擴展性功能的開發。”這表明未來不久將會在這方面有更多的工作進行。

得益於Rust的高性能以及缺乏插件,Zed運行速度極快,針對開發者對VS Code的最大痛點——性能問題提供了解決方案。

有開發者評論Zed新聞時表示:“VSCode對我來說總是感覺極其緩慢……VSCode在基本代碼檢查和語法檢測方面的滯後讓我感到極度煩惱,最終不得不放棄使用它。”

另一位開發者則說:“對於那些還沒試過Zed的人來說,這是我25年開發生涯中首次使用的不讓人分心的GUI編輯器。很難描述當我擺脫其他編輯器中的各種圖標、菜單、顏色等像聖誕樹般的場景時,我的專註度提高了多少。”

盡管Zed所提供的AI輔助功能在體驗上尚顯粗糙,但對於偏好最大程度控制的開發者而言可能會感到滿意。Zed同時支持GitHub Copilot和OpenAI。

關於Copilot的集成,Zed團隊成員Mikayla Maki表示:“平衡其視覺和心理負擔至關重要,因為過於積極的Copilot可能適得其反,與現有如LSP自動補全等功能產生沖突。因此,我們引入了按語言禁用Copilot的設置,增加了75毫秒的文本建議延遲,並在出現沖突時優先考慮語言本身的LSP(語言服務器協議)而非Copilot。”

圖片

Zed編輯器的OpenAI助手面板是一個高度可配置的獨特功能。開發者可以選擇模型類型,並且在任何時候,甚至在與AI對話過程中都可以更改模型。使用這一功能需要擁有OpenAI賬號,並在Zed中配置API密鑰。這些密鑰是按照使用的令牌數量計費的,而Zed會始終顯示選定模型剩餘的令牌數。

與OpenAI大型語言模型的交互通過CMD-Enter提交,而不是僅用Enter鍵,這樣做的目的是使其“盡可能接近常規編輯器的感覺,因此按下Enter鍵隻會插入新的一行”。這也意味著用戶很難意外消耗令牌。響應內容會實時返回,如果看起來沒有幫助,可以通過按下Escape鍵取消請求。

此外,Zed還具備內聯助手功能,能夠查看周圍代碼的上下文信息。Zed團隊的另一位成員Marshall Bowers曾發佈過關於利用AI進行內聯文檔編寫以及將代碼從一個模板系統翻譯到另一個模板系統的案例,例如執行類似“使用auk的DSL方式重寫這段HTML,就像上面的post_link函數那樣”的命令。他表示,在處理大部分模板代碼時,最終都采用了AI協助完成。

根據路線圖規劃,未來Zed將支持無需OpenAI密鑰的AI輔助功能,同時提供終端中的內聯智能輔助、簡化後的助手界面,以及讓AI能夠“在內聯狀態下訪問緩沖區、文件、LSP、終端提示符等內容”。

除了缺乏擴展插件之外,Zed還有一些其他問題。目前,對於Rust、TypeScript和Python等語言的支持較好,許多其他語言部分支持,但也有一些語言,比如如Microsoft的C#,尚未得到任何支持,盡管功能描述中提到:“正在積極開發使Zed連接任意語言服務器的能力”。

另一個問題是Zed當前僅限Mac平臺使用。針對此問題有一個GitHub議題指出,計劃增加對其他平臺的支持。路線圖中包含了Linux和Web端支持(Web端可能采用Rust可以編譯為目標的WebAssembly技術),但在撰寫本文時並未提及Windows平臺,這暗示Windows版本的開發可能需要更多時間,或者用戶需通過Windows Subsystem for Linux(WSL)來間接使用。

參考鏈接:
https://devclass.com/2024/01/25/rust-based-zed-editor-now-open-source-with-built-in-support-for-openai-and-github-copilot/

來源: 51CTO技術棧