Rust 開發環境最佳設置
在這篇文章中,我們以 VSCode 作爲 Rust 開發的 IDE。VSCode 是我的首選,因爲它可以在所有主流操作系統上使用,並且具有高度可配置性。
在本文中,會涉及到以下內容:
-
安裝 6 個 VSCode 擴展插件;
-
設置 3 個 Cargo 工具,用於配置自動檢查、格式化和實時加載;
-
使用 github action 進行持續集成;
VSCode 擴展插件
1,rust-analyzer
首先,是 rust analyzer,它是 rust 的官方語言服務器,提供代碼補全、跳轉、嵌入提示等功能。
2,CodeLLDB
接下來是 CodeLLDB 這個擴展,它允許你調試 rust 代碼。
3,Even Better TOML
接下來是 Even Better TOML 擴展,它爲 toml 文件提供語法高亮顯示。
4,Error Lens
Error Lens 擴展,可以將錯誤和警告突出顯示
示例代碼如下:
正如你在這個示例中看到的,它將使錯誤更加突出,並在行中顯示錯誤消息
5,Todo Tree
接下來是 Todo Tree,它將幫助你快速找到代碼中的 to do 項
6,crates
最後是 crates 擴展,它可以輕鬆檢查 Cargo.toml 文件中的依賴項是否過期。
如果一個依賴項過期了,你會看到一個紅色的 X,後面跟着該依賴項的最新版本。示例如下:
配置 Cargo 工具
1,Clippy
Clippy 是一個可配置的過濾器,可以捕獲常見錯誤並改進 rust 代碼。你可以通過在終端中手動運行 clippy,但是更我喜歡配置爲自動運行。
在 VSCode 中打開 Settings,在搜索欄中鍵入 “rust-analyzer check”。然後向下滾動,直到看到 check 命令,然後將 check 更改爲 Clippy。
2,Rust format
要將 rust format 配置爲自動運行,我們將 setting 並切換爲 Json 格式,然後加入以下配置:
3,cargo watch
接下來讓我們看一下如何使用 cargo watch 設置實時加載,Cargo watch 是一個 Cargo 插件,用於監視項目源文件中的更改。
在項目根目錄下,運行如下命令安裝 cargo watch:
cargo add cargo-watch
然後運行以下命令來運行 cargo watch:
cargo watch -q -c -w src/ -X 'run -q'
-
-q 代表安靜,它會抑制 cargo watch 的輸出
-
-c 將清除屏幕,
-
-w 允許我們指定要監視的文件和文件夾,在這個例子中,只監視 src 目錄
-
-x 允許我們指定要執行的 cargo 命令,在本例中我們執行 “cargo run -q”,如果我們執行這個命令,那麼將阻止打印 cargo 日誌消息。
然後,如果我們改變代碼,它將自動被重新編譯。
持續集成
現在讓我們看一下如何設置與 GitHub action 的持續集成。爲我們的項目設置持續集成,我們需要做的就是在根目錄下,創建一個包含 workflows 文件夾的. gitHub 文件夾,其中又包含定義 workflows 的 yaml 文件,如圖:
這裏有一個簡單的 workflows 的例子,叫做 rust-ci.yml,內容如下:
name: Rust CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up Rust
uses: actions/checkout@v2
- name: Install cargo-audit
uses: cargo install cargo-audit
- name: Build
uses: cargo build --verbose
- name: Test
uses: cargo test --verbose
- names: Clippy
uses: cargo clippy --verbose -- -D warnings
- names: Audit
uses: cargo audit
當代碼變更被推送到主分支,或者拉取請求指向主分支時,它就會運行這個 workflows。一般包含幾個步驟的作業。
1,首先,我們的代碼被 check out
2,然後,安裝 cargo-audit,這將允許我們審計代碼庫中的漏洞
3,構建並測試代碼
4,運行 cargo clippy,如果出現任何警告,則構建失敗
5,最後,我們運行 cargo audit,
如果我們的項目依賴包含任何已知的漏洞,那麼構建將失敗
至此,Rust 開發環境的最佳設置已經完成了,希望對你有所幫助。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/cQxIxKYjumH21ZV1yEwVfw