缩进样式
缩进是格式化样式中最重要的方面之一——即使其他格式不一致,适当缩进的代码也会具有可读性。 ReSharper 通过多种方式帮助您配置和维护适当的缩进。
缩进设置的来源
默认情况下,ReSharper 使用 Visual Studio 的制表符和缩进偏好( 和 )。 但是,如果您希望通过 ReSharper 的分层设置与团队共享格式化器偏好设置,您可以在 ReSharper 选项 的 页面上清除 使用 Visual Studio 中的缩进样式和大小 复选框,然后将您的缩进偏好设置配置并保存到团队共享的设置层。
如果有 EditorConfig或 Clang-Format文件影响当前文件, indent_size 和 indent_style (针对 EditorConfig)或 TabWidth、 IndentWidth、 UseTab (针对 Clang-Format)属性将覆盖 Visual Studio 和 ReSharper 的缩进设置,其中 Clang-Format 样式的优先级高于 EditorConfig 样式。 如果您希望 ReSharper 忽略 EditorConfig 或 Clang-Format 样式,请在 ReSharper 选项 的 页面上清除相应的复选框。
重新缩进代码
要修复当前行或选定代码块中所有行的缩进(您可以多次按 Control+W 以选择逻辑块)而不应用其他格式化偏好设置,请按 Alt+Enter 并选择 。
自动检测缩进
当您在文件中 重新格式化部分代码或代码在 编辑或粘贴时自动格式化时,ReSharper 可以根据该文件其余部分的现有缩进计算并应用缩进。 您可以在 ReSharper 选项 的 页面上通过 自动检测缩进大小和样式 复选框启用或禁用自动检测缩进 Alt+R, O 。
您还可以切换自动检测缩进的偏好设置,并在 文件格式信息窗口中查看其状态。
请注意,如果您 重新格式化整个文件或多个文件,或者如果有 .editorconfig 文件影响当前文件 ,ReSharper 将不会自动检测缩进。
另请注意,如果您启用了自动检测缩进,或在 ReSharper 设置中启用了缩进,或者如果您有 .editorconfig 文件影响当前文件 ,那么这些来源的缩进会在受影响的文件在 Visual Studio 中打开并处于活动状态时临时保存在 Visual Studio 设置中。
如果启用了 Visual Studio 设置同步 ,您需要考虑这一点。
复杂场景中的缩进和对齐
您可以在 ReSharper 选项 的 页面上 Alt+R, O 分别为每个特定代码结构灵活配置缩进和对齐设置,但有两种情况下,多个不同的偏好设置可能会影响缩进和对齐。
多语言文件中的缩进
在 ReSharper 选项 的 页面上 Alt+R, O ,您可以在 如何缩进多语言文件 下选择两个选项之一。 这些选项定义了如何在代码文件中缩进嵌入的语言——例如,如何在 HTML 文件中缩进 JavaScript 代码。
- 使用主要语言的设置平均缩进所有语言(如 Visual Studio 中的操作)
选择此选项时,ReSharper 对所有嵌入语言使用相似的缩进。
- 使用自身设置缩进每种语言(如 ReSharper 7 及更早版本中的操作)
选择此选项时,ReSharper 使用在相应设置页面中为每种语言定义的缩进: 。
在多行结构中结合缩进和对齐
如果您的偏好是使用空格作为缩进,ReSharper 也会使用空格对齐多个结构——例如,当多行的函数参数按第一个参数对齐时:
但是,当您选择使用制表符作为缩进时,对齐多行结构可能会有不同的方式。 ReSharper 允许您选择在创建新代码和重新格式化现有代码时使用这些方式中的哪一种。
您可以在 ReSharper 选项 的 页面上通过 制表符用于缩进时如何对齐 选项为每种语言单独配置多行结构对齐的偏好设置 Alt+R, O 。
- 使用空格(推荐,在任何制表符大小下看起来都对齐)
选择此选项时,ReSharper 使用制表符进行缩进,使用空格进行对齐:

这是推荐的选项,因为使用第二和第三选项对齐的代码在不同制表符大小的编辑器中查看时可能会失去对齐。
- 仅使用制表符(不准确)
选择此选项时,ReSharper 使用制表符同时进行缩进和对齐,这可能不会导致精确对齐:

- 混合制表符和空格以获得最佳填充效果
选择此选项时,ReSharper 使用制表符同时进行缩进和对齐,并添加必要的空格以实现精确对齐。
