docblockr在sublime text 4上已停止维护,安装失败或注释无效;应改用专为st4重写的doxydoxygen,它支持多语言、lsp集成,并需注意模板语法(jinja2)、键位冲突及配置项适配。

Sublime Text 4 上直接装 DocBlockr 会失败或生成空注释,不是你操作错了,是插件本身已停止维护 —— 官方仓库明确标为 unmaintained,且与 ST4 的异步 API 和 Python 3.8+ 运行时不兼容。
为什么 DocBlockr 在 ST4 上装不上或按 Ctrl+Shift+D 没反应
常见现象包括:Package Control 搜索不到 DocBlockr;手动 clone 到 Packages/ 目录后,按 Ctrl+Shift+D(Windows)无响应;控制台报错 AttributeError: 'NoneType' object has no attribute 'groups'。
根本原因是:
- ST4 默认启用
sublime_lib和异步插件加载,而DocBlockr依赖旧版同步TextCommand行为 - 它调用的
view.substr(view.word(point))在 ST4 中可能返回空字符串,导致正则解析崩溃 -
inspect.getargspec已在 Python 3.8+ 被弃用,插件内部未适配,抛出ValueError
ST4 正确安装替代插件 DoxyDoxygen
它是 DocBlockr 的精神继承者,专为 ST4 重写,支持 Python/JS/PHP/C++,能结合 LSP(如 pylsp)提取真实类型信息。
安装步骤:
- 打开命令面板:
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入
Package Control: Install Package并回车 - 搜索
DoxyDoxygen,选中并回车安装 - 安装后无需重启,但需确保当前文件语法识别正确(右下角显示
JavaScript或Python,不是Plain Text)
触发注释和关键配置项
把光标放在函数定义行(例如 def fetch_user(id: int) -> dict:),按 Ctrl+Alt+D(Windows/Linux)或 Cmd+Alt+D(macOS)即可生成。
常用配置在 Preferences → Package Settings → DoxyDoxygen → Settings 中修改:
-
doxy_doxygen_comment_trigger设为"/**"或"///",避免和已有风格冲突 - JS 解构参数(如
(options = { timeout: 5000 }))需开启js_extract_destructured_params - 自定义模板时,变量写法必须是
{param.name},不是${1:param};循环要用{% for param in params %}...{% endfor %} -
@return行要加{% if return_type %}...{% endif %},否则函数无返回值时整行被跳过
模板语法、参数提取逻辑、LSP 集成方式这三块最容易漏配,尤其是从 DocBlockr 迁移过来时,变量名和条件语法不兼容,直接复制旧模板会导致生成失败或字段丢失。











