Skip to content

Releases: FantastyQAQ/dsh-doxygen

Release list

v1.0.1

Choose a tag to compare

@FantastyQAQ FantastyQAQ released this 19 Oct 16:27

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

Choose a tag to compare

@FantastyQAQ FantastyQAQ released this 17 Oct 10:01

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

打印出函数数组即安装可用。

本次发布包含

  • d4ec87d doxygen-comment 技能首版
  • 7bb5fa0 打包为可安装的 DSH 插件 bundle(dsh.bundle + index.js 注册 skill)
  • c81a274 README「3. Dependencies」与 requirements.txt 明确写出 Python 3.10+ 与 pip install tree-sitter tree-sitter-cpp

完整用法见 README(中英双语)与 references/examples.md。

MIT License.