使用Clang格式化代码

在写c/c++ 代码的时候,经常需要格式化代码,提高可读性, 这里介绍几种方法方便格式化

安装工具

Clang( 附带安装clang-tidy,git-clang-format,clang-tidy-format)

$clang-format -version
clang-format version 10.0.0 

which clang-format   
/usr/bin/clang-format

使用

clang-format  -i -style=file test.cpp

-i 表示覆盖文件,否则会把格式化的文件打印出来
-style 是风格设置, file 时会在工作目录查找.clang-format 文件,这个文件可以在官网下载,然后自己根据需要修改。

vscode 集成

  1. 安装c/c++ 插件后,配置settings.json
// "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉
    // "C_Cpp.clang_format_sortIncludes": true, // 格式化时调整include的顺序(按字母排序)
    // "C_Cpp.clang_format_path": "/usr/bin/clang-format",
    // "C_Cpp.clang_format_style": "file"
  1. 配置save 时进行格式化

git 集成

clang 提供了 git-clang-format 的工具, 当stage 文件之后, 执行 git-clang-format 可以格式化代提交的代码, 比起vscode 的自动格式化,这种效率比较高

git-clang-format                                          
changed files:
    test/test.cpp

当没有文件stage 时

$git-clang-format
clang-format did not modify any files