代码清理
此 JetBrains Rider 选项页面允许您管理和配置 自定义清理配置文件 ,并为 静默代码清理 分配清理配置文件。 此处还显示了两个默认配置文件(完全清理、 重新格式化并应用语法样式 和 重新格式化代码)。 您无法修改它们,但可以克隆它们以创建新的自定义配置文件。
工具栏控件
使用以下控件配置选定的清理配置文件:
| 单击此按钮以创建新的自定义代码清理配置文件。 创建新配置文件后,它会以编辑模式打开,您可以在其中配置 清理任务 列表。 |
| 单击此按钮以将选定的配置文件用于 静默清理。 |
| 单击此按钮以创建选定配置文件的副本。 如果您有默认设置,则需要复制一个 默认清理配置文件 以创建自定义清理配置文件。 创建新配置文件后,它会以编辑模式打开,您可以在其中配置 清理任务 列表。 |
| 单击此按钮以重命名选定的自定义配置文件。 请注意,默认配置文件(完全清理、 重新格式化并应用语法样式 和 重新格式化代码 )无法重命名。 |
| 单击此按钮以删除选定的自定义配置文件。 请注意,默认配置文件(完全清理、 重新格式化并应用语法样式 和 重新格式化代码 )无法删除。 |
选定配置文件的代码清理任务
这些任务可为选定的 自定义 清理配置文件进行配置。 最初没有自定义配置文件,默认配置文件的任务无法编辑。 您可以单击 克隆 创建一个默认配置文件的可编辑副本,然后编辑其任务。
重新设置代码格式
C# | |
重新设置代码格式 | 根据您可以在 JetBrains Rider 设置 的 页面上配置的偏好重新格式化代码。 更多信息请参阅 应用格式化规则。 |
重新格式化嵌入式 XML 文档注释 | 根据可在 JetBrains Rider 设置 的 页面上配置的选项重新格式化 XML 文档注释。 请注意,JetBrains Rider 不会重新格式化以下类型的普通注释: // A plain single-line comment
或者 /* A plain multi-line comment */
|
C++ | |
重新设置代码格式 | 根据您可以在 JetBrains Rider 设置 的 页面上配置的首选项重新格式化代码。 更多信息请参阅 应用格式化规则。 |
Visual Basic | |
重新设置代码格式 | 根据您可以在 JetBrains Rider 设置 的 页面上配置的偏好重新格式化代码。 更多信息请参阅 应用格式化规则。 |
重新格式化嵌入式 XML 文档注释 | 根据可在 JetBrains Rider 设置 的 页面上配置的选项重新格式化 XML 文档注释。 请注意,JetBrains Rider 不会重新格式化如下的普通注释: // A plain single-line comment
或者 /* A plain multi-line comment */
|
XML | |
重新设置代码格式 | 根据您可以在 JetBrains Rider 设置 的 页面上配置的首选项重新格式化代码。 更多信息请参阅 应用格式化规则。 |
HTML | |
重新设置代码格式 | 根据您可以在 JetBrains Rider 设置 的 页面上配置的首选项重新格式化代码。 更多信息请参阅 应用格式化规则。 |
CSS | |
重新设置代码格式 | 根据您可以在 JetBrains Rider 设置 的 页面上配置的首选项重新格式化代码。 如需了解详情,请参阅 应用格式化规则。 |
JavaScript/TypeScript | |
重新设置代码格式 | 根据您可以在 JetBrains Rider 设置 的 页面上配置的首选项重新格式化代码。 如需了解详情,请参阅 应用格式化规则。 |
重新格式化嵌入式 XML 文档注释 | 根据可在 JetBrains Rider 设置 的 页面上配置的选项重新格式化 XML 文档注释。 请注意,JetBrains Rider 不会重新格式化以下类型的普通注释: // A plain single-line comment
或者 /* A plain multi-line comment */
|
语法样式
C# | |
应用 'var' 样式 | 在清理过程中应用 'var' 使用规则。 这些规则可在 JetBrains Rider 设置 的 页面上配置 Ctrl+Alt+S。 |
对类型使用显式或隐式修饰符定义 | 应用类型修饰符规则——是否显式使用 |
对类型成员使用显式或隐式修饰符定义 | 应用类型成员修饰符规则——是否显式使用 |
排序修饰符 | 应用类型/成员修饰符的首选顺序。 该规则可在 JetBrains Rider 设置 的 页面上配置 Ctrl+Alt+S。 如需了解详情,请参阅 代码语法样式:修饰符。 |
应用实参样式(命名与位置) | 应用针对特定类型参数的命名/位置参数的首选项。 这些首选项可在 JetBrains Rider 设置 的 页面上配置 Ctrl+Alt+S。 如需更多信息,请参阅 代码语法样式:命名/位置参数。 |
移除多余的括号 | 移除在 JetBrains Rider 设置 的 页面上指定的情况下的冗余可选括号 Ctrl+Alt+S。 如需了解详情,请参阅 代码语法样式:可选括号。 |
添加圆括号以显式指定运算优先级 | 添加可选括号以在 JetBrains Rider 设置 的 页面上指定的情况下明确操作优先级 Ctrl+Alt+S。 如需了解详情,请参阅 代码语法样式:可选括号。 |
为单个语句添加/移除大括号 | 根据 JetBrains Rider 设置 的 页面上指定的内容,添加或移除单个嵌套语句周围的可选大括号 Ctrl+Alt+S。 欲了解更多信息,请参阅 代码语法样式:单层嵌套语句的大括号。 |
为属性添加/移除方括号 | 根据 JetBrains Rider 设置 的 页面上指定的内容,应用多个属性的规则 Ctrl+Alt+S。 如需更多信息,请参阅 代码语法样式:多属性。 |
应用代码主体样式(表达式主体与块主体) | 根据 JetBrains Rider 设置 的 页面上指定的内容,应用类型成员主体(表达式主体或块主体)的首选项 Ctrl+Alt+S。 如需更多信息,请参阅 代码语法样式:类型成员的主体。 |
排列尾随逗号 | 根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中指定的内容,应用声明中带有多个项目的尾随逗号的首选项,以及类似的构造(对象、数组和集合初始化器,以及枚举和 switch 表达式)。 如需了解详情,请参阅 代码语法样式:尾随逗号。 |
应用对象创建样式(“new()” 与 “new T()”) | 根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中指定的内容,应用 C# 9.0 及更高版本中的目标类型 |
应用默认值样式('default' 与 'default(T)') | 根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中指定的内容,应用默认值表达式中可选类型指定的首选项。 欲了解更多信息,请参阅 代码语法样式:默认值表达式('default' 与 'default(T)')。 |
排列命名空间(文件作用域与块作用域) | 根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中指定的内容,应用 文件范围的命名空间声明的首选项。 如需更多信息,请参阅 代码语法样式:文件范围命名空间。 |
排列 null 检查模式样式 | 根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中指定的内容,应用 类型测试 'is' 运算符 (使用 |
排列限定符 | 应用类型成员限定的规则。 这些规则可在 JetBrains Rider 设置 的 页面上配置 Ctrl+Alt+S。 如需更多信息,请参阅 代码语法样式:可选成员限定符。 |
修正内置类型引用 | 应用内置类型名称的规则(C# 关键字或 CLR 类型名称)。 该规则可在 JetBrains Rider 设置 的 页面上配置 Ctrl+Alt+S。 欲了解更多信息,请参阅 代码语法样式:内置类型引用。 |
C/C++ | |
为单条语句添加/移除大括号 | 应用 |
应用 'auto' 样式 | 根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中指定的内容,应用变量类型中 |
应用函数声明样式(正则与尾随返回值类型) | 根据 JetBrains Rider 设置 的 页面上指定的内容,应用函数声明中尾随或常规返回类型的首选样式 Ctrl+Alt+S。 |
应用嵌套命名空间样式 | 应用强制使用 C++17 语法声明嵌套命名空间的规则,该语法允许更简洁地声明多级命名空间。 该规则可在 页面上的 JetBrains Rider 设置 Ctrl+Alt+S 中配置。 |
应用类型别名样式(typedef 与类型别名) | 根据 JetBrains Rider 设置 的 页面上指定的内容,应用定义类型同义词的首选方式 Ctrl+Alt+S。 |
排列 cv 限定符 | 应用 cv-限定符的首选顺序—— |
排列 include 指令中的斜杠(正斜杠与反斜杠) | 根据 JetBrains Rider 设置 的 页面上指定的内容,应用路径分隔符用于 |
在重写函数上排列说明符('virtual' 和/或 'override') | 应用覆盖函数的首选样式——覆盖函数和析构函数上应要求的说明符。 这些规则可在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中配置。 |
对 include 指令排序 | Applies the rules for sorting and regrouping |
对成员初始值设定项排序 | Applies the order of member initializers according to constructor initializer lists as specified on the page of JetBrains Rider 设置 Ctrl+Alt+S. |
XAML | |
收起空标记 | 如果标记体为空,则移除结束标记。 |
ASP.NET/Razor | |
标准化特性值周围的引号 | 应用首选的引号样式:单引号 |
优化 import
C# | |
优化 'using' 指令 |
如需了解详情,请参阅 代码语法样式:命名空间导入。 |
在区域内包含 'using' 指令 | 如果选中此复选框,在清理期间将创建一个用于包装所有命名空间导入指令的新区域。 |
区域名称 | 允许为包装命名空间导入指令的区域指定名称。 |
缩短限定引用 | 在可能的情况下,通过导入命名空间,根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中配置的首选项,将完全限定名称替换为短名称。 |
Visual Basic | |
优化 'import' 指令 |
如需了解详情,请参阅 代码语法样式:命名空间导入。 |
在区域内包含 'using' 指令 | 如果选中此复选框,在清理期间将创建一个用于包装所有命名空间导入指令的新区域。 |
区域名称 | 允许为包装命名空间导入指令的区域指定名称。 |
缩短限定引用 | 在可能的情况下,通过导入命名空间,根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中配置的首选项,将完全限定名称替换为短名称。 |
XAML | |
移除冗余命名空间别名 | 移除清理范围内的所有冗余命名空间别名。 冗余别名也可以通过 代码检查检测到,并可以通过快速修复移除。 |
TypeScript specific | |
优化 'import' 语句 | 使用此选项移除冗余的 'import' 语句或完全限定名称,根据 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中可配置的设置。 |
优化引用注释 | 使用此选项移除冗余的引用注释。 |
ASP.NET/Razor | |
优化 @Register 指令 | 移除未使用的 |
重新排列代码
C# | |
应用文件布局 | 根据 JetBrains Rider 设置 的 页面上配置的规则重新排列文件中的类型成员 Ctrl+Alt+S。 如需更多信息,请参阅 使用文件和类型布局模式重新排列成员。 |
CSS | |
按字母顺序排列属性 | 按字母顺序重新排列 CSS 属性。 |
移除冗余并应用优化
C# | |
删除代码冗余 | 在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中,在大多数语言的 代码中的冗余 类别下,JetBrains Rider 列出了数十种与代码检查相关的情况。 其中一些需要特别注意,您无法以批处理模式处理,但大多数可以在您在清理配置文件中选择 删除代码冗余 时自动修复。 |
如果可能,使用自动属性 | 使用自动属性替换简单属性及其对应的后台字段。 有关更多信息,请参见 使用自动属性。 |
如果可能,将字段设为只读 | 为在声明或构造函数中分配且仅具备读取用途的字段添加 |
如果可能,将自动属性设为只获取 | 移除在构造函数/初始化器中初始化且没有写入用法的自动属性上的冗余 默认情况下,JetBrains Rider 会根据关联的编译器自动检测 C# 版本。 不过,您可以 为项目明确指定目标 C# 版本——在解决方案资源管理器中按下 Alt+Enter ,并在 应用程序 页面的 项目属性 对话框中使用 语言版本 选择器。 要为 解决方案中的所有项目设置 C# 版本,请按照 此处的说明,在解决方案目录中的 Directory.Build.props 文件中指定它。 |
C/C++ | |
添加必需的 'typename' 和 'template' 关键字 | 添加缺失的 |
联接声明和赋值 | 在局部变量在被读取之前的所有路径中被重新赋值的情况下,将声明和赋值合并。 |
将局部变量设为 const | 为可以变为不可变的局部作用域对象添加 |
如果可能,将成员函数设为 'const' | 为不改变包含对象状态的成员函数添加 |
如果可能,将成员函数设为 'static' | 将成员函数设置为 |
移除冗余转换 | 移除冗余的强制转换表达式。 |
移除冗余的 'else' 关键字 | 移除上下文中冗余的 |
移除冗余的详细类型说明符 | 移除当不是用于声明新类或引用之前声明的结构被本地非类型声明隐藏时冗余的详述类型说明符。 |
移除冗余的 lambda 形参列表 | 在没有参数的 lambda 中移除冗余的 |
移除冗余的成员初始值设定项 | 移除在构造函数中重复默认成员初始化器的成员初始化器。 |
删除多余的括号 | 移除上下文中冗余的括号。 |
移除冗余限定符 | 移除上下文中冗余的限定符。 |
移除冗余说明符 | 移除上下文中冗余的说明符。 |
移除冗余语句 | 移除上下文中冗余的语句。 |
移除冗余模板实参 | 移除根据 C++17 类模板参数推导规则可以由语言推导的冗余模板参数。 |
移除冗余的 'typename' 和 'template' 关键字 | 移除在上下文中冗余的 |
移除不可到达的代码 | 移除永远不会被执行的不必要代码。 |
移除未使用的 #include 指令 | 移除从未使用的 |
移除未使用的 lambda 捕获 | 移除如果局部变量被 lambda 捕获但未在 lambda 主体内使用的未使用捕获。 |
将 C 样式和函数样式的转换替换为 static 转换 | 将 C 风格、 |
将布尔上下文中的常量替换为布尔字面量 | 在布尔上下文中将整数常量替换为 |
将包含常量条件的 if 语句替换为 'if constexpr' | 当条件是编译时常量表达式时,用 |
将后缀运算符替换为前缀变体 | 将后缀运算符替换为其前缀变体。 |
将智能指针构造函数替换为 make 函数 | 将智能指针构造函数替换为标准( |
在可能的情况下,将 throw 表达式替换为 rethrow | 更新 |
将类型特征替换为相应的模板别名或变量模板 | 使用 C++14 别名模板简化 C++11 类型特性表达式。 |
将指针上下文中的零值表达式替换为 nullptr | 在指针上下文中将零常量替换为 |
用结构化绑定声明替换 'tie(..)' | 将 |
如果可能,对关联容器使用 'contains' | 将 |
用 'std::erase'/'std::eraseif' 替换 remove-erase 惯用法 | 将旧的擦除-移除习惯用法替换为 C++20 |
Visual Basic | |
删除代码冗余 | 在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中,在大多数语言的 代码中的冗余 类别下,JetBrains Rider 列出了数十种与代码检查相关的情况。 其中一些需要特别注意,您无法以批处理模式处理,但大多数可以在您在清理配置文件中选择 删除代码冗余 时自动修复。 |
XAML | |
移除冗余 'Freeze' 特性 | 移除在上下文中冗余的 |
移除冗余修饰符特性 | 移除在上下文中冗余的 |
移除冗余名称特性 | 移除在上下文中冗余的 |
移除冗余资源 | 移除未使用的资源引用。 |
移除冗余空集合属性 setter | |
移除冗余附加属性 setter | 移除 |
移除冗余样式属性 setter | 移除 |
移除禁止的 name 特性 | 移除在上下文中不允许的 |
移除冗余定义 | 如果定义在上下文中是冗余的,则移除定义。 |
移除冗余 UpdateSourceTrigger 特性 | 移除在上下文中冗余的 |
移除冗余 Mode 特性 | 移除在上下文中冗余的 |
移除冗余 span 特性 | 移除在上下文中冗余的 |
更新文件头(版权)
C# | |
更新文件头 | 插入或更新文件头注释,您可以在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中配置,或使用 |
C/C++ | |
更新文件头 | Inserts or updates the file header comment that you can configure on the page of JetBrains Rider 设置 Ctrl+Alt+S or using the |
运行外部清理工具
C/C++ | |
应用 Clang-tidy 修复建议 | 在此节点中,您可以选择所有或特定的修复,这些修复将根据 Clang-Tidy 检查应用。 即使在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中关闭了相应的检查,选定的修复也会被应用。 启用过多检查时请小心——代码清理对给定文件仅运行一次 Clang-Tidy,因此如果多个修复修改了同一代码块,可能会导致更改冲突。 |