可以在线看黄的网站-可以免费在线看黄的网站-可以免费看污视频的网站-可以免费看毛片的网站-欧美电影免费看大全-欧美电影免费

Rust到底能不能成?2021年用什么IDE開發Rust?(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到底能不能成?2021年用什么IDE開發Rust?(rust做什么開發)

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

  • 代碼補全

  • jump to definition、peek definition、find all references 與 symbol search

  • 類型和文檔懸停提示

  • 代碼格式化

  • 重構

  • 錯誤糾正并應用建議

  • snippets

  • 構建任務

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

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

  • for – 創建循環

  • unimplemented

  • unreachable

  • print(ln)

  • assert(_eq)

  • macro_rules – 聲明宏

  • if let Option – 在某些情況下執行 if let 語句

  • spawn – 創建線程

  • extern crate – 插入 extern crate 語句

此 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 的相關實現:

  • Eclipse

  • Emacs

  • Gedit

  • Gnome Builder

  • Kate

  • Sublime Text

  • Vim

  • VS Code

  • Atom

  • Kakoune

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

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

  • 支持原生代碼提示

  • 支持強大的快捷鍵功能

  • 代碼快速格式化

  • snippets

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

Rust到底能不能成?2021年用什么IDE開發Rust?(rust做什么開發)

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

  • 智能 C/C 編輯:原生 C/C 支持,包括現代 C 標準、libc 和 Boost。

  • 導航能力:即時導航到字符的聲明或上下文用法,在整個項目中按名稱搜索類、文件與字符,并且提供具有結構和層次結構視圖的代碼庫。

  • 代碼生成:通過簡單的快捷鍵就可以完成一些代碼生成操作,包括:添加類成員、重寫/實現函數、生成構造函數/析構函數、getter/setter,判斷等式、關系運算和流輸出運算、使用語句封裝代碼塊與根據實際用法生成聲明。

  • 重構:提供重命名符號、在層次結構中上/下移動成員與更改函數簽名等功能。

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

Eclipse IDE的Rust插件:Eclipse Corrosion

Rust到底能不能成?2021年用什么IDE開發Rust?(rust做什么開發)

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 集成等功能。特性包括:

  • Syntastic 錯誤檢測:rust.vim 默認將自動將 cargo 作為語法檢查器注冊到 Syntastic。

  • 可集成 Tagbar 查看源碼

  • rustfmt 格式化代碼:安裝了 rustfmt 的話,可以使用 :RustFmt 命令格式化代碼。

  • Playpen 集成::RustPlay 命令會將當前選擇內容發送給 Rust playpen,如果未選擇任何內容則將當前緩沖區發送給 Rust playpen。

  • 測試:在 cargo 項目中,:RustTest 命令將即時運行測試。

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

Rust到底能不能成?2021年用什么IDE開發Rust?(rust做什么開發)

相關新聞

聯系我們
聯系我們
在線咨詢
分享本頁
返回頂部