DocBlockr 的 /** 触发失效通常因光标位置错误或语法模式不匹配,需确保在支持语言(如 JavaScript)的函数声明行开头触发,且状态栏显示正确语法类型。

DocBlockr 的 /** 触发失效了怎么办
不是插件坏了,大概率是光标位置或语法模式没对上。DocBlockr 只在支持的语法(比如 JavaScript、PHP、Python)下监听 /** 回车,且要求光标紧贴函数/变量声明行的开头或正上方。
- 确认右下角状态栏显示的是
JavaScript而不是Plain Text—— 点击它手动切换 - 光标必须在函数定义行的任意位置(如
function foo() {这一行),不能在空行或注释行 - 如果用了 TypeScript,需额外安装
DocBlockr for TypeScript,原版不识别interface或const声明 - 某些自定义构建的语法高亮包会覆盖默认作用域,可临时禁用其他插件排查
生成的注释里参数类型老是空着,怎么填 @param
DocBlockr 不自动推断类型,它只按函数签名里的形参名生成占位符,类型得你手动补全或靠编辑器语义支持联动。
- 写完
/**回车后,Tab 键可在各个@param字段间跳转,直接输入类型(如{string})和描述 - 在
JavaScript中开启jsdoc_parse_types配置项,能从 JSDoc 注释里提取类型(但不适用于运行时动态结构) - 如果用 VS Code 习惯了自动补全,别指望 DocBlockr 有同等级智能 —— 它本质是模板引擎,不是语言服务器
- 注意
@param后面跟的是花括号包裹的类型,不是尖括号:@param {number} count✅,@param <number> count</number>❌
为什么 @return 没自动出现,或者类型写错了
DocBlockr 默认只对带 return 关键字的函数体尝试推断返回类型,且仅限简单字面量(如 return "ok" → {string}),复杂逻辑一律留空。
- 函数没有显式
return语句(比如只调用其他函数),@return就不会生成 - 箭头函数单表达式体(
=> "ok")能识别,但多语句块(=> { return "ok" })常被忽略 - 想强制加
@return,可在触发注释后按Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入DocBlockr: Add @return - 返回 Promise 时,它不会自动展开泛型 ——
{Promise<string>}</string>得自己敲,别等它补全
自定义模板让 @author 和日期自动填入
默认模板不包含作者和时间,但 Sublime Text 允许通过用户配置覆盖。关键不是改插件源码,而是改 Preferences.sublime-settings 里的 jsdocs_extra_tags 和模板变量。
- 打开
Preferences → Package Settings → DocBlockr → Settings – User - 加入这段配置:
{ "jsdocs_extra_tags": [ ["@author", "Your Name"], ["@date", "$date"] ], "jsdocs_indentation_spaces": 2 } -
$date会被替换成当前日期(格式如2024-05-22),但不支持自定义格式;要改就得改插件 Python 文件里的datetime.now().strftime(...) - 多个
@author用数组项追加,别试图在一条里写逗号分隔 —— 插件会当一个字符串处理

















