JetBrains Rider 2025.2 Help

使用 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 编辑器 | 代码样式 | C++ | 常规 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 设置 的 编辑器 | 代码样式 | C++ | 常规 页面中清除相应的复选框。

当启用 Clang-Format 支持并且存在影响当前文件的 .clang-format _clang-format 文件时,JetBrains Rider 将帮助您了解应用了哪些 Clang-Format 样式以及这些设置的来源:

  • 在 JetBrains Rider 的 C++ 格式化选项页面上,如果页面上的至少一个偏好设置被当前文件的 Clang-Format 样式覆盖,您将看到一个黄色警告,每个被覆盖的偏好设置也会以黄色突出显示。 例如:

    被 Clang-Format 样式覆盖的代码格式选项
  • 代码样式配置对话框 中,您可以查看并研究所有影响当前文件的 .clang-format _clang-format 文件:

    JetBrains Rider。 代码样式配置对话框

将代码样式设置导出到 Clang-Format

如果您打算通过 Clang-Format 共享代码样式设置,您可能希望将 JetBrains Rider 中已配置的样式导出到 .clang-format 文件。

  1. Ctrl+Alt+S 或从菜单中选择 文件 | 设置 (Windows 和 Linux)或 JetBrains Rider | 首选项 (macOS),然后在左侧选择 编辑器 | 代码样式 | C++ | 常规

  2. 点击 将当前样式写入 .clang-format。 这将打开 导出到 .clang-format 对话框。

  3. 默认情况下,JetBrains Rider 会将设置写入当前解决方案根目录中的一个新的 .clang-format 文件。 如果存在一个或多个 .clang-format 文件,JetBrains Rider 将使用目录层次结构中最近的文件来保存设置。 如果需要,您可以使用对话框顶部的路径选择器更改目标文件。

  4. 要进行更详细的配置,您可以展开 显示其他选项 并选择以下选项:

    BasedOnStyle

    设置相应的选项以定义 默认情况下所有选项使用的样式

    隐藏与所选基础样式一致的选项

    与在 BasedOnStyle 中选择的基础样式中定义的值相同的选项将不会被导出。

    导出 Cpp 设置

    定义是否导出影响 C++ 代码的 Clang-Format 选项。

  5. 如果指定位置中已存在一个 .clang-format 文件,则该文件中已有属性的值可能与 JetBrains Rider 即将保存的值之间存在冲突。 这些属性将以红色显示,如果您继续保存,冲突将以新生成的值为准。

  6. 点击 导出。 JetBrains Rider 将在指定位置创建或更新 .clang-format 文件。

上下文配置 格式化规则后,您也可以将格式化样式保存到 Clang-Format。

支持的 Clang-Format 选项

BasedOnStyle

AlignConsecutiveAssignments

AlignConsecutiveDeclarations

AlignAfterOpenBracket

AlignOperands

AlignTrailingComments

AllowShortCaseLabelsOnASingleLine

AlwaysBreakAfterDefinitionReturnType

AlwaysBreakAfterReturnType

AlwaysBreakTemplateDeclarations

BinPackArguments

BinPackParameters

BreakBeforeBraces (除了 自定义Linux 中的类定义)

BreakBeforeTernaryOperators

BreakConstructorInitializersBeforeComma

ColumnLimit

ConstructorInitializerAllOnOneLineOrOnePerLine

IncludeBlocks

IncludeCategories

IncludeIsMainRegex

IndentCaseLabels

IndentWidth

IndentWrappedFunctionNames

MaxEmptyLinesToKeep

NamespaceIndentation

PointerAlignment

SortIncludes

SpaceAfterCStyleCast

SpaceAfterTemplateKeyword

SpaceBeforeParens

SpacesInAngles

SpacesInParentheses

SpacesInSquareBrackets

TabWidth

UseTab

最后修改日期: 2025年 9月 26日