使用 Clang-Format
在 C++ 文件中,JetBrains Rider 支持在 Clang-Format 中定义的格式化样式。 默认情况下,Clang-Format 配置文件会自动用作格式化样式设置的来源。
什么是 Clang-Format,JetBrains Rider 如何支持它?
Clang-Format 是一种广泛使用的 C++ 代码格式化工具。 它提供了一种选项,可以在 YAML 格式的文件中定义代码样式选项——文件名为 .clang-format 或 _clang-format ——这些文件通常会成为您项目的一部分,用于存储所有代码样式规则。
要查看 Clang-Format 样式选项的完整列表以及配置文件的示例,请查看 Clang-Format 文档。
在 JetBrains Rider 中有两种使用 Clang-Format 的方法:
如果您的项目代码样式已在 Clang-Format 文件中配置,JetBrains Rider 的代码格式化引擎可以使用这些样式中的 大部分样式 来格式化 C++ 文件,此外还支持其原有样式。 请注意,如果存在冲突, .clang-format 文件中的设置将覆盖 *.DotSettings 中的设置。
If you prefer the default LLVM-style formatting and want to use clang-format as code formatter, you can choose Clang-format under C++ 格式化引擎 on the page of JetBrains Rider 设置 Ctrl+Alt+S, and optionally specify a custom Clang-format executable. 在这种情况下, .clang-format 配置文件将被自动读取。
在您的解决方案中使用 Clang-Format
默认情况下,即使您选择使用 ReSharper C++ 格式化引擎,JetBrains Rider 也会考虑 Clang-Format 属性,并且这些属性将覆盖在 JetBrains Rider 设置 中定义的偏好设置以及 EditorConfig 样式。 如果您希望 JetBrains Rider 忽略 Clang-Format 样式的代码格式化和代码语法,请在 JetBrains Rider 设置 的 页面中清除相应的复选框。
当启用 Clang-Format 支持并且存在影响当前文件的 .clang-format 或 _clang-format 文件时,JetBrains Rider 将帮助您了解应用了哪些 Clang-Format 样式以及这些设置的来源:
在 JetBrains Rider 的 C++ 格式化选项页面上,如果页面上的至少一个偏好设置被当前文件的 Clang-Format 样式覆盖,您将看到一个黄色警告,每个被覆盖的偏好设置也会以黄色突出显示。 例如:

在 代码样式配置对话框 中,您可以查看并研究所有影响当前文件的 .clang-format 和 _clang-format 文件:

将代码样式设置导出到 Clang-Format
如果您打算通过 Clang-Format 共享代码样式设置,您可能希望将 JetBrains Rider 中已配置的样式导出到 .clang-format 文件。
按 Ctrl+Alt+S 或从菜单中选择 (Windows 和 Linux)或 (macOS),然后在左侧选择 。
点击 将当前样式写入 .clang-format。 这将打开 导出到 .clang-format 对话框。
默认情况下,JetBrains Rider 会将设置写入当前解决方案根目录中的一个新的 .clang-format 文件。 如果存在一个或多个 .clang-format 文件,JetBrains Rider 将使用目录层次结构中最近的文件来保存设置。 如果需要,您可以使用对话框顶部的路径选择器更改目标文件。
要进行更详细的配置,您可以展开 显示其他选项 并选择以下选项:
- BasedOnStyle
设置相应的选项以定义 默认情况下所有选项使用的样式。
- 隐藏与所选基础样式一致的选项
与在 BasedOnStyle 中选择的基础样式中定义的值相同的选项将不会被导出。
- 导出 Cpp 设置
定义是否导出影响 C++ 代码的 Clang-Format 选项。
如果指定位置中已存在一个 .clang-format 文件,则该文件中已有属性的值可能与 JetBrains Rider 即将保存的值之间存在冲突。 这些属性将以红色显示,如果您继续保存,冲突将以新生成的值为准。
点击 导出。 JetBrains Rider 将在指定位置创建或更新 .clang-format 文件。
在 上下文配置 格式化规则后,您也可以将格式化样式保存到 Clang-Format。
支持的 Clang-Format 选项
|
|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|