要让trae补全项目自定义工具函数,需三步:1.在.trae/config.json的trackedfilepatterns中添加工具函数路径;2.为函数添加ts类型或jsdoc注释;3.在调用处用@see锚点+ctrl+k指令限定补全范围。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让Trae在补全时自动识别并推荐项目里自己写的工具函数(比如formatDate、debounce、apiRequest),而不是只依赖内置库或通用写法,就得让它真正“读过”这些函数的签名和用法。
确保工具函数被Trae索引到
Trae不会主动扫描所有文件,它只索引你明确告诉它要跟踪的路径。如果工具函数分散在src/utils/、lib/helpers.ts或shared/functions.js里,但没纳入索引规则,AI就永远看不见它们。
1、打开项目根目录下的.trae/config.json文件;
2、找到"trackedFilePatterns"字段,在原有数组中追加你存放工具函数的路径模式,例如:"src/utils/**/*.{ts,js}", "lib/helpers.ts", "shared/**/*.js";
3、保存后执行trae index build --force强制重建索引——这一步不可跳过,否则新增路径不会生效。
【必须确认.trae/index目录有写入权限,否则索引静默失败】
给工具函数加标准类型与注释
Trae靠类型定义和JSDoc推断函数用途。光有function formatDate(date) { ... }这种裸函数,AI只能猜参数是字符串还是Date对象,补全时大概率传错类型。
方法一:TypeScript用户直接写完整类型
在src/utils/date.ts中改写为:
/*** 将日期对象格式化为 YYYY-MM-DD HH:mm:ss 字符串* @param date - 有效日期实例,不接受字符串或null* @param separator - 可选分隔符,默认为短横线* @returns 格式化后的字符串*/export function formatDate(date: Date, separator: string = '-'): string { return `${date.getFullYear()}${separator}${String(date.getMonth() + 1).padStart(2, '0')}...`;}
方法二:JavaScript用户补全JSDoc + @type注解
在lib/helpers.js中添加:
/*** 防抖函数,延迟执行回调* @type {<function any fn: function delay: number>}</function>* @param {function()} fn - 要防抖的函数* @param {number} delay - 延迟毫秒数* @returns {function()} 包装后的防抖函数*/export function debounce(fn, delay) { ... }
在调用处显式锚定上下文
即使函数已被索引,Trae在补全const res = apiR...时仍可能优先推荐apiResponse或apiRequest(来自node_modules),因为它不确定你本地是否定义了同名函数。
第一步:在当前文件顶部添加锚点注释
// @see src/utils/api.ts#apiRequest —— 本项目统一HTTP请求封装
第二步:在需要补全的位置输入前缀,例如apiR,然后暂停半秒
第三步:当补全框弹出时,若第一个选项不是你期望的apiRequest,立即按Ctrl+K唤出指令框,输入:“从src/utils/api.ts中补全以apiR开头的导出函数”
第四步:按回车执行——AI将忽略全局匹配,严格限定在指定文件内检索











