JetBrains Rider 2025.2 Help

应用格式化规则

自动格式化已编辑和粘贴的代码

当您在编辑器中输入代码时,JetBrains Rider 会在您输入分号 后立即重新格式化表达式,并在您输入右大括号 } 后立即重新格式化代码块。 如有需要,您可以在 JetBrains Rider 设置 的 编辑器 | 常规 | 输入辅助 页面上禁用此类自动格式化 Ctrl+Alt+S

JetBrains Rider 还允许您在粘贴代码时自动应用 格式化规则。 默认情况下,粘贴的代码不会完全重新格式化,仅应用缩进设置。 如果您希望完全格式化粘贴的代码,或禁用粘贴时的格式化,请使用 JetBrains Rider 设置 的 编辑器 | 常规 | 输入辅助 页面上的 粘贴时自动格式化 选择器 Ctrl+Alt+S

重新格式化现有代码

JetBrains Rider 提供了几种重新格式化现有代码的方法。 简而言之,您始终可以使用 Ctrl+Alt+L ,但以下描述了一些详细信息和替代方法。

在任何范围内重新格式化现有代码

  1. 选择您希望重新格式化代码的范围:

    • 在编辑器中选择一个范围以重新格式化选区中的代码。

    • 将光标放在文件中的任意位置以重新格式化文件中的代码。

    • 选择 解决方案资源管理器 中的一个或多个项目,以重新格式化这些项目及其子项目下的文件中的代码。

  2. Ctrl+Alt+L 或从主菜单中选择 代码 | 格式化代码。 或者,您可以按 Ctrl+Shift+A ,在弹出窗口中开始输入命令名称,然后在那里选择它。

您可以直接从 Alt+Enter 列表中重新格式化当前选区中的代码。

重新格式化当前选区

  1. 在编辑器中,选择您想要重新格式化的代码块。

  2. Alt+Enter 并选择 重新格式化和清理 | 重新格式化选定内容

    重新格式化当前选中的代码

或者,您可以使用 code cleanup在任何范围内重新格式化代码。 如果您希望将代码重新格式化与应用其他代码样式结合起来,Code Cleanup 可能会有所帮助。

使用 Code Cleanup 重新格式化代码

  1. 选择您希望重新格式化代码的范围:

    • 在编辑器中选择一个范围以重新格式化选区中的代码。

    • 将光标放在文件中的任意位置以重新格式化文件中的代码。

    • 选择 解决方案资源管理器 中的一个或多个项目,以重新格式化这些项目及其子项目下的文件中的代码。

  2. Ctrl+R, C 或从主菜单中选择 代码 | 格式化和清理…

  3. 在打开的 重新格式化并清理代码 对话框中,选择 Built-in: Reformat Code 配置文件。

  4. 点击 确定。 JetBrains Rider 将根据您的格式化偏好重新格式化选定范围内的代码。

如果您希望在不打开 重新格式化并清理代码 对话框选择配置文件的情况下重新格式化代码,可以将默认的 Reformat Code 配置文件绑定到 silent cleanup ,并通过按 Ctrl+R, G 运行它。 您还可以创建一个 自定义清理配置文件 ,将代码重新格式化与其他代码样式任务结合起来。

您可以在最近修改并准备提交到 Git 的代码中应用格式化偏好。 JetBrains Rider 将在提交之前运行选定的 清理配置文件

在提交到 Git 之前重新格式化代码

  1. Ctrl+K 或从主菜单中选择 Git | 提交(I)

  2. 提交 工具窗口中,点击 显示提交选项 ,并在 提交检查 区域中,选择 重新设置代码格式 复选框。

  3. 点击 提交提交并推送。 JetBrains Rider 将重新格式化提交阶段的文件中的代码,然后提交更改。

您可以在每次保存文件更改时应用格式化偏好,以确保您的编辑始终符合代码样式。 请注意,这仅在您通过 Ctrl+SCtrl+S 显式保存更改时发生,不会因 自动保存 而触发。 然而,所有自动保存的文件都会被放入“重新格式化和清理”队列,并将在下次显式保存时处理。

在保存更改时自动应用格式化偏好

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 工具 | 保存时的操作

  2. 选择 重新格式化并清理代码 ,选择 内置:格式化代码 配置文件,并决定是将其应用于整个文件还是仅应用于更改的行。

  3. 下次您完成编辑并保存文件或所有文件时,JetBrains Rider 将使用选定的配置文件清理受影响的文件。

使用代码检查在 C# 和 C++ 中维护格式化规则

在 C# 和 C++ 中,还可以使用 代码检查功能维护代码格式化样式。 JetBrains Rider 提供了 数十种格式化检查,默认情况下均被禁用。

根据解决方案,您的代码库可能存在数百个轻微的格式化违规,例如方法间不同的缩进大小、switch 语句中不同的 case 标签缩进、缺少换行符等。 为所有这些违规启用代码检查可能会过于繁琐。

