// 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)
{
  "lsp": {
    "rust-analyzer": {
      "initialization_options": {
        "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"
        ],
        "check": {
          "invocationStrategy": "once",
          "overrideCommand": [
            "python3",
            "x.py",
            "check",
            "--json-output",
            "--build-dir",
            "build-rust-analyzer"
          ]
        },
        "rustfmt": {
          "overrideCommand": [
            "build/host/rustfmt/bin/rustfmt",
            "--edition=2024"
          ]
        },
        "procMacro": {
          "enable": true,
          "server": "build/host/stage0/libexec/rust-analyzer-proc-macro-srv"
        },
        "rustc": {
          "source": "./Cargo.toml"
        },
        "cargo": {
          "sysrootSrc": "./library",
          "extraEnv": {
            "RUSTC_BOOTSTRAP": "1"
          },
          "buildScripts": {
            "enable": true,
            "invocationStrategy": "once",
            "overrideCommand": [
              "python3",
              "x.py",
              "check",
              "--json-output",
              "--compile-time-deps",
              "--build-dir",
              "build-rust-analyzer"
            ]
          }
        },
        "server": {
          "extraEnv": {
            "RUSTC": "build/host/stage0/bin/rustc",
            "CARGO": "build/host/stage0/bin/cargo"
          }
        }
      }
    }
  },
  "file_types": {
    "Rust": ["fixed", "pp", "mir"]
  }
}
