SuperAPI AI 工具集

cpp-include-sorter

智能体与模型

查看项目

更新于 10-16 07:28

技能介绍

用途:自动排序 C/C++ 源文件中的 #include 语句,并智能处理条件编译块,适合在 Claude 需要整理头文件引用时使用。

主要能力:将 include 分为三类并用空行分隔——对应头文件(如 file.cpp 对应 file.h,重复时优先最长路径)、系统头文件(尖括号,按字母排序)、本地头文件(双引号,按字母排序)。#ifdef/#ifndef/#if defined 块作为整体参与全局排序,块内头文件也会排序(系统在前、本地在后),并保留块结构,支持 #elif 与 #else。

其他特性:重复 include 处理(同名不同路径时取最长路径作为对应头文件并置顶)、保留行内注释与前置注释、支持嵌套条件块、排序后校验头文件未丢失。

使用方式: 排序目录下所有 .cpp 文件: python scripts/sort_includes.py <directory-path>

预览而不修改文件: python scripts/sort_includes.py <directory-path> --dry-run

实现细节见 scripts/sort_includes.py,关键函数包括 extract_includes_with_ifdef()、sort_includes_with_ifdef()、format_ifdef_block()。

验证:排序后确认各 #ifdef 块头文件数量不变、对应头文件路径完整、include 总数不变、注释保留。可用 git diff <file.cpp> | grep "^[-+]" | grep "include" 对比前后差异。

限制:资料未提供支持的文件扩展名范围、Python 版本要求、安装步骤及性能说明。