SuperAPI AI 工具集

settings-precedence

编程与开发

查看项目

更新于 10-16 00:32

技能介绍

用途:面向在 VS Code 扩展中读写设置的开发者,梳理设置的优先级规则与常见陷阱,避免配置被错误覆盖或读取到错误来源的值,属编程与开发类技能。

主要能力:说明优先级顺序(工作区文件夹值 > 工作区值 > 用户/全局值 > 默认值),并给出四条核心规则与配套做法。

核心规则:

  1. 调用 getConfiguration() 时始终传入 scope;读取按资源作用域的设置或多根工作区场景时尤为必要,否则 workspaceFolderValue 会是 undefined。
  2. 用 inspect() 检查显式值,不要用 get() 判断布尔项,因为 defaultValue 可能来自任意扩展的 package.json。判断显式值可检查 globalValue、workspaceValue、workspaceFolderValue 是否非 undefined。
  3. 写入前先确认用户是否已有显式值,避免覆盖用户选择。
  4. 在正确的作用域更新:ConfigurationTarget.Global、Workspace、WorkspaceFolder;用 undefined 可移除设置。

多根工作区:pythonProjects 需要 workspace 属性标识所属文件夹,否则不同文件夹的设置会混在一起;获取工作区文件夹应使用 getWorkspaceFolder(documentUri),而非固定取 workspaceFolders[0]。

常见问题与修复:workspaceFolderValue 为 undefined(补 scope);默认值来自其他扩展(改用 inspect 并只查显式值);重载后设置被覆盖(写入前先检查现有值);多根工作区设置混淆(保存时带上 workspace 标识)。文末给出安全读写项目配置的完整示例。

适用与限制:适用于 VS Code 扩展开发与设置管理;具体 API 行为以实际 VS Code 版本为准,资料未提供版本兼容范围与价格等信息。