JetBrains Rider 2025.1 Help

C++ 中的代码样式辅助

JetBrains Rider 提供了许多功能,帮助您保持代码整洁。 与大多数其他 JetBrains Rider 功能紧密结合,它们帮助您根据特定的代码样式生成代码并更改现有代码库。 代码样式包括命名标准、格式化规则以及许多其他细节,可以配置到非常详细的级别,并在团队中共享。

与其他语言类似,所有 C++ 代码样式偏好都可以通过单个命令在所需范围内应用,使用 在范围内修复或 代码清理。

请注意,内置的代码清理配置文件不包括某些 C++ 特定任务,因此您需要 创建一个新的自定义配置文件以启用它们。

管理和应用代码格式化规则

代码样式的一个重要方面是如何格式化代码,即如何使用空格、制表符和换行符来排列代码元素,是否以及如何使用制表符缩进,是否以及如何换行长行代码,等等。

JetBrains Rider 提供的广泛代码格式化规则集具有默认配置,考虑了许多最佳实践。 您可以 配置格式化规则的每个细节,并在代码中强制执行这些规则。 当 JetBrains Rider 使用 代码补全和 代码生成功能生成新代码时,应用 代码模板并执行 重构时,这些规则会被应用。 格式化规则也可以 应用于现有代码 ,包括当前选区、当前文件或更大范围,直至整个解决方案。

JetBrains Rider 使用 共享设置机制存储格式化偏好。 您可以在 编辑器 | 代码样式 | C++ 组下的选项页面中 配置格式化规则。 您还可以在 EditorConfig和 Clang-Format文件中 存储和共享格式化设置。

命名样式

JetBrains Rider 帮助您定义、控制和应用代码中符号的命名样式。 有一组规则,每条规则针对具有约束条件的特定标识符。 每条规则可以有一个或多个关联样式,这些样式定义了复合词的大小写、下划线、后缀、前缀等。

当 JetBrains Rider 使用 代码补全 和 代码生成 功能生成新代码时,应用 代码模板 或执行 重构 时,这些规则都会被考虑。 JetBrains Rider 还帮助您 检测并修复命名规则的违规情况。 如果需要,可以 配置或禁用命名规则的自动检查。

编辑命名规则

  1. 在 Rider 设置 Ctrl+Alt+S 中,转到 编辑器 | 代码样式 | C++ 并打开 Naming 选项卡。

  2. 在列表中选择所需的规则。

  3. 在页面右侧,检查规则的现有样式。

  4. 如果现有样式可接受,但您希望为此规则允许其他样式,请单击 添加 。当单个规则有多个样式时,如果符号名称至少符合其中一种样式,JetBrains Rider 不会 报告代码样式违规。 否则,JetBrains Rider 会检测到代码样式违规,并建议根据默认样式(列表中的第一个样式)重命名符号。 要更改默认样式,请使用 上移 和 下移 按钮。

  5. 要配置特定样式,请在列表中选择它并配置前缀、后缀,并选择命名样式。

  6. 要删除不必要的样式,请在列表中选择它并单击 移除。

  7. 如果需要,您可以禁用与此规则相关的 报告代码样式违规,同时仍允许 JetBrains Rider 检测其他命名规则违规。 为此,请清除 启用检查 复选框。

  8. 在 设置 对话框中单击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置。

如果您 正在处理 UE4 项目 ,JetBrains Rider 将自动应用与 Unreal Engine 编码标准对应的命名规则集,该规则集不可配置。 这意味着,当您处理 UE4 项目时,在 JetBrains Rider 设置 的 编辑器 | 代码样式 | C++ | 命名 页面上配置的规则将被忽略。 如果您仍希望使用您配置的规则集而不是 Unreal Engine 编码标准,可以禁用相应的检查。

JetBrains Rider:应用 UE4 命名约定

排列 cv-限定符

JetBrains Rider 帮助您在 生成的代码中排列 cv-限定符。 在 JetBrains Rider 选项的 语言与框架 | C++ | 代码样式 页面上,您可以指定是否将 cv-限定符放在类型说明符之前或之后,以及 const 和 volatile 修饰符的顺序。

Include 指令样式

在 JetBrains Rider 选项的 语言与框架 | C++ | 代码样式 页面,您可以指定在 生成的代码 中的 include 指令中使用正斜杠还是反斜杠作为路径分隔符。 您还可以指定是否在头文件中生成前向声明。

排序 Include

JetBrains Rider 允许您对 #包含  指令进行排序,重新排列现有组,并创建用空行分隔的新组。

当插入符号位于  #包含  指令上时, 对 #include 指令排序 子菜单中有三个上下文操作:

排序 #include 指令

对 #include 指令排序和重新分组

此操作将所有  #包含  组合并为一个,然后根据配置的设置对其进行排序并拆分为新组。

JetBrains Rider C++:排序并重新分组 #include 指令

分别对每个 #include 组排序

此操作独立对每个组内的  #包含  指令进行排序,不更改现有分组。

JetBrains Rider C++:分别排序每个 #include 组

仅对当前 #include 组排序

此操作对插入符号所在的组进行排序。

您可以在 JetBrains Rider 设置 的 语言与框架 | C++ | 代码样式 页面上配置排序规则 Ctrl+Alt+S。

也可以使用 代码清理 应用 include 的排序。

默认指针初始化样式

您可以指定 0、 nullptr 或 NULL 作为指针初始化器的首选初始化器,例如: const char *foo = nullptr。 您可以在 JetBrains Rider 选项的 语言与框架 | C++ | 代码样式 页面上更改您的偏好。

文件头样式

使用文件头来记录版权声明和其他标识信息是一种常见做法。 JetBrains Rider 允许您配置默认的文件头文本,并将其自动插入到源文件中,或用它替换现有的文件头。

您可以在 JetBrains Rider 设置 或 .editorconfig 文件 中配置文件头样式,然后将其添加到使用 文件模板 创建的新文件中,并使用 代码清理 插入或替换现有文件中的文件头。

为了确保由不同团队成员创建和编辑的文件具有相同的文件头样式,请与您的团队 共享文件头设置。

2025年 7月 31日