Repository navigation
Releases: FantastyQAQ/dsh-doxygen
Releases · FantastyQAQ/dsh-doxygen
Release list
v1.0.1
Doxygen 注释生成与维护工作流(C/C++,含 Qt),以 DeepSeek Harness 插件(skill)形式分发。
本次更新(相对 v1.0.0)
1. 没装 Python 时提前拦下
技能的所有脚本都是 Python。机器上没有解释器时,原先会崩在 agent 的 shell 里,抛一段与操作系统相关的报错,agent 很容易把它读成「没找到函数」,于是给出一个假的「这个文件没有函数」。
- 插件注册技能时先做一次环境预检:探测 Python 3.10+,并对
tree_sitter、tree_sitter_cpp做真实 import;结论注入技能正文开头。预检不通过就是硬停,直接给出安装步骤,工作流不启动。 - 探针本身是纯 Node(
scripts/lib/env.mjs),所以在没装 Python 的机器上也能跑出「缺什么」;能识别 Microsoft Store 的占位python.exe和坏掉的 shim,子进程输出按 GBK 兜底,Windows 下不乱码。 - 新增
scripts/check_env.mjs:手动复检 / 排障用,支持--json、--command,退出码0(可用)/2(缺依赖)/3(没有可用 Python)。 DOXYGEN_PYTHON可指定解释器绝对路径,覆盖python/py -3/python3的自动探测;多个候选都在时挑最可用的那个。
2. 对齐 dsh 0.2.1 宿主契约
- 安装命令改为
dsh plugin --profile desktop add ...。0.2.1 及更新的宿主必须带--profile,只写dsh plugin add ...会报required option '--profile <name>' not specified。 - 补上展示元数据:
locale/en.json、locale/zh.json(meta.title/meta.description)与icon.svg,并从package.json的exports导出。 - 技能改在
ctx.effect()内注册,注册归本插件所有,HMR 或禁用/启用时能正确释放,不再泄漏 registry 层条目。 resourceBase与${SKILL_DIR}提示统一用 POSIX 分隔符,与宿主自带参考插件一致。
3. 打包
- 生成的字节码(
__pycache__/.pyc)不再进包;files收窄到scripts/*.py、scripts/check_env.mjs、scripts/lib/env.mjs、locale/*.json、icon.svg。 - 当前包内容 17 个文件,44 KB(解包 129 KB)。
安装
dsh plugin --profile desktop add github:FantastyQAQ/dsh-doxygen也可以直接把仓库目录拷进技能目录(需命名为 doxygen-comment)。
运行时依赖
需要 Python 3.10+,并安装 C/C++ 解析器:
pip install tree-sitter tree-sitter-cpp
# 或使用本仓库固定下限的版本约束:
pip install -r requirements.txt已测试组合:tree-sitter 0.26.0 + tree-sitter-cpp 0.23.4。JS 入口 index.js 无运行时依赖。
装完先跑一次环境预检:
node scripts/check_env.mjs # 人看:通过/失败 + 安装步骤
node scripts/check_env.mjs --json # 机器看功能
- 六种注释模板:文件头
doxygen_source、函数doxygen_fun、模块头/尾doxygen_module_head/doxygen_module_end、行尾doxygen_rear、简短doxygen_nom。 scripts/parse_function.py:按行号或函数名定位函数,输出签名 JSON(返回类型、参数及in/out方向、起始行、签名指纹)。scripts/gen_doxygen.py:渲染 / 插入 / 补齐注释,写@doxygen_sig_fp指纹,打印 diff;默认不写盘,--write才落盘并保留原文件的 CRLF/LF 与 UTF-8 / UTF-8-BOM / GBK 编码。--scan:按指纹比对,把函数标记为missing/stale/partial/ok,纯格式变化(空白、*/&位置)不会误报过期。- 已有 Doxygen 块只补缺失字段并刷新指纹,不重写措辞;文件已有
@file块则跳过。 scripts/install_snippets.py(可选):把assets/cpp.json合并进 VS Code 风格 IDE 的用户代码片段,写入前备份。
验证
node scripts/check_env.mjs # 环境:Python + tree-sitter
python scripts/parse_function.py --file demo.cpp --list # 解析:打印出函数数组即可用本次发布包含
a0a358a对齐 dsh 0.2.1 宿主契约(--profile、locale/icon、ctx.effect注册、POSIX 路径、收窄 files)f0ad62b技能运行前预检 Python 运行时(scripts/lib/env.mjs、scripts/check_env.mjs、DOXYGEN_PYTHON、SKILL.md 预检章节、README 中英双节)cbee980多个 Python 候选取最可用的一个,并把生成的字节码挡在包外
完整用法见 README(中英双语)与 references/examples.md。
MIT License.
v1.0.0
Doxygen 注释生成与维护工作流(C/C++,含 Qt),以 DeepSeek Harness 插件(skill)形式分发。
安装
dsh plugin add github:FantastyQAQ/dsh-doxygen也可以直接把仓库目录拷进技能目录(需命名为 doxygen-comment)。
运行时依赖
需要 Python 3.10+,并安装 C/C++ 解析器:
pip install tree-sitter tree-sitter-cpp
# 或使用本仓库固定下限的版本约束:
pip install -r requirements.txt已测试组合:tree-sitter 0.26.0 + tree-sitter-cpp 0.23.4。JS 入口 index.js 无运行时依赖。
功能
- 六种注释模板:文件头
doxygen_source、函数doxygen_fun、模块头/尾doxygen_module_head/doxygen_module_end、行尾doxygen_rear、简短doxygen_nom。 scripts/parse_function.py:按行号或函数名定位函数,输出签名 JSON(返回类型、参数及in/out方向、起始行、签名指纹)。scripts/gen_doxygen.py:渲染 / 插入 / 补齐注释,写@doxygen_sig_fp指纹,打印 diff;默认不写盘,--write才落盘并保留原文件的 CRLF/LF 与 UTF-8 / UTF-8-BOM / GBK 编码。--scan:按指纹比对,把函数标记为missing/stale/partial/ok,纯格式变化(空白、*/&位置)不会误报过期。- 已有 Doxygen 块只补缺失字段并刷新指纹,不重写措辞;文件已有
@file块则跳过。 scripts/install_snippets.py(可选):把assets/cpp.json合并进 VS Code 风格 IDE 的用户代码片段,写入前备份。
验证
python scripts/parse_function.py --file demo.cpp --list打印出函数数组即安装可用。
本次发布包含
d4ec87ddoxygen-comment 技能首版7bb5fa0打包为可安装的 DSH 插件 bundle(dsh.bundle+index.js注册 skill)c81a274README「3. Dependencies」与 requirements.txt 明确写出 Python 3.10+ 与pip install tree-sitter tree-sitter-cpp
完整用法见 README(中英双语)与 references/examples.md。
MIT License.