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