使用 web-tree-sitter 解析 .c,自动生成/更新头文件函数声明(仅改声明文本,其他内容不动)。
功能
- 提取 .c 中的函数定义,生成规范声明。
- 解析现有 .h,对比同名声明,仅替换不一致的声明,保留注释/顺序/宏。
- 新增函数可写入自动生成块(默认追加到末尾,可通过头文件中的锚点注释控制位置)。
- 支持在
.c 中指定目标头文件(绝对或工作区相对路径),配置后不再生成同名 .h。
使用
- 打开
.c 文件,右键或命令面板执行 C: Generate Header from .c。
- 可选:在
.c 写一行注释指定头文件路径(单个头文件):
// c-header-generator: header=D:\Project\include\foo.h
- 若使用相对路径,则相对当前工作区根目录。
- 配置后仅更新该头文件,不再写同名
.h。
- 生成/更新后会在旁边打开头文件,提示结果。
行为说明
- 仅替换匹配函数名的声明文本;未找到的声明保持不变。
- 未出现在头文件的函数,默认在文件末尾追加自动块;你可以在头文件放置锚点注释控制插入位置:
static 函数会被忽略;extern 修饰会尽量保留。
- 头文件缺失时,会创建包含 include guard 与
extern "C" 包裹的新文件,并带自动生成块。
开发与构建
- 构建:
npm run compile
- 调试:VS Code F5,命令面板执行
C: Generate Header from .c
- 打包:
npx @vscode/vsce package
依赖
- Node 16+/npm
- web-tree-sitter runtime wasm:已随依赖提供,语言 wasm 位于
parsers/tree-sitter-c.wasm
| |