clang-format的使用

1. clang-format简介

Clang-Format可用于格式化(排版)多种不同语言的代码。
其自带的排版格式主要有:LLVM, Google, Chromium, Mozilla, WebKit等; 利用style参数配置风格。
通过编写 .clang-format 文件,可以实现代码风格的配置。

2. clang-format的使用

2.1 clang-format中.clang-format file

我们可以自定制代码风格约束,通过一下命令进行使用:

clang-format -style=file 

注意:file不是 .clang-format file的路径,就是file关键字;说明使用 the .clang-format file located in the closest parent directory of the input file. clang-format的设置进行代码约束;其他选项:-style=LLVM, Google, Chromium, Mozilla, WebKit

而.clang-format file由一下命令生成:生成google风格的clang-format配置文件

clang-format -style=google -dump-config > .clang-format

第二种方法配置:也可以通过设置key:value的方式进行
如:

clang-format -style="{BasedOnStyle: llvm, IndentWidth:8} ..."

2.2 示例:配置google的代码风格

#1) 生成.clang-format文件
clang-format -style=google -dump-config > .clang-format
# 2) 配置.clang-format: 参考:https://clang.llvm.org/docs/ClangFormatStyleOptions.html
# 3)通过.clang-format文件,进行代码风格约束
# 格式化结果打印到中断
clang-format -style=file code.cpp
# 直接修改文件
clang-format -style=file -i code.cpp

2.3 vscode clang-format配置

3. clang-format 中 .clang-format file配置(yaml格式)

3.1 配置多个语言的约束

---
# We'll use defaults from the LLVM style, but with 4 columns indentation.
BasedOnStyle: LLVM
IndentWidth: 4
---
# C++
Language: Cpp
# Force pointers to the type for C++.
DerivePointerAlignment: false
PointerAlignment: Left
---
Language: JavaScript
# Use 100 columns for JS.
ColumnLimit: 100
---
Language: Proto
# Don't format .proto files.
DisableFormat: true
---
Language: CSharp
# Use 100 columns for C#.
ColumnLimit: 100
...

3.2 将某段代码忽略format

int formatted_code;
// clang-format off
    void    unformatted_code  ;
// clang-format on
void formatted_code_again;

3.3 对齐方式

官方截图

3.4 数组的左右对其设置

实际None设置为false;
注意:clang-format的版本,只有13是支持的
13版本前不支持
官方截图

3.5 连续赋值语句的格式设置,是否等号对齐

根据下面的示例可以清楚的设置不同的格式情况;
注意:clang-format的版本,只有13是支持的
13版本前只支持true/false
官方图片
官方图片

3.6 AlignConsecutiveBitFields

官方截图-13
官方截图

3.7 AlignConsecutiveDeclarations

与AlignConsecutiveAssignments一样配置; 将声明语句与赋值语句对齐

3.8 宏的对齐AlignConsecutiveMacros

官方截图
官方截图

3.9 AlignEscapedNewlines(对齐选项中的反斜杠转义换行符)

在这里插入图片描述

3.10 对齐操作符

在这里插入图片描述

3.11 尾部注释格式

在这里插入图片描述

3.12 函数调用

在这里插入图片描述

3.13 函数对齐

在这里插入图片描述
根据需要设定不同的配置:
具体说明:https://clang.llvm.org/docs/ClangFormatStyleOptions.html

参考文献

  1. https://clang.llvm.org/docs/ClangFormatStyleOptions.html
### 在 VSCode 中设置和使用 Clang-Format 进行 C/C++ 代码格式化 #### 安装扩展 为了能够在 Visual Studio Code (VSCode) 中使用 `clang-format` 对 C/C++ 文件进行格式化,需安装 Microsoft 提供的官方 C/C++ 扩展[^1]。 #### 创建 `.clang-format` 配置文件 创建一个名为`.clang-format` 的配置文件来定义代码风格。可以通过命令行工具生成此文件: ```bash D:\Program Files\.vscode\extensions\ms-vscode.cpptools-1.12.4-win32-x64\LLVM\bin> clang-format --style=Google --dump-config > ./.clang-format ``` 上述命令基于 Google 编码标准设置了默认样式并将其保存到了项目根目录下的 `.clang-format` 文件中[^2]。 对于 JSON 类型文件,则可以采用特定参数生成相应的配置文件: ```bash D:\Program Files\.vscode\extensions\ms-vscode.cpptools-1.12.4-win32-x64\LLVM\bin> clang-format --style=Google --dump-config --assume-filename=.json > ./.clang-format ``` 这会确保即使处理的是非 C/C++ 文件也能应用合适的格式化规则。 #### 修改 VSCode 设置 为了让 VSCode 使用自定义的 `.clang-format` 文件来进行格式化操作,在工作区或用户级别的 settings.json 添加如下配置项: ```json { "C_Cpp.clang_format_style": "file:C:\\Users\\19817\\.clang-format" } ``` 这里指定了具体路径指向之前创建好的 `.clang-format` 文件位置[^3]。 完成以上步骤之后,当编辑器中的文档被保存时就会自动按照指定的编码规范重新排列代码结构;也可以通过右键菜单选择“格式化选定范围”手动触发该功能。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值