1. 问题背景与现象分析
作为一名长期从事嵌入式开发的工程师,最近在使用Trac进行STM32项目开发时遇到了一个颇为棘手的问题。当工作区只包含单个项目文件夹时,AI辅助编程功能表现完美,能够流畅地分析、修改代码。但在处理多文件夹项目时(比如同时开发主机和从机通信模块),AI却突然"失明"了——它只能识别并修改第一个文件夹中的代码文件,对第二个及后续文件夹中的文件完全无法正常操作。
这种情况在嵌入式开发中尤为常见。以我手头的STM32主机-从机通信项目为例:
- 主控端代码存放在
/master目录 - 从机端代码存放在
/slave目录 - 共用协议文件存放在
/protocol目录
理想状态下,AI应该能同时理解这三个目录的关联关系,帮助我统一修改通信协议。但实际情况是,AI只能处理/master目录下的文件,对其他目录的文件要么无法识别,要么修改后无法保存。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 问题排查过程实录
2.1 尝试方案一:配置工作路径自动切换
参考某技术博客的建议,首先尝试在设置中勾选"自动选择当前文件路径为工作路径"选项。理论上,这应该让AI根据当前激活的文件自动切换工作目录。
实际操作步骤:
- 打开Trac设置界面(Ctrl+,)
- 搜索"auto workspace"
- 勾选"Auto Switch Workspace Based on Active File"
测试结果:
- 对Python/JavaScript项目有效
- 对C语言项目无效,特别是嵌入式开发中的多目录结构
- 可能原因:嵌入式项目的编译环境配置复杂,路径解析机制与脚本语言不同
2.2 尝试方案二:重建工作区
第二个尝试的方案是完全删除现有工作区配置,重新建立项目结构:
- 关闭当前项目
- 删除
.trac隐藏文件夹 - 重新打开项目根目录
- 通过"File > Add Folder to Workspace"逐个添加子目录
测试结果:
- AI可以浏览所有目录文件
- 但仍只能修改第一个添加的目录中的文件
- 控制台报错提示"Workspace context not found"
2.3 关键发现:客服对话启示
在官方论坛查阅问题时,偶然看到一段技术支持对话截图,其中提到:"当前版本的工
