sublime text 4 用户应弃用 docblockr,改用 doxydoxygen;因 docblockr 已停止维护,不兼容 st4 异步机制与新 api,安装失败或触发崩溃,而 doxydoxygen 专为 st4 重写,支持多语言、lsp 集成及 jinja2 模板语法。

Sublime Text 4 用户别装 DocBlockr,它已停止维护,装了也大概率不工作;ST3 用户能用但限制极多,推荐直接切到 DoxyDoxygen。
Sublime Text 4 安装 DocBlockr 必然失败的三个原因
官方仓库明确标为 unmaintained,且 ST4 的异步加载机制、新 API(如 view.substr(view.word(point)) 返回空字符串)会让它在解析函数签名时直接崩溃,报错:AttributeError: 'NoneType' object has no attribute 'groups'。
- 不是网络问题或拼写错误——搜不到
DocBlockr是因为 Package Control 已将其从索引中移除 - 手动从 GitHub clone 到
Packages/目录会加载失败,或触发后生成空注释块 - 即使降级 Python 运行时,
inspect.getargspec在 Python 3.8+ 中已被弃用,仍会抛ValueError
ST4 正确替代方案:安装 DoxyDoxygen
它是 DocBlockr 的精神继承者,专为 ST4 重写,支持 Python/JS/TS/PHP/C++,能对接 LSP(如 pylsp 或 typescript-language-server)获取语义信息。
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),输入Package Control: Install Package,搜DoxyDoxygen(注意拼写,不是DocBlockr) - 装完无需重启,但必须确认右下角语法模式是
JavaScript、Python等支持语言,不能是Plain Text - 触发方式不是敲
/**回车,而是把光标放在函数定义行(如def fetch_user(id: int) -> dict:),按Ctrl+Alt+D(Windows/Linux)或Cmd+Alt+D(macOS) - 若用 TypeScript 或 Babel 插件导致语法高亮异常,临时切回原生
JavaScript模式再试
自定义模板时 Jinja2 语法必须重写
DoxyDoxygen 使用 Jinja2,和 DocBlockr 的 ${1:description} 完全不兼容。直接复制旧模板会导致字段消失或整行跳过。
- 变量写法:用
{description},不是${1:description} -
@param循环必须写成:{% for param in params %}@param {param.type} {param.name}{% endfor %} - 想让
@return在无返回值时也显示,得加判断:{% if return_type %}@return {return_type}{% endif %} - JS 解构参数(如
(options = { timeout: 5000 }))需开启配置项js_extract_destructured_params才能正确列出options.timeout
ST3 用户若坚持用 DocBlockr,这些坑绕不开
它只对 function foo(a, b) 这类写法有效,const foo = (a, b) => {} 或解构参数 function bar({ id }) 会漏字段甚至不触发。
- 光标必须严格位于函数正上方的**空行**——该行不能有空格、制表符、注释,前面也不能有空行
- 输入
/**后必须立刻按Enter(不是Tab),否则不展开 - 中文 Windows 用户若见
@author显示方块,检查fallback_encoding是否设为"UTF-8" - JS 中箭头函数、Babel 插件、Emmet 都可能劫持快捷键,建议临时禁用其他插件验证
真正卡住人的从来不是“怎么装”,而是装完没反应时不知道该查语法模式、光标位置、版本兼容性,还是模板语法——这几个点串起来,基本覆盖 90% 的失败场景。DoxyDoxygen 的配置项虽多,但只要模板里别混用 $ 符号,js_extract_destructured_params 这类开关记得开,就能稳住大部分真实项目需求。











