ReSharper 2025.2 Help

应用格式规则

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

当您在编辑器中输入代码时,ReSharper 会在您输入分号 后立即重新格式化表达式,并在您输入右大括号 } 后立即重新格式化代码块。 If necessary, you can disable these kinds of auto-formatting on the 环境 | 编辑器 | 行为 page of ReSharper 选项 Alt+R, O .

ReSharper 还允许您在粘贴代码时自动应用您的 格式规则。 默认情况下,粘贴的代码不会完全重新格式化,仅应用缩进设置。 如果您希望完全格式化粘贴的代码,或禁用粘贴时的格式化,请使用 ReSharper 选项 的 环境 | 编辑器 | 行为 页面上的 粘贴时自动格式化 选择器 Alt+R, O

请注意,默认情况下,Visual Studio 会对已编辑和粘贴的代码应用其自身的格式规则。 如果您正在使用 ReSharper 的自动格式化功能,我们建议您禁用 Visual Studio 的自动格式化。 您可以在 Visual Studio 选项中完成此操作(工具 | 选项)。 例如,对于 C#,清除 文本编辑器 | C# | 代码样式 | 格式化 | 常规 选项页面上的相应复选框。

重新格式化现有代码

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

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

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

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

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

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

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

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

重新格式化当前选区

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

  2. Alt+Enter 并选择 格式化和清理 | 格式化选区

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

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

使用 Code Cleanup 重新格式化代码

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

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

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

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

  2. 执行以下操作之一:

    • Control+Alt+F 或从主菜单中选择 ReSharper | 编辑| 清理代码…

    • 右键单击文本编辑器中的任意位置或右键单击选定内容,然后在上下文菜单中选择 清理代码

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

  4. 单击 运行。 ReSharper 将根据您的格式偏好重新格式化选定范围内的代码。

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

您可以在每次保存文件更改时应用格式偏好,以确保您的编辑始终符合您的代码样式。

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

  1. 从主菜单中选择 ReSharper | 选项 或按 Alt+R O

  2. 转到代码清理配置文件设置页面: 代码编辑 | 代码清理 | 配置文件

  3. 选择 内置:格式化代码 配置文件并单击 设为默认 (默认配置文件也用于 静默清理)。

  4. 转到 代码编辑 | 代码清理 | 常规 选项页面并选择 保存文件时自动运行清理

    可选地,您可以通过文件掩码限制自动清理到特定文件。

    您还可以选择 仅更改的文件部分 ,以确保清理仅应用于受更改影响的代码,而文件中的其余代码不会被修改。

    如果您选择仅清理文件的更改部分,可以通过以下选项微调此行为:

    • 如果无法执行部分清理,则执行完全清理 — 根据此选项,ReSharper 将清理整个文件,或者如果无法将清理限制为文件的修改部分,则跳过该文件。

    • 允许在保存共享文件时进行清理 — 使用此选项启用或禁用对多次包含在解决方案中的文件(例如共享项目中的文件)的部分清理。

  5. 在对话框中单击 保存 以应用修改,并让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置

  6. 下次您完成编辑并保存文件( Ctrl+S )或所有文件( Ctrl+Shift+S )时,ReSharper 将使用选定的配置文件清理受影响的文件。 如果未选择 默认清理配置文件 ,ReSharper 将提示您选择一个配置文件。

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

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

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

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

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

  • 一行有多条语句,

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

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

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

ReSharper:针对代码格式样式违规的代码检查和快速修复

保留现有格式

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

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

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

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

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

换行并截断长行

当您的光标位于超过允许的最大行长度的行上时, 长行换行截断长行 操作将变为可用,您可以在 ReSharper 选项 的 代码编辑 | C# | 格式化样式 | 换行和换行符 页面上通过 右边距(列) 偏好设置进行配置 Alt+R, O

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

ReSharper:换行并截断长行

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

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);

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

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

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

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

如果您有太多不利于阅读代码的换行符,删除它们可能是个好主意。 在下面的示例中,空的 getter 和 setter 不提供任何有用的信息,可以安全地放在单行上。 您可以使用 紧凑格式(较少换行) 操作完成此操作:

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月 27日