配置文件

此 ReSharper 选项页面允许您管理和配置 自定义清理配置文件 ,并为 静默代码清理分配清理配置文件。 这里还显示了两个默认配置文件(完全清理、 重新格式化并应用语法样式和 重新格式化代码)。 您无法修改它们,但可以克隆它们以创建新的自定义配置文件。
工具栏控件
使用以下控件配置选定的清理配置文件:
| 单击此按钮以将选定的配置文件用于 静默清理。 用于静默清理的配置文件会标记为 |
| 单击此按钮以创建选定配置文件的副本。 如果您有默认设置,您需要复制一个 默认清理配置文件以创建自定义清理配置文件。 一旦创建了新配置文件,它会以编辑模式打开,您可以在其中配置 清理任务列表。 |
| 单击此按钮以启用选定自定义配置文件的编辑模式。 请注意,默认配置文件(完全清理、 重新格式化并应用语法样式和 重新格式化代码 )无法编辑。 |
| 单击此按钮以重命名选定的自定义配置文件。 请注意,默认配置文件(完全清理、 重新格式化并应用语法样式和 重新格式化代码 )无法重命名。 |
| 单击此按钮以移除选定的自定义配置文件。 请注意,默认配置文件(完全清理、 重新格式化并应用语法样式和 重新格式化代码 )无法移除。 |
| 单击此按钮以退出编辑模式并返回到选定配置文件的预览。 请注意,除非您单击 保存 ,否则您的修改不会被应用。 |
选定配置文件的代码清理任务
当您为选定的 自定义清理配置文件切换到编辑模式(
配置 )时,这些任务变得可配置。 最初,没有自定义配置文件,并且默认配置文件的任务无法编辑。 您可以单击
重复 创建一个默认配置文件的可编辑副本,然后编辑其任务。
重新设置代码格式
C# | |
重新设置代码格式 | 根据您可以在 ReSharper 选项 的 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则。 |
重新格式化嵌入式 XML 文档注释 | 根据您可以在 ReSharper 选项 的 页面上配置的选项重新格式化 XML 文档注释。 请注意,ReSharper 不会重新格式化以下类型的普通注释: // A plain single-line comment
或者 /* A plain multi-line comment */
|
C++ | |
重新设置代码格式 | 根据您可以在 ReSharper 选项 的 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则。 |
Visual Basic | |
重新设置代码格式 | 根据您可以在 ReSharper 选项 的 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则。 |
重新格式化嵌入式 XML 文档注释 | 根据您可以在 ReSharper 选项 的 页面上配置的选项重新格式化 XML 文档注释。 请注意,ReSharper 不会重新格式化以下类型的普通注释: // A plain single-line comment
或者 /* A plain multi-line comment */
|
XML | |
重新设置代码格式 | 根据您可以在 ReSharper 选项 的 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则。 |
HTML | |
重新设置代码格式 | 根据您可以在 ReSharper 选项 的 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则。 |
CSS | |
重新设置代码格式 | 根据您可以在 ReSharper 选项 的 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则。 |
JavaScript/TypeScript | |
重新设置代码格式 | 根据您可以在 ReSharper 选项 的 页面上配置的偏好重新格式化代码。 有关更多信息,请参阅 应用格式规则。 |
重新格式化嵌入式 XML 文档注释 | 根据您可以在 ReSharper 选项 的 页面上配置的选项重新格式化 XML 文档注释。 请注意,ReSharper 不会重新格式化以下类型的普通注释: // A plain single-line comment
或者 /* A plain multi-line comment */
|
语法样式
C# | |
应用 'var' 样式 | 在清理过程中应用 'var' 使用规则。 这些规则可在 ReSharper 选项 的 页面 Alt+R, O 上配置。 |
对类型使用显式或隐式修饰符定义 | 应用类型修饰符规则——是否显式使用 |
对类型成员使用显式或隐式修饰符定义 | 应用类型成员修饰符规则——是否显式使用 |
排序修饰符 | 应用类型/成员修饰符的优先顺序。 该规则可在 ReSharper 选项 的 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:修饰符。 |
应用实参样式(命名与位置) | 对特定参数类型应用命名/位置参数的优先级。 这些优先级可在 ReSharper 选项 的 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:命名/位置参数。 |
移除冗余的括号 | Removes redundant optional parentheses in cases specified on the page of ReSharper 选项 Alt+R, O . 有关更多信息,请参阅 代码语法样式:可选括号。 |
添加圆括号以显式指定运算优先级 | 添加可选括号以澄清运算优先级,具体情况可在 ReSharper 选项 的 页面 Alt+R, O 上指定。 有关更多信息,请参阅 代码语法样式:可选括号。 |
为单行语句添加/移除大括号 | 根据 ReSharper 选项 页面 Alt+R, O 上指定的情况,添加或移除单个嵌套语句的可选大括号。 有关更多信息,请参阅 代码语法样式:单层嵌套语句的大括号。 |
为属性添加/移除方括号 | 根据 ReSharper 选项 页面 Alt+R, O 上指定的情况应用多属性的规则。 有关更多信息,请参阅 代码语法样式:多个属性。 |
应用代码主体样式(表达式主体与块主体) | 根据 ReSharper 选项 的 页面 Alt+R, O 上指定的规则,应用类型成员体的首选样式(表达形式或块体)。 有关更多信息,请参阅 代码语法样式:类型成员的主体。 |
排列尾随逗号 | 根据 ReSharper 选项 页面 Alt+R, O 上指定的规则,在多项声明和类似结构(如对象、数组、集合初始值设定项以及枚举和 switch 表达式)中应用尾随逗号的优先级。 有关更多信息,请参阅 代码语法样式:尾随逗号。 |
应用对象创建样式('new()' 与 'new T()') | Applies preferences for using the target-typed |
应用默认值样式('default' 与 'default(T)') | 根据 ReSharper 选项 的 页面 Alt+R, O 上指定的规则,在默认值表达式中使用可选类型规范。 有关更多信息,请参阅 代码语法样式:默认值表达式('default' 与 'default(T)')。 |
排列命名空间(文件作用域与块作用域) | 根据 ReSharper 选项 的 页面 Alt+R, O 上指定的规则,在包含单个命名空间的文件中应用 文件范围命名空间声明的首选方式。 有关更多信息,请参阅 代码语法样式:文件范围命名空间。 |
排列 null 检查模式样式 | 根据 ReSharper 选项 的 页面
Alt+R, O
上指定的规则,应用 类型检测 'is' 运算符查空表达式的首选方式(与 |
排列限定符 | 应用类型成员的限定规则。 这些规则可在 ReSharper 选项 的 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:可选成员限定符。 |
修正内置类型引用 | 应用内置类型名称的规则(C# 关键字或 CLR 类型名称)。 该规则可在 ReSharper 选项 的 页面 Alt+R, O 上配置。 有关更多信息,请参阅 代码语法样式:内置类型引用。 |
C/C++ | |
为单条语句添加/移除大括号 | Applies preferences for braces around single nested statements under the |
应用 'auto' 样式 | 根据 ReSharper 选项 的 页面
Alt+R, O
上指定的规则,应用 |
应用函数声明样式(正则与尾随返回值类型) | 根据 ReSharper 选项 的 页面 Alt+R, O 上指定的规则,应用函数声明中尾随或常规返回类型的首选样式。 |
应用嵌套命名空间样式 | 应用用于加强对 C++17 语法规则的规则,以便更简洁地进行多级命名空间声明。 该规则可在 ReSharper 选项 的 页面 Alt+R, O 上配置。 |
应用类型别名样式(typedef 与类型别名) | 根据 ReSharper 选项 的 页面 Alt+R, O 上指定的规则,定义类型同义词的首选方式。 |
排列 cv 限定符 | 应用 cv 修饰符优先顺序——决定 |
排列 include 指令中的斜杠(正斜杠与反斜杠) | Applies the preferred style of path separator for |
在重写函数上排列说明符('virtual' 和/或 'override') | 应用覆盖函数的首选样式——指定覆盖函数和析构函数应使用哪些说明符。 这些规则可在 ReSharper 选项 的 页面 Alt+R, O 上配置。 |
对 include 指令排序 | 应用 |
对成员初始值设定项排序 | 根据 ReSharper 选项 的 页面 Alt+R, O 上指定的构造函数初始化列表,应用成员初始化器的顺序。 |
XAML | |
收起空标记 | 如果标签体为空,则移除结束标签。 |
HTML | |
标准化特性值周围的引号 | 应用首选的引号样式:单引号 |
JavaScript/TypeScript | |
标准化字符串字面量周围的引号 | 应用首选的引号样式:单引号 |
应用语句终止 | 在 JavaScript、TypeScript 和 JSON 的语句末尾添加可选分号 |
TypeScript specific | |
将 'public' 状态与代码样式同步 | 此选项允许您根据 ReSharper 选项 的 页面 Alt+R, O 上配置的设置添加或移除显式的 'public' 修饰符。 |
根据需要添加显式 'any' 类型注解 | 此选项允许您根据 ReSharper 选项 的 页面 Alt+R, O 上配置的设置添加显式的 'any' 注解到类型。 |
将类型注解状态与代码样式同步 | 此选项允许您根据 ReSharper 选项 的 页面 Alt+R, O 上配置的设置强制显式/隐式类型规范。 |
根据需要修正 'require' 中的相对路径样式 | 应用 'require' 中的相对文件引用样式 代码样式偏好于 |
使用 'as' 代替类型断言 | 替换 var bar = <string> foo;
为 var bar = foo as string;
这是避免与 JSX 语法产生歧义的推荐方式。 |
优化 import
C# | |
优化 'using' 指令 |
更多信息请参阅 代码语法样式:命名空间导入。 |
在区域内包含 'using' 指令 | 如果选中此复选框,在清理期间会为所有命名空间导入指令创建一个新的区域。 |
区域名称 | 允许为包裹命名空间导入指令的区域指定名称。 |
缩短限定引用 | 通过导入命名空间,根据您可以在 ReSharper 选项 的 页面 Alt+R, O 上配置的偏好,将完全限定名称替换为短名称(如果可能)。 |
Visual Basic | |
优化 'import' 指令 |
更多信息请参阅 代码语法样式:命名空间导入。 |
在区域内包含 'using' 指令 | 如果选中此复选框,在清理期间会为所有命名空间导入指令创建一个新的区域。 |
区域名称 | 允许为包裹命名空间导入指令的区域指定名称。 |
缩短限定引用 | 通过导入命名空间,根据您可以在 ReSharper 选项 的 页面 Alt+R, O 上配置的偏好,将完全限定名称替换为短名称(如果可能)。 |
XAML | |
移除冗余命名空间别名 | 在清理范围内移除所有冗余的命名空间别名。 冗余别名也可以通过 代码检查检测到,并可以通过快速修复移除。 |
TypeScript specific | |
优化 'import' 语句 | 使用此选项根据 ReSharper 选项 的 页面 Alt+R, O 上配置的设置移除冗余的 'import' 语句或完全限定名称。 |
优化引用注释 | 使用此选项移除冗余的引用注释。 |
ASP.NET | |
优化 @Register 指令 | 移除未使用的 |
重新排列代码
C# | |
应用文件布局 | 根据您可以在 ReSharper 选项 的 页面 Alt+R, O 上配置的规则,重新排列文件中的类型成员。 有关更多信息,请参阅 使用文件和类型布局模式重新排列成员。 |
CSS | |
按字母顺序排列属性 | 按字母顺序重新排列 CSS 属性。 |
移除冗余并应用优化
C# | |
删除代码冗余 | 在 ReSharper 选项 的 页面 Alt+R, O 中,在大多数语言的 代码中的冗余 类别中,ReSharper 列出了许多与代码检查相关的案例。 其中一些需要特别注意,您无法在批量模式下处理它们,但大多数可以在您在清理配置文件中选择 删除代码冗余 时自动修复。 |
如果可能,使用自动属性 | 将简单属性及其对应的后备字段替换为自动属性。 更多信息请参阅 使用自动属性。 |
如果可能,将字段设为只读 | 为在声明或构造函数中分配并且仅具有读取用法的字段添加 |
如果可能,将自动属性设为只获取 | 移除在构造函数/初始化器中初始化且没有写入用法的自动属性上的冗余 默认情况下,ReSharper 会根据关联的编译器自动检测 C# 版本。 但是,您可以明确指定目标 C# 版本 用于某个项目——在解决方案资源管理器中右键单击项目,从上下文菜单中选择 编辑项目项属性 ,并使用 C# 语言级别 选择器。 要为 解决方案中的所有项目设置 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::erase_if' 替换 remove-erase 惯用法 | 将旧的擦除-移除习惯用法替换为 C++20 |
Visual Basic | |
删除代码冗余 | 在 ReSharper 选项 的 页面 Alt+R, O 中,在大多数语言的 代码中的冗余 类别中,ReSharper 列出了许多与代码检查相关的案例。 其中一些需要特别注意,您无法在批量模式下处理它们,但大多数可以在您在清理配置文件中选择 删除代码冗余 时自动修复。 |
XAML | |
移除冗余 'Freeze' 特性 | 移除在其上下文中冗余的 |
移除冗余修饰符特性 | 移除在其上下文中冗余的 |
移除冗余名称特性 | 移除在其上下文中冗余的 |
移除冗余资源 | 移除未使用的资源引用 |
移除冗余空集合属性 setter | |
移除冗余附加属性 setter | 移除 |
移除冗余样式属性 setter | 移除 |
移除禁止的 name 特性 | 移除在其上下文中不允许的 |
移除冗余定义 | 如果定义在上下文中是冗余的,则移除它们。 |
移除冗余 UpdateSourceTrigger 特性 | 移除在其上下文中冗余的 |
移除冗余 Mode 特性 | 移除在其上下文中冗余的 |
移除冗余 span 特性 | 移除在其上下文中冗余的 |
JavaScript/TypeScript | |
在可能的情况下将 'var' 更正为 'let'/'const' |
|
将 let/const 移动到最可能的内部作用域 | 将定义在函数/复合语句之外的变量等移动到更接近其使用的位置,如果在外部作用域中没有其他使用。 |
将字符串拼接转换为模板字符串 | 在 JavaScript 代码中,如果目标 JavaScript 语言级别是 ECMAScript 6(您可以在 ReSharper 选项 的 页面 Alt+R, O 上选择它),以及在 TypeScript 1.4 或更高版本中,此选项会将字符串连接转换为 模板字符串。 例如:
var str1 = "Hello,";
var str2 = "Test: " + str1 + " World1";
将被转换为
const str1 = "Hello, ";
const str2 = `Test: ${str1} World1`;
|
TypeScript specific | |
移除冗余限定符 | 使用此选项移除冗余的类型名称限定符。 |
运行外部清理工具
C/C++ | |
应用 Clang-tidy 修复建议 | 在此节点中,您可以选择所有或特定的修复,这些修复将根据 Clang-Tidy 检查应用。 即使在 ReSharper 选项 的 页面 Alt+R, O 上关闭了相应的检查,所选修复也会被应用。 启用过多检查时请小心——代码清理对给定文件仅运行一次 Clang-Tidy,因此如果多个修复影响同一代码块,可能会导致更改冲突。 |