在日常使用 VS Code 配合 CodeBuddy 进行开发时,一个常见困扰是:虽然项目结构在眼前,但 AI 给出的代码建议(尤其是涉及修改或生成新模块时)往往“不走心”,甚至完全偏离实际逻辑。说白了,很多情况下代码跑偏,是因为 CodeBuddy 并未真正“理解”你的项目上下文。
别着急,问题通常出在上下文采集的深度与广度上。下面这套操作流程,能帮你把 CodeBuddy 的上下文理解能力从“局部感知”提升到“全局洞察”,一步到位解决这个痛点。

一、开启全文件上下文分析模式
CodeBuddy 的默认设置只读取当前光标附近的一小段代码。要想让它真正掌握整个文件的逻辑结构(例如变量作用域、函数调用链、类继承关系),必须切换到全文件 AST(抽象语法树)解析模式。该模式借助 Tree-sitter 解析器,能够深入理解代码语义。
操作非常简单:在 VS Code 中打开目标文件(比如 user.service.ts),点击右下角状态栏的“CodeBuddy”图标,选择“Context Mode”,然后在弹出菜单中点击“Full File AST Parsing”。待右上角提示“Context loaded: 1287 tokens”出现,即表示整个文件已完整载入 AI 上下文。
举个例子,如果你在 Craft 对话框中输入“重构此服务,将 HTTP 请求封装为独立 API Client 类”,由于拥有完整的 AST 结构,CodeBuddy 能精准生成带类型守卫与错误重试逻辑的新模块,而不会随意猜测。
二、多文件上下文关联配置
许多功能涉及多个文件的联动,例如修改前端组件后需要同步更新对应的 Service 和 Guard。这时,你需要主动告知 CodeBuddy 哪些文件属于同一组。
在 VS Code 资源管理器中,按住 Ctrl 键(Windows/Linux)或 Command 键(macOS),多选所需文件(比如 user.component.ts、auth.guard.ts、user.service.ts),然后右键点击选择“Send to CodeBuddy Context”。这样一来,CodeBuddy 会自动分析这些文件的 import/export 依赖关系、接口定义及运行时调用路径。
之后,在 Craft 面板输入类似“为用户管理页添加角色权限拦截,并确保所有 HTTP 调用携带 X-Role-Header”的指令时,它会同步修改 Guard 的 canActivate 逻辑、Service 中 HttpClient 实例配置以及 Component 内角色判断的 UI 分支,一步到位,省心省力。
三、强制触发项目结构扫描
有些依赖关系较为“隐蔽”,例如通过字符串拼接导入的模块、动态 require 路径,或环境变量驱动的条件编译块。这些情况下,CodeBuddy 的自动识别往往会失效。此时需要执行一次强制的全量项目索引扫描。
按下 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)打开命令面板,输入并选择“CodeBuddy: Scan Project Structure”。等待终端输出类似“Indexed 42 files, resolved 187 symbols, cache sa ved to .codebuddy/index.db”的提示,即表示扫描成功。
扫描完成后,你再问它“config.yaml 里定义的 shardKey 字段在哪些 DAO 层被引用?”,它就能准确告知你在 database/user-dao.ts 和 cache/redis-dao.ts 两处,而不会出错。
四、禁用缓存强制重载上下文
当你修改了 tsconfig.json、babel.config.js 这类项目配置文件后,CodeBuddy 可能仍然沿用旧缓存中的编译选项和路径别名,导致类型推导错误或路径解析失败。这时必须清除旧缓存,强制它重新加载。
操作路径:打开 VS Code 设置(Ctrl+, 或 Cmd+,),搜索“codebuddy context cache”,找到对应配置项,点击右侧的“Clear Cache and Reload”按钮。之后重启 VS Code 窗口,再打开任意 TypeScript 文件,确认状态栏显示“Context: Fresh (v2.4.1)”,即表示缓存已刷新,上下文是最新的。
