korofileheader 的函数注释默认不会自动更新,仅在手动触发 ctrl+alt+t 时生成一次快照;改函数签名后需重新触发才能刷新 @param/@return,且光标必须位于函数定义行,否则失效。

函数注释不会随函数签名变化自动更新?
默认情况下,koroFileHeader 生成的函数注释是「静态快照」——它只在你按 Ctrl+Alt+T(Windows/Linux)或 Cmd+Alt+T(macOS)时提取一次参数,之后无论函数怎么改,注释都不会变。这不是 bug,是设计如此:避免误删或覆盖你手动补充的说明。
所以如果你改了参数名、删了返回值、加了新参数,旧注释里的 @param 和 @return 就会立刻失真,变成维护隐患。
- 必须重新触发
Ctrl+Alt+T才能刷新注释内容 - 光标必须严格放在函数定义行(如
function foo(a, b)这一行),不能在函数体内部 - 如果函数用了解构、默认值、剩余参数等语法,插件识别能力依赖语言支持程度,JS/TS 最稳,Python 次之,C/C++ 基本不支持参数类型推断
如何让函数注释“看起来像”自动同步?
没有真正意义上的实时监听和重写,但可以靠配置 + 操作习惯降低遗漏概率。关键不是等它自动,而是让它「提醒你该更新了」。
- 开启
fileheader.configObj.autoUpdate并设为true:这仅对文件头部注释生效,对函数注释无效,别混淆 - 把
Ctrl+Alt+T绑定到更顺手的快捷键(比如Ctrl+Shift+T),并养成「改完函数就顺手按一下」的习惯 - 在
settings.json中配置fileheader.cursorMode为true:这样光标停在函数上时,插件会在状态栏显示「⚠️ 函数注释可能过期」提示(需 v4.38+) - 禁用「插入空行」选项(
fileheader.configObj.createFileHeadEnter设为false):避免每次生成都多一行空行,干扰 git diff 判断是否真有修改
为什么改了函数但 Ctrl+Alt+T 不生效?
常见失败场景不是插件坏了,而是光标位置或语法超出了当前语言解析器的能力边界。
- 光标不在函数声明第一行:比如你在
{后面按快捷键,插件找不到函数签名,直接跳过 - 函数是箭头函数且没写
return类型(TS)或没加 JSDoc 类型注解(JS):插件无法推断返回值,@return字段为空甚至不生成 - 参数用了复杂类型别名(如
type UserInput = { name: string };):插件只读原始签名,不解析类型定义,参数名会显示为arg0这类占位符 - 文件后缀未被识别为支持语言:比如
.mjs或.cjs文件,默认不启用函数注释,需在fileheader.configObj.supportedLanguages中显式添加
多人协作中函数注释同步最易忽略的点
团队里最容易出问题的不是技术限制,而是流程盲区:没人负责核对注释与代码的一致性,CI 也不检查这个。
- Git 提交前,用
git diff -- '*.js' '*.ts'快速扫一眼函数定义和紧邻上方注释是否匹配,比靠记忆靠谱 - 不要把
@description写成「实现业务逻辑」这种废话,而要写「接收用户邮箱,校验格式后调用 sendEmail API」——这种描述一旦函数行为变更,人眼一眼就能发现不一致 -
koroFileHeader的函数模板里,$1、$2这类占位符是给手动补全留的,不是让你长期留空;留空等于放弃同步前提
真正的同步,永远发生在人按下快捷键那一刻,而不是插件后台悄悄运行的时候。