另一方面,有些格式化问题会降低代码的可读性或影响您对代码的理解。 例如:

  • 同一行上的多个类型成员,

  • 一行有多条语句,

  • 子语句周围的缩进不正确,

  • 声明大括号周围的缩进不正确。

对于此类格式化问题,我们建议 启用代码检查。

保持现有格式

您可以“软性”应用某些格式化规则,这意味着当 JetBrains Rider 使用 代码补全代码生成功能生成新代码时,应用 代码模板并执行 重构时,这些规则将被应用,但在您 重新格式化现有代码时(例如,使用 Ctrl+Alt+L ),这些规则将被忽略。

为了使格式化规则不那么严格,请为特定上下文使用 保留现有的...保留最大空行数简单换行 偏好设置。 您可以在 JetBrains Rider 设置 的 Ctrl+Alt+S 中检查或更改这些偏好的配置:

JetBrains Rider:为选定规则保留现有格式

使用不同的换行样式重新格式化代码

JetBrains Rider 还允许您使用显式操作而不是格式化规则,以不同方式重新格式化相似的代码。 当您选择 保留现有格式以适用于相关规则时,这些操作最为有用。 但是,如果您有更严格的设置,则相应的显式格式化操作将不起作用,因为此类配置意味着格式化规则应始终在受影响的上下文中应用。 例如,如果 保留现有的... 偏好被禁用,则下面描述的 wrap/chop/spacious/compact 命令将呈现相同的结果。 如果某些换行规则设置为 截断... ,则即使您调用 wrap/compact 命令,相应上下文中的代码也将始终被截断。

换行并截断长行

当您的光标位于超过允许的最大行长度的行上时, 长行换行截断长行 操作将变为可用——您可以在 JetBrains Rider 设置 的 编辑器 | 代码样式 | C# | 换行和换行规则 页面上使用 右边距(列) 偏好设置进行配置 Ctrl+Alt+S

您可以按 Alt+Enter 并选择其中一个操作以添加必要的换行符。

JetBrains Rider:换行并截断长行

长行换行 将添加足够的换行符以确保不超过配置的行长度:

var reportHtml = CreateReport("359CD313-7C7E-49B2-A2AB-E12FDFD1319D", DateTimeOffset.UtcNow.AddMonths(-1), DateTimeOffset.UtcNow, useRichText: true);
var reportHtml = CreateReport("359CD313-7C7E-49B2-A2AB-E12FDFD1319D", DateTimeOffset.UtcNow.AddMonths(-1), DateTimeOffset.UtcNow, useRichText: true);

截断长行 将为行上的每个实体添加换行符:

var reportHtml = CreateReport("359CD313-7C7E-49B2-A2AB-E12FDFD1319D", DateTimeOffset.UtcNow.AddMonths(-1), DateTimeOffset.UtcNow, useRichText: true);
var reportHtml = CreateReport("359CD313-7C7E-49B2-A2AB-E12FDFD1319D", DateTimeOffset.UtcNow.AddMonths(-1), DateTimeOffset.UtcNow, useRichText: true);

紧凑、宽松和严格的代码块格式

另一组用于显式重新格式化选定代码的操作可帮助您强制执行更紧凑(更少的换行符)或更宽松(更多的换行符)的样式。

要调用这些操作,请选择一个代码块(您可以多次按 Ctrl+W 以选择逻辑块),按 Alt+Enter 并选择 重新格式化和清理 | 重新格式化选定内容

JetBrains Rider:紧凑、宽松和严格的代码块格式

如果您有太多换行符,而这些换行符并未帮助阅读代码,那么删除它们可能是个好主意。 在下面的示例中,空的 getters 和 setters 不提供任何有用的信息,可以安全地放在单行中。 您可以使用 紧凑格式(较少换行) 操作来完成此操作:

public string Name { get; set; } public int Age { get; set; }
public string Name { get; set; } public int Age { get; set; }

您可能希望使用 宽松格式(截断) 使多行代码块更易于阅读。 例如,您可能希望在复杂的 if 语句或繁重的 XElement 构造函数调用中添加更多换行符:

summaryTable.Add(new XElement("tr", new XElement("td", XmlHelpers.CreateHyperlink(inspection.Text, CodeInspectionHelpers.TryGetStaticHref(inspection.Id), null, true), new XComment(compoundName)), new XElement("td", GetSeverityLink(inspection.Severity))));
summaryTable.Add(new XElement("tr", new XElement("td", XmlHelpers.CreateHyperlink(inspection.Text, CodeInspectionHelpers.TryGetStaticHref(inspection.Id), null, true), new XComment(compoundName)), new XElement("td", GetSeverityLink(inspection.Severity))));

严格格式 操作将重新格式化选区,忽略任何现有的换行符,而不受 保留现有的... 偏好设置的影响; 仅重新缩进 操作将修复缩进,而不应用任何其他格式化偏好设置。

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