配置格式化规则
格式化规则可以配置得非常详细。 例如,您可以定义是否应在特定运算符周围放置空格,或者是否缩进嵌套的 using 语句。
在选项中配置代码格式化规则
从主菜单中选择 或按 Alt+R O 。
使用 页面检查并配置适用于所有语言的选项。
使用 页面配置特定语言的格式化偏好。 在这些页面上,您可以使用底部的预览区域查看 ReSharper 如何将特定偏好应用于代码。
单击 选项 对话框中的 保存 应用修改,让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
为选定的代码配置格式化规则
作为浏览设置页面的替代方法,您可以选择一段代码,仅配置适用于该段代码的格式化规则。 您将能够直接在编辑器中观察修改后的设置如何影响选定的代码块。
在编辑器中,选择您希望格式化的代码块。
按 Alt+Enter 并选择 。
在打开的对话框中,您将看到影响选定代码块的所有语法样式和格式化规则。 代码块本身将被虚线框包围:

当您更改格式化规则时,您将看到它们如何影响选定代码块中的代码。
在对话框中单击 保存 以应用修改,并让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
请注意,您还可以通过在 保存到 选择器中选择 .editorconfig 来 导出配置的格式化规则到 EditorConfig。
可选地,您可以单击 另存为注释。 通过这种方式,您的修改将以 注释的形式保存在选定块的前后。 这使您可以在本地覆盖所需的格式化规则,而无需修改任何设置。
ReSharper 将关闭对话框并在代码块中应用修改后的格式化规则。
从现有代码中学习格式化规则
调整单个格式化偏好的另一种方法是从现有代码示例中学习格式化规则,该示例可以是选定的代码块、当前文件、一组文件、一个或多个项目或整个解决方案。 ReSharper 将分析选定的示例并列出与您当前设置不同的格式化规则。 然后,您可以查看检测到的规则,根据需要更改它们,并将其保存到所需的 设置层或 .editorconfig或 .clang-format格式的配置文件中。
选择您希望分析格式化设置的范围:
在编辑器中选择一部分内容以分析选定内容中的格式化设置。
将光标放置在文件中的任意位置以分析文件中的格式化设置。
在 解决方案资源管理器 中选择一个或多个项目,以分析这些项目及其子项目下文件的格式化设置。
执行以下操作之一:
从主菜单中选择 。
如果代码示例是选定内容,请按 Alt+Enter 并选择 。
查看与您当前设置不同的规则:

在对话框中单击 保存 以应用修改,并让 ReSharper 选择保存位置,或者通过从 保存到 选择器中选择特定的设置层来保存修改。 有关更多信息,请参见 管理和共享 resharper 设置。
如果代码示例是选定内容,您可以选择单击 另存为注释。 通过这种方式,您的修改将以 注释的形式保存在选定块的前后。 这使您可以在本地覆盖所需的格式化规则,而无需修改任何设置。
使用注释配置格式化器
ReSharper 允许您偏离已配置的格式化规则,而无需实际更改规则。 您甚至可以完全禁用代码的某些部分的格式化器。
您可以使用注释在 C#、C++、JavaScript、TypeScript、HTML 和 Protobuf 中配置格式化器。
要禁用格式化器,请使用以下注释:
// @formatter:off— 禁用此行后的格式化器// @formatter:on— 启用此行后的格式化器
如果禁用格式化器过于极端,您可以通过注释更改任何单个格式化规则。
通过注释更改单个格式化规则
找到您想要调整的格式化规则的名称。 You can look it up on the page of ReSharper 选项 Alt+R, O or alternatively, you can select a code block where the desired rule applies, press Alt+Enter, and choose 格式化选区 | 配置. 在打开的对话框中,您可以研究影响选定内容的所有规则,甚至更改它们以查看更改的实时预览。 在此对话框中,您还可以单击 另存为注释 ,ReSharper 将为所有修改的规则生成必要的注释。 .
当您知道规则的名称时,您可以在 EditorConfig 属性索引 中查找其 ID — 在浏览器中使用搜索。 例如,如果您想找到触发分号前空格的规则,请搜索 分号前 ,您将找到 ID:
space_before_semicolon。当您在索引网页上找到规则的 ID 后,单击描述链接以了解该规则允许的值。 以
space_before_semicolon为例,它 可以接受true或false。在您希望更改规则的代码之前添加以下注释:
// @formatter:<rule_ID> <value>例如,要启用分号前的空格,请添加:
// @formatter:space_before_semicolon true.
规则的新值将应用到文件末尾。 如果您想恢复到 选项 中配置的值,请添加以下注释:
// @formatter:<rule_ID> restore例如:
// @formatter:space_before_semicolon restore.
存储并共享格式化规则
您的代码格式化偏好是通过 基于层的设置机制保存的。 除此之外,该机制还允许您为不同的解决方案维护不同的偏好,并将这些偏好保存在 VCS 中,自动与团队成员共享。
您还可以通过 EditorConfig为所有语言以及 Clang-Format为 C++、JavaScript 和 TypeScript 配置格式化设置。 这些设置可以存储在 .editorconfig 、 .clang-format 或 _clang-format 文件中,位于解决方案层次结构的不同级别。 这些文件通常放在 VCS 下,以便项目团队共享其中定义的设置。
ReSharper 允许您使用 EditorConfig 定义 ReSharper 选项 对话框中可用的任何格式化偏好。 您可以在 EditorConfig 参考中找到支持的 EditorConfig 属性的名称和描述。
至于 Clang-Format,ReSharper 只会应用 支持的 Clang-Format 选项。
需要注意的是,任何在 .editorconfig 文件中定义的格式化属性都将覆盖在 ReSharper 设置中定义的相同属性,适用于此 .editorconfig 文件的范围。 在 Clang-Format 中定义的格式化属性将覆盖 ReSharper 设置和 EditorConfig 设置。
共享格式化选项时需要了解的另一件重要事情是,缩进样式(制表符/空格)和大小默认取自 Visual Studio 选项。 如果您想为特定语言共享这些偏好,请清除 ReSharper 选项 页面上的 使用 Visual Studio 中的缩进样式和大小 复选框 Alt+R, O ,然后将更改保存到共享设置层。
排查格式化设置问题
有多种方式可以配置格式化偏好:专有设置、Visual Studio 设置、自动检测设置、EditorConfig、Clang-Format 等。 这使您的配置非常灵活,但如果在 重新格式化代码后得到意外结果,可能很难理解格式化设置的实际来源。
要探索影响当前文件格式化的设置和配置文件,请从菜单中选择 :

在这里,您可以研究当前打开文件的代码样式设置的来源:
缩进来源及其值。
自动检测缩进偏好的状态。
EditorConfig 支持的状态以及影响当前文件的所有 .editorconfig 文件。
StyleCop 支持的状态以及影响当前文件的 StyleCop 文件( 规则集 和 Settings.StyleCop )。