DocBlockr 正确安装并启用后,新建 .js 文件输入 function foo(a, b) {},光标置于其正上方空行,输入 /** 后按 Enter,若生成含 @param a 和 @param b 的注释块即成功。

装对插件、设对语法、光标放对位置,/** + Enter 就能出带 @param/@return 的注释块;其他方式基本都不可靠。
怎么确认 DocBlockr 装对了且能用
别信“搜到就装”,Package Control 里有多个叫 DocBlockr 的包,只有 nikhilm 维护的 sublimetext-docblockr 是当前唯一稳定可用的版本。
- 用
Ctrl+Shift+P(Mac 为Cmd+Shift+P)打开命令面板,输入Package Control: Install Package - 等列表加载完再搜
DocBlockr,认准作者是nikhilm,GitHub 仓库名是sublimetext-docblockr - 装完必须重启 Sublime,否则
docblockr命令不注册,/**按了也没反应 - 验证:新建一个
.js文件,写function foo(a, b) {},光标停在函数上方空行,输入/**后按Enter—— 若生成含@param的块,说明成功
为什么 /** + Enter 没反应
90% 是环境没配准,不是插件坏了。它不看文件后缀,只认右下角显示的语法名。
- 右下角必须显示
JavaScript、PHP、Python等支持语言,不能是Plain Text或Unsupported syntax(点它手动切换) - 光标必须在函数定义行(如
function bar() {或def baz():)任意位置,或其正上方**紧邻的空行**;在函数体内部、变量行、已有注释行都不触发 -
Enter是默认触发键,不是Tab;Tab只在注释生成后用于跳字段 - 检查是否有插件(比如 Emmet)劫持
Enter行为;可临时禁用其他插件测试 - 进
Preferences → Package Settings → DocBlockr → Settings – User,确认"auto_indent": true没被设成false
参数和类型怎么自动填出来
DocBlockr 不解析 AST,只靠正则粗略匹配括号内文本,所以对复杂写法支持很弱。
- 支持的函数格式包括:
function name()、const name = function()、class A { method() {} }、def method(self): - 箭头函数
const fn = (a, b) => {}原生不识别,得改写成const fn = function(a, b) {}或额外配置jsdocs_extra_tags - 解构参数如
({ a }, [b])通常只识别出{ a }和[b],不会拆解对象/数组结构 - 类型提示(如 TypeScript 的
a: string、PHP 的string $a)仅部分支持:PHP能提取{string},JS/TS需开启"jsdoc_enable_types": true才尝试推测,但不准 - 最稳的方式是:在用户设置里补全
"jsdoc_template",例如加一行"@param {string} $1"占位,避免每次手敲
生成后怎么高效编辑字段
生成的注释块不是终点,而是起点;字段跳转逻辑容易卡住,得知道它怎么走。
- 首次生成后,光标默认停在
@description区域;按Tab依次跳到每个@param、@return、@throws - 每个
@param行末尾有{type}占位符,删掉即可写具体类型(如{string}),留空也合法 - 如果
Tab卡住或跳过某行,大概率是Emmet或AutoFileName类插件劫持了Tab键;可在Preferences → Key Bindings查看绑定冲突 - 若想统一加
@author或@date,直接在Settings – User里加"author_tag"和"date_format"字段,别靠手补
真正麻烦的从来不是生成动作本身,而是函数签名稍一复杂(比如解构+默认值+泛型),@param 就开始漏、错、乱序——这时候别硬等插件猜对,手动补比调试更省时间。

















