Solon v4.0.3

mount 与多工作区自然融合

</> markdown
2026年7月8日 上午9:31:03

1. 什么是挂载

"挂载"就是把 其他目录 以逻辑别名的方式,附加到当前工作区中,让 AI 助手的视野覆盖多个工作区域(或项目)。

SolonCode 支持三种挂载类型。其中文件类型挂载:

类型说明典型用途
文件类型(FILES)挂载一个完整的目录树把关联的子项目、共享库、配置文件目录挂进来

文件挂载的核心价值在于:跨项目协作。你可以对一个提示词同时操作两个工作区,比如 "把 @common-lib 下的版本号更新到 2.0.0,同时在 @web-app 的 pom.xml 里更新依赖"——一次对话完成。

2. 在设置页添加挂载

打开设置 / 挂载

点击右上角的「齿轮」图标打开设置面板,选择「挂载」tab,再点添加挂载:

设置面板挂载页

添加一个文件类型挂载

  1. 在挂载页面点击「添加挂载」
  2. 填写表单:
    • 别名:为挂载取一个唯一的名字(如 @my-lib@config),这是后续在 AI 对话中引用它的标识
    • 类型:选择 FILES(文件/目录类型)
    • 路径:选择要挂载的目录(绝对路径)
    • 是否可写:这个开放权限很重要(可以只读,可以又读又写)
  3. 点击「保存」

启用 / 禁用挂载

每个挂载条目右侧有一个开关(toggle),可以随时启用或禁用挂载。禁用后,AI 助手的视野中不再包含该挂载,但配置保留,方便再次启用。

删除挂载

点击挂载条目右侧的删除按钮,确认后移除。删除不会影响原始文件,仅移除 SolonCode 中的挂载配置。

3. 挂载后的即时同步体验

在设置页中对挂载进行任何操作(添加/更新/启用禁用/删除)后,右侧区域的文件面板审查面板即时同步变化

操作文件面板变化审查面板变化
添加挂载立即出现新的工作区节点(带 @别名)工作区下拉列表中出现新的挂载选项
禁用挂载对应工作区节点消失工作区下拉中移除该选项
启用挂载对应工作区节点重新出现工作区下拉中重新出现
删除挂载对应节点彻底移除下拉中彻底移除

无需手动刷新页面,也无需关闭设置面板再打开,一切实时生效。

4. 文件面板的快捷入口

在文件面板底部,随时可以看到一个「添加文件类型挂载」入口:

  • 当你想把另一个项目目录加进来时,点击它直接跳转到「设置 → 挂载」页面
  • 不需要在设置面板中翻找,从文件面板一步直达

5. 在对话中操控多个工作区

挂载的目录和文件,会在文件面板中以独立的工作区节点展示,每个节点前带有 @别名 标识。

在 AI 对话中,你可以通过 @别名 来引用不同工作区中的资源:

语法

@工作区别名/相对路径

示例

假设你挂载了两个工作区:

  • 当前工作区(默认,无需 @ 前缀)
  • @solon-ai-source (已挂载的目录)

对话示例:

"把工作区的 a.md 删掉,@solon-ai-source 的 b.md 删掉"

SolonCode 会识别 @solon-ai-source 前缀,将操作定位到对应的挂载目录,同时执行两次删除。

更实际的场景:

"把 @web-app 下 src/main/resources/application.yml 的端口改成 8081,然后在 @backend 下添加一个新的接口路由"

一次对话,跨两个项目完成需求。

6. 在审查面板中筛选工作区

审查面板的「工作区」下拉菜单列出了所有已启用且可访问的挂载。选择某个工作区后,审查范围将被限定在该工作区内:

  • Git 状态:仅显示该工作区的变更文件
  • 文件差异:对比仅限于该工作区路径
  • 提交记录:针对该工作区进行版本查看

这让「审查」变得精准——不会把不同项目的变更混在一起,也不会因为项目庞大而加载过慢。

7. 挂载配置的存储

挂载配置保存在当前工作区的 settings.json 中(位于 .soloncode/settings.json),结构大致如下:

{
  "mounts": [
    {
      "alias": "@solon-ai-source",
      "type": "FILES",
      "path": "/Users/me/projects/solon-ai",
      "enabled": true
    },
    {
      "alias": "@shared-config",
      "type": "FILES",
      "path": "/Users/me/config/shared.properties",
      "enabled": true
    }
  ]
}

这意味着:

  • 可版本控制settings.json 可纳入 Git(当然需留意路径在不同机器上的差异)
  • 可迁移:复制 settings.json 即可迁移挂载配置
  • 可脚本化:可以用文本编辑器或脚本批量修改挂载配置

8. 最佳实践

什么时候用挂载?

  • 微服务/模块化项目:将多个模块以挂载形式加入,AI 可以理解整个调用链路
  • 共享库引用:把公共 SDK、工具库挂进来,AI 在写代码时能自动参考其 API
  • 文档与代码联动:把需求文档目录挂进来,AI 可以按文档描述实现功能

小建议

  • 别挂太多:通常 3~5 个工作区挂载是比较舒适的范围,过多会让 AI 上下文变重
  • 常用挂载保持启用:不常用的可以禁用而非删除,下次需要时一键恢复
  • 别名要语义化:@common-lib@lib1 更容易记住和理解
  • 关闭不再需要的挂载:避免 AI 被不相关的文件干扰

9. 常见问题

Q:挂载会影响源文件吗? A:不会。挂载仅指 AI 助手的"视野"范围,文件的操作仍然通过你的工作区控制。删除/修改文件是真实的操作。

Q:挂载的目录路径变了怎么办? A:在设置页编辑该挂载,更新路径即可。如果是共用 settings.json 的场景,直接修改 JSON 中的 path 字段最快。

Q:为什么有的挂载在文件面板中不可见? A:请检查该挂载是否已启用(toggle 处于开启状态),以及路径是否依旧有效(目录未被移动或删除)。

Q:不同工作区有同名文件时,AI 怎么区分? A:通过 @别名 前缀明确指定。不指定默认操作当前工作区。