documentthis 是 vscode 中覆盖语言最多、触发最轻量的注释生成插件,支持 js/ts、python、java、c#,自动识别函数签名填充 jsdoc/pydoc 字段,无需外部工具链,通过 /** + tab 或 ctrl+alt+d 触发,支持自定义作者、日期等配置。

DocumentThis 生成 JSDoc/Pydoc 注释模板最直接
DocumentThis 是目前 VSCode 中覆盖语言最多、触发最轻量的注释生成插件,对 JavaScript/TypeScript、Python、Java、C# 都能自动识别函数签名并填充 @param、@returns、@throws 等字段。
它不依赖外部工具链,安装后即可用 /** + Tab 或快捷键 Ctrl+Alt+D 触发。生成的模板结构清晰,且支持通过 settings.json 自定义作者、日期格式、是否默认填 @description 等。
- 注意:光标必须紧贴函数定义行上方(不能隔空行),否则插件无法解析参数类型
- Python 用户需写明类型提示(如
def func(x: int) -> str:),否则@param类型会 fallback 成{any} - TypeScript 中若函数有重载签名,DocumentThis 只处理第一个,其余需手动补全
Doxygen Documentation Generator 适合 C/C++/Q# 等强文档需求场景
该插件专为 Doxygen 风格注释设计,支持 ///(C++/Q#)和 /** */(C/Java)两种语法,生成内容含 \brief、\param、\return、\see 等标准标签,与后续 doxygen 命令行工具无缝衔接。
配置项如 doxdocgen.generic.authorName 和 doxdocgen.file.copyright 需写入 settings.json 才生效;语言模式要设为 cpp 或 qsharp,否则字段顺序可能错乱。
- 常见错误:
doxygen -g生成的Doxyfile中未设RECURSIVE = YES,导致子目录源码不被扫描 - Q# 文件中用
///注释时,INPUT路径必须包含.qs后缀,否则 Doxygen 默认忽略 - 插件生成的
\sa(see also)字段常为空,需手动补全关联函数名
Copilot inline suggestion 补全 API 描述更灵活但需上下文引导
GitHub Copilot 的 inline suggestion(Ctrl+Enter)在已有部分注释或类型提示的前提下,能生成更贴近业务逻辑的描述文本,比如把 @param userId 补成 user ID from auth token, must be non-zero,比纯模板更实用。
但它不是“生成文档”,而是“补全注释”——你得先写好函数签名、类型、甚至一行伪代码,Copilot 才有足够信号推断语义。空着函数体直接按 Ctrl+Enter,大概率输出泛泛而谈的废话。
- JS/TS 中建议先写
/** @returns {User} user profile with verified email */再触发,Copilot 会顺着补@param细节 - Python 里
"""开头的 docstring 比/** */更易被识别为文档上下文 - 禁用
copilot.generateDocstring命令(右键菜单项),它在 Go/Python 中不稳定,inline 模式兼容性更好
Markdown All in One 自动生成文档目录用于整合规范说明
接口规范文档往往不止代码注释,还包括调用示例、错误码表、版本变更记录等 Markdown 内容。此时 Markdown All in One 的 Ctrl+Shift+P → Create Table of Contents 就很关键——它能实时解析 # 到 ###### 标题,生成带锚点链接的层级目录。
中文标题默认转成小写拼音加连字符(如 用户登录流程 → #%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%E6%B5%81%E7%A8%8B),若预览点击失效,需在设置中启用 markdown.extension.toc.githubCompatibility。
- 保存时自动更新目录需开启
markdown.extension.toc.updateOnSave - 避免在标题中使用
:、?等 URL 不安全字符,否则锚点链接可能截断 - 配合
Pandoc可导出为 PDF,但需额外配置 LaTeX 模板才能保留代码块高亮
真正卡住进度的,往往不是生成单个注释块,而是让不同工具链之间不打架:DocumentThis 生成的 JSDoc、Doxygen 提取的 C++ 注释、Copilot 补的业务说明、Markdown 目录索引的章节,得统一放在一个可维护的结构里。没人会单独靠一个插件搞定全部,关键是明确每一步的输入输出边界——比如 Doxygen 只消费 ///,那就别指望 DocumentThis 生成的 /*<em> </em>/ 能被它识别。











