clang-format 是 LLVM 下的一款代码风格格式化工具,它支持多种代码格式化风格,如:Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit。团队中也可以根据配置定义自己的代码格式化风格保存到 .clang-format 配置文件中并放在项目工程目录下提供所有项目参与者使用,但如何让 .clang-format 工作起来呢?本文将讨论各类主流编辑器、IDE 是如何让 .clang-format 配置工作并且在代码粘贴或保存时自动进行格式化。

Visual Studio Code

Visual Studio Code 简称 VSCode,是目前为止从前端到客户端最通用的编辑器,他可以通过各类插件组合成为一个比个别 IDE 都强大的开发工具。VSCode 使用使用 .clang-format 配置只需要安装一个名为 C/C++ Extension Pack 的插件即可,里面包含了必备的 CMake、C++ Tools 等插件。 随后打开 VSCode,点击左上角 File->Preference->Settings: 搜索 Format On Save 关键字,将其勾选起来: 这样当我们打开一个带有 .clang-format 配置的工程时,会自动根据当前工程中的配置文件在编写代码保存时自动格式化代码,效果如下: 你不需要单独安装 clang-format,因为 VSCode 在安装 C++ Tools 插件的时候会自动安装 LLVM 的 clang-format: 并且在设置中搜索 clang-format 相关设置时你可以看到,VSCode 查找 clang-format 的顺序如下:

  1. 你输入的绝对路径
  2. 在环境变量中查找 clang-format
  3. 使用默认自带的 clang-format

所以 VSCode 是有兜底的,无论你是否指定了绝对路径或环境变量中是否有 clang-format。 另外如果你希望项目中所有人都使用相同的配置,可以将 User 相关的配置切换到 Workspace 中,选择 Format On Save 后会自动创建一个 settings.json 的配置文件在项目工程下的 .vscode 文件夹,你可以将这个目录上传到 git 仓库,让大家 clone 下来的代码都带有该配置。Workspace 的优先级高于 User。

Visual Studio

Visual Studio IDE 简称 VS,在安装了 2017 以上版本的 IDE 以后会自动安装 LLVM 工具链中的 clang-format 工具。你只需要在选项设置中将自动格式化打开即可。 这里并没有在保存时自动格式化代码的开关,没办法只能借助第三方插件来实现,在拓展中心中搜索 Format document on Save 安装它就可以在修改代码保存时自动格式化了,效果如下:

其他

待补充