国产粉嫩无码不卡在线观看,酒店大战丝袜高跟鞋人妻,特级精品毛片免费观看,欧美亚洲日本国产综合在线

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

出品|開(kāi)源中國(guó)

文|大東

隨著 Rust 基金會(huì)的成立,“Rust 到底能不能成?”再次成為社區(qū)里的熱門話題。

此次由微軟、谷歌、AWS、華為四大全球頂級(jí)科技廠商與 Rust 的創(chuàng)造者 Mozilla 聯(lián)合創(chuàng)立開(kāi)源基金會(huì),無(wú)疑也給國(guó)內(nèi)那些想要上 Rust 車的開(kāi)發(fā)者朋友打了一劑強(qiáng)心針。不少朋友表示自己要第 n 次開(kāi)始學(xué)習(xí) Rust 了。

我們結(jié)合此前的內(nèi)容,整理更新了一份比較有代表性的 Rust 可用 IDE 與相關(guān)插件等工具的列表,希望對(duì)想學(xué)習(xí) Rust 的開(kāi)發(fā)者有所幫助。

Rust語(yǔ)言服務(wù)器:Rust Language Server

Rust 語(yǔ)言服務(wù)器(RLS)基于 LSP(Language Server Protocol),即語(yǔ)言服務(wù)器協(xié)議,LSP 由紅帽、微軟和 Codenvy 聯(lián)合推出,可以讓不同的程序編輯器與集成開(kāi)發(fā)環(huán)境(IDE)方便地嵌入各種編程語(yǔ)言,允許開(kāi)發(fā)人員在最喜愛(ài)的工具中使用各種語(yǔ)言來(lái)編寫程序。

它通過(guò)用于開(kāi)發(fā)工具和語(yǔ)言服務(wù)器間通信的 JSON-RPC 標(biāo)準(zhǔn),能夠讓編程工具提供實(shí)時(shí)反饋的詳細(xì)信息并以此實(shí)現(xiàn)多種強(qiáng)大功能,比如符號(hào)搜尋、語(yǔ)法分析、代碼自動(dòng)補(bǔ)全、移至定義、描繪輪廓與重構(gòu)等。Rust 語(yǔ)言服務(wù)器集成了這些邏輯作為后端,并通過(guò)標(biāo)準(zhǔn)的 LSP 提供給前端工具,它被設(shè)計(jì)為與前端無(wú)關(guān),可以被不同的編輯器和 IDE 廣泛采用,但目前項(xiàng)目團(tuán)隊(duì)僅在 VS Code 中進(jìn)行測(cè)試。用戶可以在 VS Code 擴(kuò)展商店中找到基于 RLS 實(shí)現(xiàn)的 Rust 官方插件。

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

這個(gè)就是 Rust 官方為 Visual Studio Code 提供的 Rust 插件,該插件最初是 Rust 官方語(yǔ)言服務(wù)器(RSL)的前端參考實(shí)現(xiàn),現(xiàn)在也支持另一個(gè)來(lái)自社區(qū)維護(hù)的 Rust 服務(wù)器 rust-analyzer(RA),用戶可根據(jù)個(gè)人偏好在 RSL 或者 RA 之間選擇安裝一個(gè)。該插件支持:

  • 代碼補(bǔ)全

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

  • 類型和文檔懸停提示

  • 代碼格式化

  • 重構(gòu)

  • 錯(cuò)誤糾正并應(yīng)用建議

  • snippets

  • 構(gòu)建任務(wù)

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

snippets 是擴(kuò)展為通用樣板的代碼模板。輸入時(shí),Intellisense 會(huì)將代碼段名稱包括在內(nèi)作為選項(xiàng),可供快捷鍵選中。提供了以下 snippets:

  • for – 創(chuàng)建循環(huán)

  • unimplemented

  • unreachable

  • print(ln)

  • assert(_eq)

  • macro_rules – 聲明宏

  • if let Option – 在某些情況下執(zhí)行 if let 語(yǔ)句

  • spawn – 創(chuàng)建線程

  • extern crate – 插入 extern crate 語(yǔ)句

此 Rust 插件提供了使用相關(guān)的 cargo 命令進(jìn)行構(gòu)建、運(yùn)行和測(cè)試的任務(wù),可以使用 ctrl shift b 進(jìn)行構(gòu)建,可通過(guò)命令面板中的“運(yùn)行任務(wù)”查看其它任務(wù)。這些任務(wù)內(nèi)容寫在 task.json 中,插件不會(huì)覆蓋現(xiàn)有任務(wù),因此可以自定義任務(wù)。

社區(qū)驅(qū)動(dòng)的Rust語(yǔ)言服務(wù)器rust-analyzer

rust-anlyzer(RA)是除了 RSL 以外的另一個(gè) Rust 語(yǔ)言服務(wù)器,由社區(qū)驅(qū)動(dòng)開(kāi)發(fā)。自 2019 年末發(fā)布第一個(gè)預(yù)編譯 Release 以來(lái),RA 都會(huì)在每周二穩(wěn)定發(fā)布新版本并保持至今。經(jīng)過(guò)快速的迭代,目前 RA 各方面的優(yōu)化和提升已經(jīng)超越 RSL,所以也被官方納入 RSL 2.0 計(jì)劃的一部分。Rust 的 VS Code 官方插件也已經(jīng)增加了對(duì) RA 的支持。

RA 目前已經(jīng)支持 Vim、Emac、Sublime Text 3 和 VSCode 等編輯器,可通過(guò)官方文檔獲取詳細(xì)的安裝指導(dǎo)。

