CLion教程-使用 ClangFormat 作为替代格式化工具

设置 | 编辑器 | 代码风格
默认情况下:禁用
如果检测到 .clang-format,则会自动启用
基于 Clangd 引擎
ClangFormat 是一个流行的代码格式化工具,有助于在团队成员和 IDE 之间保持统一的代码风格。它提供了在特殊的 YAML 文件中存储格式设置的选项,文件名为 .clang-format 或 _clang-format。在 CLion 中,您可以将 ClangFormat 用作内置代码格式化工具的替代方案。
.clang-format 配置文件
.clang-format 文件包含了格式约定,应放置在项目树中。每个文件都适用于同一级别和子目录中的代码文件。在单个项目中拥有多个 .clang-format 文件可以让您在需要时为不同的代码文件夹使用不同的样式。
ClangFormat 提供了许多样式选项,您可以将它们组合以创建最适合您团队的一组规则。它还为 C/C++ 提供了几种内置样式:LLVM、Google、WebKit、Chromium 和 Mozilla。这些预定义样式可以直接使用,或者作为自定义样式定义的基准。
要生成一个带有 LLVM 代码风格的 .clang-format 文件,运行以下命令(确保已经安装了ClangTools):
clang-format -style=llvm -dump-config > .clang-format
为帮助您创建 .clang-format 文件,有一些方便的交互式构建工具:clangformat.com 和另一种选择是 clang-format configurator
在 CLion 中使用 ClangFormat
当项目根目录下存在 .clang-format 文件时,CLion 会自动启用 ClangFormat 并应用设置。您还可以通过以下选项之一来启用/禁用 ClangFormat:
- 在 .h、.c 或 .cpp 文件中,从状态栏中的代码格式化切换器中单击“Enable ClangFormat”:
- 或者,在设置 | 编辑器 | 代码风格中,选择“Enable ClangFormat”复选框:
如果项目根目录下没有 .clang-format 文件,CLion 会建议根据当前 IDE 代码风格设置创建它。如果您拒绝,则会启用默认的 LLVM 样式的 ClangFormat。
在启用 ClangFormat 后,当您:
- 在编辑器中输入(包括在按 Enter 或 Backspace 之后进行缩进、自动完成、代码生成、重构和快速修复等操作)时,会应用适当的格式化。
- 调用 Code | Reformat Code CtrlAlt0L - 此操作还允许您重新格式化代码的选择,而不是整个文件。
- 提交更改并选择在提交之前操作中的 Reformat Code:
查看文件的 ClangFormat 设置
在编辑器中打开文件,然后从工具栏切换器中单击“View ClangFormat options for ...”:
- CLion 将显示从相应的 .clang-format 文件中获取的设置列表:
- CLion 将显示从相应的 .clang-format 文件中获取的设置列表:
此列表目前是只读的。要编辑设置,请直接在 .clang-format 文件中更改。
编辑 .clang-format 文件
- 在编辑器中打开所需的源文件,然后从工具栏切换器中单击“Edit '.clang-format' for...”:
为帮助您编辑 .clang-format 配置,CLion 提供了代码辅助功能,通过针对 ClangFormat 专门构建的 JSON Schema 对文件内容进行验证。代码辅助功能包括:
- 选项和值的自动完成,选项说明显示在弹出窗口中:
- 检查选项值与允许的值集的一致性:
- 快速文档弹出窗口CtrlQ,帮助您探索选项详细信息:
- 选项和值的自动完成,选项说明显示在弹出窗口中:
将格式化器设置导出到 .clang-format 文件
当您需要保存或共享内置代码格式化器的设置时,可以将其导出到 .clang-format 文件中:
- 转到 设置 | 编辑器 | 代码风格 | C/C++。
- 单击方案字段旁边的
,然后选择导出 | .clang-format 文件:
- 在打开的对话框中,指定文件名和位置。默认情况下,CLion 建议使用 .clang-format 和当前项目根目录。