DAILY DOCDAILY DOC
Rust
Node
Notes
Ubuntu
Leetcode
  • it-tools
  • excalidraw
  • linux-command
Rust
Node
Notes
Ubuntu
Leetcode
  • it-tools
  • excalidraw
  • linux-command
  • rust

    • Rust
    • add
    • 属性(attributes)
    • cargo issue
    • cli
    • build.rs
    • Enums
    • eventEmitter(rust)
    • 格式化输出 std::fmt
    • rust iterator
    • rust 学习计划
    • 生命周期(lifetime)
    • Linked List
    • log
    • macros
    • mem::size_of
    • niche optimization
    • Rust 所有权
    • 模式匹配(pattern matching)
    • module system
    • result & option
    • .rust-analyzer.json
    • rust startup
    • rust-test
    • 可见性(visibility)
    • cargo
    • toml

.rust-analyzer.json

.rust-analyzer.json 文件允许你对 rust-analyzer 的行为进行细粒度的配置。以下是常见配置选项的详细解释及示例:

配置选项

cargo

cargo 配置块包含了与 Cargo 相关的选项。

  • allFeatures: 启用所有 features。默认值为 false。
  • noDefaultFeatures: 禁用默认 features。默认值为 false。
  • features: 一个字符串数组,用于指定 Cargo 应该启用的 features。

示例:

{
    "cargo": {
        "allFeatures": true,
        "noDefaultFeatures": false,
        "features": ["feature1", "feature2"]
    }
}

procMacro

procMacro 配置块包含了与过程宏相关的选项。

  • enable: 启用过程宏支持。默认值为 false。

示例:

{
    "procMacro": {
        "enable": true
    }
}

checkOnSave

checkOnSave 配置块包含了在保存时运行的命令选项。

  • command: 要运行的命令,通常是 "cargo check" 或 "clippy"。
  • allTargets: 检查所有目标(包括测试和示例)。默认值为 true。
  • extraArgs: 传递给 cargo check 的额外参数。

示例:

{
    "checkOnSave": {
        "command": "check",
        "allTargets": false,
        "extraArgs": ["--release"]
    }
}

workspace

workspace 配置块允许你排除或包含工作空间的某些部分。

  • exclude: 一个字符串数组,用于指定要排除的目录或文件。
  • include: 一个字符串数组,用于指定要包含的目录或文件。

示例:

{
    "workspace": {
        "exclude": ["crate_a"],
        "include": ["crate_b"]
    }
}

综合示例

以下是一个综合示例,展示了如何使用 .rust-analyzer.json 文件进行详细配置:

{
    "cargo": {
        "allFeatures": true,
        "noDefaultFeatures": false,
        "features": ["feature1", "feature2"]
    },
    "procMacro": {
        "enable": true
    },
    "checkOnSave": {
        "command": "check",
        "allTargets": false,
        "extraArgs": ["-p", "crate_b"]
    },
    "workspace": {
        "exclude": ["crate_a"],
        "include": ["crate_b"]
    }
}

步骤总结

  1. 创建 .rust-analyzer.json 文件: 在项目根目录下创建 .rust-analyzer.json 文件。

  2. 添加配置: 根据需要添加上述配置选项。

  3. 重载 VS Code: 重新加载 VS Code 窗口,以确保新配置生效。

常见问题

  • 配置无效: 确保文件名和位置正确,文件名应该是 .rust-analyzer.json,并位于项目根目录。
  • 排除或包含未生效: 确认路径正确且与项目结构匹配,使用相对路径。
  • 重载后仍无变化: 尝试关闭并重新打开 VS Code,或者清理缓存。

通过 .rust-analyzer.json 文件,你可以更好地控制 rust-analyzer 的行为,适应不同项目的需求。

Last Updated:
Contributors: rosendo
Prev
result & option
Next
rust startup