Rust代碼補(bǔ)全程序:Racer

前面提到 RSL 和 RA 都是 Rust 語(yǔ)言服務(wù)器,作為 IDE 與編輯器的后端提供通用能力。而 Racer 是 Rust 語(yǔ)言服務(wù)器中的一個(gè)靜態(tài)庫(kù),它提供了代碼自動(dòng)補(bǔ)全功能。

許多 IDE 等工具可以輕松集成這樣的底層功能,目前包括以下工具都有集成 Racer 的相關(guān)實(shí)現(xiàn):

  • Eclipse

  • Emacs

  • Gedit

  • Gnome Builder

  • Kate

  • Sublime Text

  • Vim

  • VS Code

  • Atom

  • Kakoune

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

IntelliJ Rust 是 IntelliJ 的 Rust 插件,采用 Kotlin 開(kāi)發(fā),功能特性包括:

  • 支持原生代碼提示

  • 支持強(qiáng)大的快捷鍵功能

  • 代碼快速格式化

  • snippets

IntelliJ Rust 和 intellij-toml 為 IDEA,CLion,PyCharm 和其他 JetBrains IDE 帶來(lái)了 Rust 和 TOML 支持。

語(yǔ)言支持包括語(yǔ)法突出顯示,完成,導(dǎo)航和其他代碼洞察功能。可以使用 Cargo 命令并運(yùn)行 Clippy 或 Rustfmt,而無(wú)需離開(kāi) IDE。CLion 和 IntelliJ IDEA Ultimate 中提供了調(diào)試器和分析器。CLion 的集成還支持 CPU 分析。對(duì)于所有其他 IDE,可以使用本機(jī)調(diào)試插件進(jìn)行調(diào)試。

C/C 跨平臺(tái)集成開(kāi)發(fā)環(huán)境:CLion

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

CLion 是專門用于 C/C 開(kāi)發(fā)的 IDE,它的特性包括:

  • 智能 C/C 編輯:原生 C/C 支持,包括現(xiàn)代 C 標(biāo)準(zhǔn)、libc 和 Boost。

  • 導(dǎo)航能力:即時(shí)導(dǎo)航到字符的聲明或上下文用法,在整個(gè)項(xiàng)目中按名稱搜索類、文件與字符,并且提供具有結(jié)構(gòu)和層次結(jié)構(gòu)視圖的代碼庫(kù)。

  • 代碼生成:通過(guò)簡(jiǎn)單的快捷鍵就可以完成一些代碼生成操作,包括:添加類成員、重寫/實(shí)現(xiàn)函數(shù)、生成構(gòu)造函數(shù)/析構(gòu)函數(shù)、getter/setter,判斷等式、關(guān)系運(yùn)算和流輸出運(yùn)算、使用語(yǔ)句封裝代碼塊與根據(jù)實(shí)際用法生成聲明。

  • 重構(gòu):提供重命名符號(hào)、在層次結(jié)構(gòu)中上/下移動(dòng)成員與更改函數(shù)簽名等功能。

通過(guò) IntelliJ Rust 插件,CLion 提供了對(duì) Rust 的高度支持,除了基本的功能,它還為 Rust 提供了完善的調(diào)試器、CPU Profiler 和 Valgrind 內(nèi)存檢查等能力。

Eclipse IDE的Rust插件:Eclipse Corrosion

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

Eclipse Corrosion 是 Eclipse IDE 中的 Rust 版本,本質(zhì)上是一個(gè) Eclipse IDE 的 Rust 插件,通過(guò)與 Rust 語(yǔ)言服務(wù)器和 Cargo 集成提供了豐富的開(kāi)發(fā)與調(diào)試功能。它可以作為完整的 Eclipse 軟件包下載。

除了 Rust 語(yǔ)言服務(wù)器提供的功能外,Corrosion 還可以幫助用戶更好地調(diào)試 Rust 程序,比如提供了查看變量、GDB 控制臺(tái)與斷點(diǎn)等功能。另一方面,由于基于 Eclipse,所以像項(xiàng)目大綱、暗黑主題、問(wèn)題查看與 Git 集成等特性也支持,Eclipse 用戶可以輕松適應(yīng)。

Vim的Rust插件:rust.vim

Rust 官方實(shí)現(xiàn)了一個(gè) Vim 插件 rust.vim,愛(ài)折騰的開(kāi)發(fā)者可以用來(lái)配置 Vim 下的 Rust 開(kāi)發(fā)環(huán)境。rust.vim 提供了 Rust 文件檢測(cè)、語(yǔ)法高亮、格式設(shè)置與語(yǔ)法檢測(cè)工具 Syntastic 集成等功能。特性包括:

  • Syntastic 錯(cuò)誤檢測(cè):rust.vim 默認(rèn)將自動(dòng)將 cargo 作為語(yǔ)法檢查器注冊(cè)到 Syntastic。

  • 可集成 Tagbar 查看源碼

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

  • Playpen 集成::RustPlay 命令會(huì)將當(dāng)前選擇內(nèi)容發(fā)送給 Rust playpen,如果未選擇任何內(nèi)容則將當(dāng)前緩沖區(qū)發(fā)送給 Rust playpen。

  • 測(cè)試:在 cargo 項(xiàng)目中,:RustTest 命令將即時(shí)運(yùn)行測(cè)試。

國(guó)外也已經(jīng)有開(kāi)發(fā)者整理了一份更為全面的 IDE 與插件等工具對(duì) Rust 支持狀態(tài)的概述表單,并保持實(shí)時(shí)更新:

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

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。