# clang-format **Repository Path**: PhoenixWing321/clang-format ## Basic Information - **Project Name**: clang-format - **Description**: 学习和测试clang-format工具 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2023-01-25 - **Last Updated**: 2025-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # clang-format #### 介绍 学习和测试clang-format工具 # 目录 ## format1 - 进入目录format1,运行clangfile.bat,查看几个cpp的变化 ``` clang-format\format1> .\clangfile.bat ``` ## format2 测试下面的文章的格式:https://blog.csdn.net/hezhanran/article/details/107772868 - 进入目录format2,运行clangfile.bat,查看几个cpp的变化 ``` clang-format\format2> .\clangfile.bat ``` ### 说明bat clang bat的部分说明 ``` rem 参数 /R 表示需要遍历子文件夹,去掉表示不遍历子文件夹 rem %%f 是一个变量,类似于迭代器,但是这个变量只能由一个字母组成,前面带上%% rem 括号中是通配符,可以指定后缀名,*.*表示所有文件 ``` ## formatRule 测试官网介绍的格式:https://clang.llvm.org/docs/ClangFormatStyleOptions.html ### VS code下测试clang-format 结论 #### 不同目录: ##### 1. 建立多个目录,一个目录一个.clang-format文件,是否分别有效? 有效,可以分别控制各个目录下的文件。 ##### 2. 多个文件夹共用父目录的.clang-format文件,是否有效? 有效,可以控制共用,子目录下文件 格式化 有效 ##### 3. 子目录有.clang-format,父目录也有.clang-format,谁生效? 子目录下的生效,父目录下的无效 ##### 4. 单独测试头文件 ``` # 允许排序#include # 有空行分割时,以空行分组,分别进行排序 # 同一组内的#incude 自动合并重复的 SortIncludes: true # 访问说明符(public、private等)的偏移 #偏移指的是 相对于离得最近的大括号 0:一个tab -2:一个tab-2 AccessModifierOffset: -2 ``` 注意:clang-format格式配置文件名,只能为.clang-format或者_clang-format,不然clang-format工具无法识别。 ### 不同工具: #### 安装c/c++和clang-format插件,配置插件路径:可行 #### 安装LLVM工具,配置路径:可行 settings.json配置: ``` "clang-format.executable": "C:\\Users\\Administrator\\.vscode\\extensions\\ms-vscode.cpptools-1.9.8-win32-x64\\LLVM\\bin\\clang-format", //"clang-format.executable": "F:/LLVM/bin/clang-format", ```