配置代码检查设置
配置设计时代码检查
默认情况下,JetBrains Rider 在所有与 支持的语言对应的文件中启用 设计时代码检查。 如有必要,您可以禁用它。 无论是否启用了设计时代码检查,您始终可以运行 特定范围内的代码检查。
您可以直接从编辑器快速调整检查设置,使用 “Pencils”小组件 ,或者在设置中进行更详细的配置:
按 Ctrl+Alt+S 或从菜单中选择 (Windows 和 Linux)或 (macOS),然后在左侧选择 。
使用 启用代码分析 复选框切换 设计时代码检查。
如有必要,您可以选中 启用解决方案级分析(_A) 复选框以启用 解决方案范围分析。
使用 该设置页面上的其他选项根据您的喜好调整设计时检查。
在 设置 对话框中点击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置。
切换多个目标框架的上下文
代码检查的结果可能因目标 .NET Framework 而异,因为不同版本的框架具有不同的功能和能力,可能会影响代码的行为。大多数情况下,每个文件属于一个针对单个 .NET Framework 的项目,因此 JetBrains Rider 可以为该文件中的代码检查明确设置特定的框架版本上下文。 在大多数情况下,每个文件属于一个针对单一 .NET Framework 的项目,因此 JetBrains Rider 可以明确地为该文件的代码检查设置特定的框架版本上下文。
但是,有两种情况下文件可能会与不同的框架版本一起编译:
项目文件中定义了多个框架版本 ,该文件属于其中之一。
一个文件被包含在多个使用不同框架版本的项目中。
在这两种情况下,当前上下文的框架版本会显示在 编辑器面包屑中,您可以点击它以将上下文切换到另一个版本。 如果项目中有多个框架,上下文将为整个项目切换;否则,仅更改文件上下文。

在上面的示例中,文件中有两个未解析的调用——异常() 和 ArgumentException()——但只有第二个调用被突出显示为错误,因为第一个调用已通过 .NETCoreApp 3.1的 #IF 指令过滤掉,并且选择了 .NETCoreApp 2.0进行分析。
从代码检查中排除文件和文件夹
JetBrains Rider 允许您配置应从代码检查中排除的文件、文件掩码和文件夹列表。 被排除的项目会被 设计时代码检查 和 特定范围内的代码检查 忽略,但它们仍会被 JetBrains Rider 索引,以便您可以 导航到 或 重构 从代码检查中排除的符号。
从代码检查中排除特定文件和文件夹
按 Ctrl+Alt+S 或从菜单中选择 (Windows 和 Linux)或 (macOS),然后在左侧选择 。
在 要跳过的元素 部分的左侧,您可以指定要被代码检查忽略的文件或文件夹。
在该部分的右侧,您可以指定掩码(例如 *.vb ),以排除解决方案中所有匹配的文件不进行代码检查。
在 设置 对话框中点击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置。
您还可以快速将当前文件从代码检查中排除,这样 JetBrains Rider 会将此文件添加到排除文件列表中,而无需打开选项。
从代码检查中排除/包含当前文件
按下 Ctrl+Alt+Shift+8。
您可以通过编辑器右上角的 指示器识别禁用代码检查的文件。
部分禁用对生成代码的代码检查
您还可以配置包含生成代码的文件、文件夹、文件掩码和区域的列表。 对于这些项目,JetBrains Rider 仅运行那些检查编译器错误和警告的 代码检查。 某些通常用于生成代码的文件掩码和区域,例如 *.designer.cs ,默认包含在此列表中,但您可以根据需要更改默认设置。
如果您在解决方案中使用 .editorconfig ,您还可以使用 generated_code 属性标记生成代码。 例如:
指定包含生成代码的文件和区域
On the page of JetBrains Rider 设置 Ctrl+Alt+S, use the 添加 button to specify files or folders that contain generated code.
在页面的左下部分,使用 添加 按钮指定生成代码文件的掩码(例如 *.Designer.cs )。
在页面的右下部分,使用 添加 按钮指定包含生成代码的区域名称。
在 设置 对话框中点击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置。
更改代码检查的严重性级别
每个 JetBrains Rider 的代码检查都有自己的默认 严重性级别 ,该级别根据其检测到的代码问题的潜在影响设置。 大多数检查具有可配置的严重性级别,您可以更改这些级别。
您可以直接在编辑器中更改某个检查的严重性级别,该检查所发现的代码问题将在其中被高亮显示。
从编辑器更改检查的严重性
另一种将修改后的严重性级别保存到共享设置层或修改多个检查的严重性级别的方法是使用 JetBrains Rider 设置 对话框 Ctrl+Alt+S ,具体如下所述。
从设置中修改代码检查的严重性级别
On the page of JetBrains Rider 设置 Ctrl+Alt+S, you can view all configurable code inspections and their severity levels. 检查按语言分组,然后按 类别分组。
查找并选择您想要修改严重性级别的检查。
点击所选条目右侧的列表,然后选择所需的严重性级别:

