Rust目前有比較靠譜的IDE嗎?

如題,Rust目前有比較靠譜的IDE嗎?

沒有的話Mozilla為什麼不開發一個呢?


許多回答都是直接推薦了具體的 IDE。我想額外補充一點的是,不管你喜愛哪一款 IDE,它們提供的功能都大致一樣,比如:

  • 編輯過程自動提示
  • 標記編譯錯誤,lint 警告等
  • 代碼高亮
  • 代碼查找、自動跳轉
  • 重構

而這些東西對於一門語言來說是通用的。目前來說,大部分編輯器都是使用的 GitHub - phildawes/racer: Rust Code Completion utility 這個工具統一實現的這些功能。所以,選擇哪個 IDE 體驗差別不大。

但是,Racer這個工具還有許多弊端,某些功能很難實現,而且它依賴的是不穩定的編譯器內部庫。所以,Rust team 準備提供一個更高級的工具來完成這些功能。具體設計參見: rfcs/1317-ide.md at master · rust-lang/rfcs · GitHub

它的主要思路是,提供一個後台常駐進程:Rust Language Server,它會自己不斷得持續分析源碼,並將相關分析結果直接保存在內存中。然後IDE可以通過常見的進程通信方式與它進行交互。當這個功能完成之後,可以提供最準確完整的編輯體驗,而且它可以很快。

所以,對於問題「沒有的話Mozilla為什麼不開發一個呢?」,其實人家想得更遠,更周到,而且已經開始開發了。


其實以前官網推的是這個 https://sekao.net/solidoak/ ,不過好難配置,萬一走運跑起來了,也不是很好看。我一般都是用emacs或者atom。


今天看到 Rust Language Server 的 Alpha 2 版本 Release 了,

可以預計很快Rust 的 各類 IDE 應該就要有「質」的變化了。


這是一個關於 IDE 和編輯器對 Rust 支持的表格和列表
https://areweideyet.com/

Rust Language Server 已經有測試版了,想要嘗鮮的可以用了。

這東西的思路就是由編譯器以 C/S 方式提供 IDE 所需的語言相關功能,編輯器只要實現了客戶端就可以支持各種語言了。是 MS 提出來的。


emacs


好像沒有。RustDT,visualRust,Atom的插件的自動補全只能補全包的引用,但是不能補全變數的成員函數,和動態語言能做到的程度差不多,甚至還差點。


我覺得 IntelliJ/Rust 挺不錯的

目前為止我覺得 IDE 最實用的功能就是跳轉到定義,而這方面 IntelliJ/Rust 已經夠用了。

然後我講解下這款 IDE 怎麼上手。

先是到這裡下載主程序 https://www.jetbrains.com/idea/download/

點擊 Download,然後就是刷知乎等下載完成了

下載途中可以想想等下要打開哪個 Rust 項目,或者先去

cargo new

一個

雙擊應用程序,點下一步開始安裝。

勾上立刻運行,點完成。

直接選擇沒有舊的安裝,點確定

點接受協議

選跳過設置並設為默認

選擇右下角的 配置 ==》 插件

點下方的瀏覽倉庫

搜 rust,然後選中那一項,並點右邊的綠色安裝按鈕

安裝

安裝完後選重啟 IDEA

確認重啟

選第三個,打開項目。

這時候可以切出去 cargo new 一個,我這裡隨便選了個項目

然後可以去選擇 文件==》設置 關聯一下標準庫了。

如果你還沒有標準庫的代碼,可以切出去

git clone --depth 1 https://github.com/rust-lang/rust

下載一個

選好標準庫所在的 src 文件夾

點確定

這下可以跳轉到標準庫的定義了,比如游標移到 Drop 這個 trait 上,然後按下 ctrl + b

然後就跳到了標準庫的定義中!

或者我們看一下這裡的 GLSL 是什麼類型

同樣游標移過去按 ctrl + b

就跳到了對應的定義~接下來可以展開進一步的冒險了,happy hacking!


比如這個?

GitHub - rust-lang/rust.vim: Vim configuration for Rust.

(逃


https://intellij-rust.github.io/


這個是用純文本的:[oeasy]教您玩轉rust編程視頻教程_野生技術協會_科技_bilibili_嗶哩嗶哩

這個是用emacs的:[oeasy]教您玩轉rust編程視頻教程_野生技術協會_科技_bilibili_嗶哩嗶哩

這個是用intelliJ的:[oeasy]教您玩轉rust編程視頻教程_野生技術協會_科技_bilibili_嗶哩嗶哩

您可以自己比較一下


Visual Studio Code + 下面的插件

https://marketplace.visualstudio.com/items?itemName=rust-lang.rust

官方出品,目測目前最好用的了


vscode的插件除了沒有debug功能基本完美


Spacemacs,目前體驗過的最完整簡單的Rust支持……配合ycmd和racer食用更佳。


intellij idea加插件


剛開始學,還好fedora的vim默認就有rust語法高亮。


作為一個入門者,只會用vim。


ycm似乎支持rust了(逃

GitHub - Valloric/YouCompleteMe: A code-completion engine for Vim


See Are we (I)DE yet?


推薦閱讀:

集線器和交換機的區別?
勸退偽化生和傳統工科並推崇CS是不是知乎上的一種政治正確?為什麼會這樣呢?
如果出現一種實用的新型計算機(未來計算機,比如基於憶阻器的),那麼需要學習新的編程語言么?
在軟體開發的職業領域裡,在什麼樣的情況下才會遇到 : 計算機編程藝術《The Art of Computer Programming》以及 演算法導論《Introduction to Algorithms》 中的知識呢?
函數調用過程中棧到底是怎麼壓入和彈出的?

TAG:編程語言 | 計算機科學 | Rust編程語言 |