Rust 到底能不能成?2021 年用什麼 IDE 開發 Rust ?

隨着 Rust 基金會的成立,“Rust 到底能不能成?” 再次成爲社區裏的熱門話題。

此次由微軟、谷歌、AWS、華爲四大全球頂級科技廠商與 Rust 的創造者 Mozilla 聯合創立開源基金會,無疑也給國內那些想要上 Rust 車的開發者朋友打了一劑強心針。不少朋友表示自己要第 n 次開始學習 Rust 了。

我們結合此前的內容,整理更新了一份比較有代表性的 Rust 可用 IDE 與相關插件等工具的列表,希望對想學習 Rust 的開發者有所幫助。

Rust 語言服務器:Rust Language Server

Rust 語言服務器(RLS)基於 LSP(Language Server Protocol),即語言服務器協議,LSP 由紅帽、微軟和 Codenvy 聯合推出,可以讓不同的程序編輯器與集成開發環境(IDE)方便地嵌入各種編程語言,允許開發人員在最喜愛的工具中使用各種語言來編寫程序。

它通過用於開發工具和語言服務器間通信的 JSON-RPC 標準,能夠讓編程工具提供實時反饋的詳細信息並以此實現多種強大功能,比如符號搜尋、語法分析、代碼自動補全、移至定義、描繪輪廓與重構等。Rust 語言服務器集成了這些邏輯作爲後端,並通過標準的 LSP 提供給前端工具,它被設計爲與前端無關,可以被不同的編輯器和 IDE 廣泛採用,但目前項目團隊僅在 VS Code 中進行測試。用戶可以在 VS Code 擴展商店中找到基於 RLS 實現的 Rust 官方插件。

這個就是 Rust 官方爲 Visual Studio Code 提供的 Rust 插件,該插件最初是 Rust 官方語言服務器(RSL)的前端參考實現,現在也支持另一個來自社區維護的 Rust 服務器 rust-analyzer(RA),用戶可根據個人偏好在 RSL 或者 RA 之間選擇安裝一個。該插件支持:

值得一提的是 snippets(代碼片段)和構建任務這兩個特性。

snippets 是擴展爲通用樣板的代碼模板。輸入時,Intellisense 會將代碼段名稱包括在內作爲選項,可供快捷鍵選中。提供了以下 snippets:

此 Rust 插件提供了使用相關的 cargo 命令進行構建、運行和測試的任務,可以使用 ctrl + shift + b 進行構建,可通過命令面板中的 “運行任務” 查看其它任務。這些任務內容寫在 task.json 中,插件不會覆蓋現有任務,因此可以自定義任務。

社區驅動的 Rust 語言服務器 rust-analyzer

rust-anlyzer(RA)是除了 RSL 以外的另一個 Rust 語言服務器,由社區驅動開發。自 2019 年末發佈第一個預編譯 Release 以來,RA 都會在每週二穩定發佈新版本並保持至今。經過快速的迭代,目前 RA 各方面的優化和提升已經超越 RSL,所以也被官方納入 RSL 2.0 計劃的一部分。Rust 的 VS Code 官方插件也已經增加了對 RA 的支持。

RA 目前已經支持 Vim、Emac、Sublime Text 3 和 VSCode 等編輯器,可通過官方文檔獲取詳細的安裝指導。

Rust 代碼補全程序:Racer

前面提到 RSL 和 RA 都是 Rust 語言服務器,作爲 IDE 與編輯器的後端提供通用能力。而 Racer 是 Rust 語言服務器中的一個靜態庫,它提供了代碼自動補全功能。

許多 IDE 等工具可以輕鬆集成這樣的底層功能,目前包括以下工具都有集成 Racer 的相關實現:

IntelliJ 的 Rust 插件:IntelliJ Rust 和 intellij-toml

IntelliJ Rust 是 IntelliJ 的 Rust 插件,採用 Kotlin 開發,功能特性包括:

IntelliJ Rust 和 intellij-toml 爲 IDEA,CLion,PyCharm 和其他 JetBrains IDE 帶來了 Rust 和 TOML 支持。

語言支持包括語法突出顯示,完成,導航和其他代碼洞察功能。可以使用 Cargo 命令並運行 Clippy 或 Rustfmt,而無需離開 IDE。CLion 和 IntelliJ IDEA Ultimate 中提供了調試器和分析器。CLion 的集成還支持 CPU 分析。對於所有其他 IDE,可以使用本機調試插件進行調試。

C/C++ 跨平臺集成開發環境:CLion

CLion 是專門用於 C/C++ 開發的 IDE,它的特性包括:

通過 IntelliJ Rust 插件,CLion 提供了對 Rust 的高度支持,除了基本的功能,它還爲 Rust 提供了完善的調試器、CPU Profiler 和 Valgrind 內存檢查等能力。

Eclipse IDE 的 Rust 插件:Eclipse Corrosion

Eclipse Corrosion 是 Eclipse IDE 中的 Rust 版本,本質上是一個 Eclipse IDE 的 Rust 插件,通過與 Rust 語言服務器和 Cargo 集成提供了豐富的開發與調試功能。它可以作爲完整的 Eclipse 軟件包下載。

除了 Rust 語言服務器提供的功能外,Corrosion 還可以幫助用戶更好地調試 Rust 程序,比如提供了查看變量、GDB 控制檯與斷點等功能。另一方面,由於基於 Eclipse,所以像項目大綱、暗黑主題、問題查看與 Git 集成等特性也支持,Eclipse 用戶可以輕鬆適應。

Vim 的 Rust 插件:rust.vim

Rust 官方實現了一個 Vim 插件 rust.vim,愛折騰的開發者可以用來配置 Vim 下的 Rust 開發環境。rust.vim 提供了 Rust 文件檢測、語法高亮、格式設置與語法檢測工具 Syntastic 集成等功能。特性包括:

國外也已經有開發者整理了一份更爲全面的 IDE 與插件等工具對 Rust 支持狀態的概述表單,並保持實時更新:

詳情可查看:https://areweideyet.com

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Wk9PY0fJvzF6zWcrB241kw