如果检查的默认严重性级别被更改,您将看到其旁边的 重置为默认
按钮,允许您将严重性重置为默认值。在 设置 对话框中点击 保存 以应用修改,并让 JetBrains Rider 选择保存位置,或者通过从 保存 选择器中选择特定设置层来保存修改。 如需了解更多信息,请参见 基于层的设置。
禁用/启用特定的代码检查
如果某些代码检查看起来无关紧要或您不感兴趣,您可以禁用此检查,这样相关问题就不会 在编辑器中高亮显示或在 特定范围内运行代码检查时被检测到。 您可以随时重新启用已禁用的代码检查。 某些检查默认是禁用的,您可以根据需要启用它们。
您可以通过以下方式之一禁用任何代码检查:
如果编辑器中有此检查高亮显示的代码问题,请将光标放置在高亮代码上,按 Alt+Enter 然后选择 检查 [name of inspection] | 配置检查严重性 | 不显示。
On the page of JetBrains Rider 设置 Ctrl+Alt+S, use the search field to find the inspection you want to disable or enable, and then use the checkbox next to it.
使用 EditorConfig 配置代码检查
如果您 使用 EditorConfig 来维护项目的代码样式,您还可以从 .editorconfig 文件中配置代码检查。
要从 EditorConfig 配置代码检查,您必须在 JetBrains Rider 设置 的 页面上选择 从 editorconfig、项目设置和规则集中读取设置 复选框 Ctrl+Alt+S。
根据 EditorConfig 约定,JetBrains Rider 将应用定义在当前文件目录及其所有父目录中的名为 .editorconfig 的文件中的检查设置,直到到达根文件路径或找到带有 root=true 的 EditorConfig 文件。 在 .editorconfig 文件中指定的文件掩码,例如 *Test.cs ,也会被考虑在内。
.editorconfig 文件中的检查设置与其他属性的配置方式类似——通过添加相应的行:
例如,您可以通过以下行将 可能的 'System.NullReferenceException' 检查的 严重性级别更改为 错误:
或者,您可以通过以下行禁用 具有默认值的冗余参数检查:
您可以在 代码检查索引 部分的页面以及 EditorConfig 属性索引 页面上找到每个检查的 EditorConfig 属性。 — 只需使用浏览器搜索找到所需检查的属性。
在特定范围内抑制代码检查
忽略特定代码问题的一种方法是 禁用相应的代码检查。 在这种情况下,此检查检测到的所有代码问题将在任何地方都被忽略。
有时,您可能需要在特定位置抑制特定检查,同时继续在其他地方使用此检查检测类似问题。
例如,JetBrains Rider 认为某些代码是“无效的”,您可以看到这是真的。 此检查很有帮助,您不想禁用它。 但是,您可能希望稍后使用此代码,并且不希望它在 编辑器中高亮显示或出现在 检查结果中。 为此,JetBrains Rider 允许您通过注释或属性来抑制检查。 注释对于任意代码片段更为方便,而属性更适合抑制整个方法或类型中的检查。
在特定范围内抑制代码检查
将插入符号放置在 一个 JetBrains Rider 的检查高亮显示的代码问题上。
在操作列表中,选择以下选项之一:
检查 [name of inspection] | 使用注释禁用一次 — 此选项插入一个单行注释
ReSharper 禁用一次 [inspection id],仅抑制首次出现的相应问题的检查。检查 [name of inspection] | 使用注释禁用一次 | 在文件中使用注释禁用 — 此选项在文件开头插入一个单行注释 -
ReSharper 禁用 [inspection id]。 此注释会抑制文件中所有相应问题的检查。检查 [name of inspection] | 使用注释禁用一次 | 使用注释禁用并恢复 — 此选项在问题前后插入一对注释 -
ReSharper 禁用 [inspection id]和ReSharper 恢复 [inspection id]。 这些注释会抑制它们之间所有相应问题的检查。然后,您可以将这些注释移动到文件中的其他位置,以便抑制此类型的多个问题。 例如,如果您希望保留几个未使用的命名空间导入,这对于抑制“冗余命名空间”检查可能很有用。
检查 [name of inspection] | 使用注释禁用一次 | 禁用方法 — 此选项向方法添加以下属性:
[SuppressMessage("ReSharper", "[inspection id]")]。 此属性会抑制方法中的检查。检查 [name of inspection] | 使用注释禁用一次 | 禁用类 — 此选项向类添加以下属性:
[SuppressMessage("ReSharper", "[inspection id]")]。 此属性会抑制整个类中的检查。检查 [name of inspection] | 使用注释禁用一次 | 禁用文件中的所有检查 — 此选项在文件开头插入一个单行注释
ReSharper 禁用 All。 此注释会抑制文件中的所有检查。如果需要,您可以插入
ReSharper 恢复 All以在特定行之后启用代码检查。
要抑制类型或方法中的所有检查,请添加以下属性: [SuppressMessage("ReSharper", "All")]。

