blob: ea5bb544c7004e74d0096df2c45b7e8d2e6c652b [file] [log] [blame]
// This config uses a separate build directory for rust-analyzer,
// so that r-a's checks don't block user `x` commands and vice-verse.
// R-a's build directory is located in `build-rust-analyzer`.
//
// To download rustfmt and proc macro server for r-a run the following command
// (proc macro server is downloaded automatically with pretty much any command,
// this specific one also downloads rustfmt):
// ```
// x fmt --check
// ```
// (if that doesn't work -- do `x clean` first)
{
"git.detectSubmodulesLimit": 20,
"rust-analyzer.linkedProjects": [
"Cargo.toml",
"compiler/rustc_codegen_cranelift/Cargo.toml",
"compiler/rustc_codegen_gcc/Cargo.toml",
"library/Cargo.toml",
"src/bootstrap/Cargo.toml",
"src/tools/rust-analyzer/Cargo.toml"
],
"rust-analyzer.check.invocationStrategy": "once",
"rust-analyzer.check.overrideCommand": [
"python3",
"x.py",
"check",
"--json-output",
"--build-dir",
"build-rust-analyzer"
],
"rust-analyzer.rustfmt.overrideCommand": [
"${workspaceFolder}/build/host/rustfmt/bin/rustfmt",
"--edition=2024"
],
"rust-analyzer.procMacro.server": "${workspaceFolder}/build/host/stage0/libexec/rust-analyzer-proc-macro-srv",
"rust-analyzer.procMacro.enable": true,
"rust-analyzer.rustc.source": "./Cargo.toml",
"rust-analyzer.cargo.sysrootSrc": "./library",
"rust-analyzer.cargo.extraEnv": {
"RUSTC_BOOTSTRAP": "1"
},
"rust-analyzer.cargo.buildScripts.enable": true,
"rust-analyzer.cargo.buildScripts.invocationStrategy": "once",
"rust-analyzer.cargo.buildScripts.overrideCommand": [
"python3",
"x.py",
"check",
"--json-output",
"--compile-time-deps",
"--build-dir",
"build-rust-analyzer"
],
"rust-analyzer.server.extraEnv": {
"RUSTC": "${workspaceFolder}/build/host/stage0/bin/rustc",
"CARGO": "${workspaceFolder}/build/host/stage0/bin/cargo"
},
"files.associations": {
"*.fixed": "rust",
"*.pp": "rust",
"*.mir": "rust"
}
}