在VSCode中配置Rust的nightly模式

因为某些原因而不得不使用nightly模式时,一般直接切换系统版本:

rustup default nightly

以上配置对VSCode来说,是简单有效的。 但是,如果一个代码库中包含多个项目,只有个别项目是nightly时,就需要给VSCode一些特殊的配置。

原理

需要配置两个文件、三个东西:

  1. 自动运行cargo check检查时,使用nightly版本。
  2. 点击编辑区按钮,运行单个测试用例时,使用nightly版本。
  3. 在【Run and Debug】中运行某个launcher时,使用nightly版本。

基本的配置原理,都是把cargo变成cargo +nightly。 只是需要为上述三种不同的使用入口,做不同形式的相同配置。

配置settings.json

在项目根目录下的.vscode/settings.json中,添加以下内容:

{
    ...
    "rust-analyzer.runnables.command": "cargo +nightly",
    "rust-analyzer.check.overrideCommand": [
        "cargo",
        "+nightly",
        "check",
        "--workspace",
        "--message-format=json",
        "--all-targets"
    ]
}

配置launch.json

在项目根目录下的.vscode/launch.json中,添加以下内容:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "UT",
            "cargo": {
                "args": [
                    "+nightly",
                    "test",
                    "--no-run"
                ]
            },
            "args": [],
            "cwd": "${workspaceFolder}"
        }
    ]
}

其中,关键是在cargo.args的开头,加上+nightly这一项。 至于其它内容,都可以沿用自动生成或手动填入的内容。

对一个多目标、或多项目的代码库,可以在launch.json中添加多个launcher。 通过有选择地加上+nightly,可以自动区分nightly和stable项目。

结论


相关笔记