ReSharper 2025.2 Help

ReSharper 版本历史

本主题列出了以前版本 ReSharper 的发行说明。 要查看最新版本的发行说明,请转到 ReSharper 2025.2 中的新功能

ReSharper 2025.1

  • 完全支持 .NET 10 和 C# 14 预览功能

  • 转换参数重构 改进:支持值元组、记录类、主构造函数等。

  • Push-to-Hint 激活改进(按下 Ctrl 键两次并按住),以及 marker bar 上的视觉指示器。

  • Unity 插件 已捆绑。

  • Formatter 改进:在 // 后正确换行并添加空格,以及一个选项以避免在方法调用中单个 lambda 表达式参数之前插入换行符。

  • 集成反编译器的改进:

    • 支持 C# 字符串插值:反编译器现在会在适用的情况下自动将 String.ConcatString.Format 调用转换为 C# 字符串插值。

    • 支持 allows ref struct 泛型反约束

    • 支持 ref 字段和 scoped 参数修饰符

    • 支持文件范围命名空间。 仅限 dotPeek:在工具 | 选项 | 反编译器 | 代码样式和格式设置中,复选框选项为使用文件范围命名空间(默认 - 选中)。

    • 支持 System.Threading.Lock

    • 支持基于模式的 ref 结构体使用

    • 支持必需成员

    • 为某些整数常量显示带注释的十六进制表示

  • 在 C++ 中的新功能:

    • 支持多个新的 GNU 语言扩展:省略操作数的条件语句、 #import 指令、 _Float16__bf16__float128 浮点类型、本地标签以及指定初始化器范围语法。

    • 对 GoogleTest 和 Clang-Tidy 集成的更新。

    • Inline Macro 重构。

    • Unreal Engine

      • 在包含大量蓝图的项目中优化内存使用。

      • UMETAUPARAM 反射宏提供代码补全和工具提示文档。

ReSharper 2024.3

  • 改进了对 C# 13 功能的支持: params 集合、部分属性、 System.Threading.Lock 类型、重载解析优先级、 字段 关键字。

  • 新的 代码格式化 选项:围绕等号 = 运算符的换行,从 break 缩进 casecase 语句与 break 放在同一行。

  • 更细化的 命名规则async 和非 async 任务返回的方法及本地函数可以有不同的命名风格。

  • 待办注释现在可以是多行的,允许后续行的缩进文本被视为同一待办项的一部分。

  • 工具提示和错误消息中的标识符已彩色化,以提高可读性。

  • 重新设计的 代码清理引擎,支持并行预处理。

  • 集成反编译器的改进:

    • IL 查看器现在提供程序集清单的 IL 代码,包括:

      • 程序集和模块信息,例如名称、自定义属性等。

      • 引用的程序集和模块。

      • 转发的类型.

      • 文件和资源的列表。

      当插入符号位于 编辑器 中的程序集或模块属性上,或外部程序集的 <AssemblyName>.cs 文件中的某处时,也会显示此 IL 代码。

    • 支持主构造函数——当类声明主构造函数时,ReSharper 会正确显示构造函数及其参数,为您提供对象实例化的完整视图。

  • 在 C++ 中的新功能:

    • 在大型解决方案中的性能改进:LLVM 解决方案的初始索引速度提高了最多 10%,Unreal Engine 的内存使用量降低了约 20%,Chromium 的内存使用量降低了约 30%。

    • 移动到文件夹重构现在适用于 C++ 文件。

    • 支持新的 C++23 和 C23 功能,以及若干 GNU 扩展。

    • Unreal Engine 支持:

      • UE_LOGUE_LOGFMT 宏提供代码补全和实时模板。

      • 游戏标签的代码补全。

      • 增强了对 UDELEGATE 宏的支持。

    • 捆绑的 clang-tidy二进制文件已更新为 Clang 19。

    • 您现在可以使用 // NOLINT(...)// clang-format off// clang-format on 注释来管理集成的 Clang 工具。

ReSharper 2024.2

  • 初步支持 C# 13。

  • AI 助手的多项改进,包括 AI 代码补全异常解释自定义全局提示

  • 能够将 用户界面语言更改为中文、日语或韩语。

  • 闭括号的内嵌提示

  • 添加/移除 params 修饰符重构

  • 不同文化的预览 ,用于 ToString() 格式说明符。

  • 集成反编译器的改进:

    • 反编译器:默认和参数 lambda 参数(C#12:Lambda 可选和参数数组参数)

    • 反编译器:lambda 上的属性

    • 能够反编译受保护的程序集并忽略 [SuppressIldasm] 属性。

    • 支持同时包含 SrcSrv 和 SourceLink 的 PDB。

    • 从关联程序集的目标框架或关联程序集的便携式 PDB 中获取外部源文件的预处理器指令(如 NET6_0_OR_GREATER)。

    • 程序集资源管理器 :程序集构建配置检测和展示。

    • 能够在 Web 浏览器中打开相应存储库的源代码,例如在 GitHub 上。

  • 在 C++ 中的新功能:

    • C++23 支持:多维下标运算符、 #elifdef#elifndef C++23/C23 预处理器指令,以及 [[assume(<expr>)]] 属性。

    • Unreal Engine :支持结构特性,检查 IOnlineSubsystem::Get () 的用法以及缺少对基方法的调用。

    • 快速信息工具提示中的类型布局。

    • 重命名重构的改进。

    • 支持 include-what-you-use 编译指令。

    • 捆绑的 Clang-Tidy二进制文件已更新为 Clang 18。

ReSharper 2024.1

  • AI 助手的多项改进,包括 AI 代码补全

  • 改进了 重命名重构 的性能。

  • 新的 命名风格设置用户界面。

  • InspectCode的默认输出格式从 XML 更改为 SARIF。 XML 输出仍可通过 -f="xml" 参数使用。

  • Task<T>ValueTask<T>处置分析 中的支持。

  • 能够反编译 .NET 程序集以支持 WebCIL 打包格式

  • 专用工具窗口用于 程序集差异

  • 在 C++ 中的新功能:

    • 调用跟踪现在支持传出调用链。

    • C++20 模块:改进了性能并支持内部模块分区。

    • Unreal Engine

      • 支持 Slate UI 框架。

      • 在完成 C++ 代码中资源名称时,提供资产路径的补全。

      • 现在支持 HLSL 着色器代码中的接口。

    • clang-format集成的改进包括支持 GNU 内置样式以及 IndentAccessModifiersDisableFormat 格式样式选项。

    • 更改签名提供了新功能,包括在指针、引用或值类型之间更改参数类型的能力。

    • Grazie 拼写检查在文档注释中。

    • 用于配置文档注释样式的新设置(ReSharper | 选项 | 代码编辑 | C++ | 代码生成)。

    • 新的 格式化选项 :“在 goto 标签后换行”、“缩进 goto 标签”、枚举值的排列、“对空括号格式不做更改”。

ReSharper 2023.3

ReSharper 2023.2

  • C# 12 预览支持:对非记录类和结构的主构造函数支持。

  • AI 助手

  • 预测调试器

  • 用于 LINQ 表达式中间结果的交互式调试器装饰。

  • 新的代码检查及相应的快速修复,用于报告和修复:冗余的可空指令、返回由 'using' 语句捕获的变量、返回由 'using' 捕获对象生成的任务、丢弃与名为 _ 的变量冲突。

  • C# 中新的 内嵌提示 ,用于元组和解构模式的组件名称、丢弃类型名称、使用 #pragma 禁用或恢复的警告描述、由块末尾的局部函数创建的隐式 returncontinue

  • 改进了从 var 到可能的底层类型的 导航

  • 改进了对原始字符串的支持(新的代码检查、快速修复、上下文操作和输入辅助)。

  • 在与 Entity Framework 相关的上下文中,新增代码检查和导航操作。

  • 能够为类 生成单元测试存根 ,并 在测试和被测试代码之间导航

  • 能够 比较两个程序集

  • 在 C++ 中的新功能:

    • 安全删除重构。

    • C++23 支持: if consteval ,静态 operator()operator[] ,以及 C++23 标准库模块。

    • C++20 支持: [[no_unique_address]] 属性,C++20 缺陷报告的实现 char8_t ,以及优化的模块支持,包括将 .cppm 文件识别为模块接口和对项目文件夹外模块的实验性支持。

    • Unreal Engine :改进了对蓝图的索引性能,对具有标准赋值语义的包装类型的智能补全,以及对 UE_INLINE_GENERATED_CPP_BY_NAME 宏的支持。

    • 新的检查:冗余的解引用和取地址,冗余的模板参数,ISO C++ 禁止没有基础类型的前向 enum 声明。

    • 当类型受概念或特性限制时,改进了代码补全。

    • 递归调用的边距标记。

    • 更一致且更直接的 转到声明

    • 更新了捆绑的 clang-tidy 和 clang-format 二进制文件。

    • 上下文操作可以将模板参数约束移动到 requires 子句或反之。

    • 改进了与 GCC 和 Clang 编译器以及 libc++/libstdc++ 标准库的兼容性。

ReSharper 2023.1

  • 新的 代码检查快速修复 ,例如,移除空区域,用 span is "stringLiteral" 替换 span.SequenceEquals("stringLiteral") ,提取通用属性模式,减少集合查找次数。

  • 空检查模式的语法风格not null 对比 { })。

  • 针对 单元测试数据属性的参数名称提示。

  • 能够隐藏特定转换模式的 类型转换提示

  • 单元测试资源管理器单元测试会话中的文本过滤器现在在执行测试时会被考虑。

  • 您可以使用 重命名重构 重命名文件。 如果文件包含与其同名的类型,则可以相应地重命名该类型。

  • 暂停 CSS 的生产力功能的主动开发,这些功能默认被禁用。 要启用它们,请使用 ReSharper 选项 环境 | 产品与功能 页上的相应复选框 Alt+R, O

  • 在 C++ 中的新功能:

    • 调用跟踪用于传入调用。

    • 工具提示和 快速文档弹出窗口中的宏替换预览。

    • C++20 模块的更新:

      • 查找用法现在允许您找到导入给定模块的所有位置。

      • 重命名重构帮助您安全地重命名模块和模块分区,更新代码中的所有相关声明和导入。

      • 代码格式化器和 重新排列代码现在可以处理导出块和导出实体。

      • 代码补全建议与模块相关的关键字和已知模块的名称。

    • 支持 C++23 功能:

      • 推导 thisP0847)。

      • auto(x)auto{x}P0849)。

      • 在许多情况下,lambda 中的空括号 () 现在是可选的(P1102)。

      • 别名声明现在允许在初始化语句中使用(P2360)。

      • 复合语句末尾现在允许标签(P2324)。

    • 支持 __VA_OPT__

    • Unreal Engine

      • 用于添加简单或复杂测试的 文件模板

      • 着色器源目录的映射.

      • UINTERFACE 实时模板

      • 一个新的补全项,用于在需要委托、 TFunctionTFunctionRef 参数的地方生成 lambda 表达式。

    • 新的检查:模板参数从未使用, typedef /类型别名从未使用,冗余的基类初始化器,类型为 HRESULT/NTSTATUS 的函数结果应被使用,通过 const 引用传递值参数,类模板参数推导失败。

    • 改进了编译时评估引擎,包括基于范围的 for 循环的评估以及对联合的更好支持。

    • 用于 重构的上下文操作。

    • 一个快速修复,用于从未解析的标识符创建参数。

    • 如果您需要提取单行函数,现在不再需要选择整行,因为 提取方法重构现在会在没有活动选择的情况下提取当前行。

    • 更改签名现在可以在插入符号位于函数签名的任何位置时调用,而不仅仅是在函数名称上。

    • 一个新的 后缀模板允许您快速使用 const 引用 std::as_constAsConst

    • /* 开头的注释默认不再自动关闭为 */。 您可以通过新的 在 /* 后插入 */ 输入辅助选项启用关闭注释的自动插入。

    • 默认情况下,文件路径在 排序#include 指令时会放在文件夹之前。

ReSharper 2022.3

  • 对运行在 ARM64 上的 Microsoft Visual Studio 的早期支持。

  • 检测 NuGet 包中的漏洞依赖项

  • C# 11 支持:C# 11 文件本地类型、静态虚拟成员、 ref 字段、 scoped 关键字 C# 11 UTF-8 字面量;建议使用无符号右移 >>> 运算符,建议使用模式匹配替代 Span.SequenceEqual("literal") ,C# 11 原始字符串中的 语言注入等。

  • 支持 .NET 7 的 [StringSyntaxAttribute]及其用于 语言注入代码补全的不同语法。

  • 以 GraphML 格式导入 类型依赖项目依赖图。

  • 自动验证 已安装的扩展

  • 反编译器改进:泛型属性、接口中的 static abstractstatic virtual 成员、用户定义的检查运算符、无符号右移运算符。

  • IL 查看器中的低级/高级 C# 代码

  • 在 C++ 中的新功能:

    • 对 C++20 模块的实验性支持。

    • Unreal Engine

      • 使用 Core Redirects 重命名 Unreal Engine 实体

      • 内嵌提示用于 BlueprintCallable 函数。

      • ReSharper 不再在自动导入建议中提供系统头文件和着色器文件中的不需要的实体。

    • 能够使用 clang-format 格式化引擎格式化和重新格式化代码。

    • C++ 支持:

      • C++20 版本的 [[nodiscard]] 属性: [[nodiscard("should have a reason")]]

      • GNU 风格的函数声明调用约定指定。

      • __atomic*__sync* GCC 内置函数。

      • #pragma pack 指令。

      • 改进的编译时评估现在可以正确处理各种形式的对象初始化,包括任何类型的构造函数评估和指定初始化。

      • emplace 样式和 make 样式调用中,参数信息和内嵌提示现在可用于任何隐含构造函数调用的函数。

    • 改进了 clang-tidy 集成

    • 参数信息和其他工具提示中的函数来源。

    • 用于提高条件可读性的上下文操作。

ReSharper 2022.2

  • C# 11 预览支持:检查运算符、列表模式、必需成员、原始字符串、检查运算符、无符号右移、跨度模式匹配、自动默认结构。

  • 自动 清理临时文件

  • 结构化搜索和替换 模式和基于 [CodeTemplate]属性的替换模板可以应用于所需范围(文件、项目或解决方案)。

  • 改进了 INotifyPropertyChanged 支持

  • 一些解决方案范围的重构可从 操作列表Alt+Enter )中使用: 提取方法用于选定语句; 更改签名转换参数将属性转换为方法用于成员签名; 将静态方法转换为扩展方法用于签名和第一个参数。

  • Assembly Explorer 窗口 中为 ReadyToRun 和 NGen 程序集提供专用展示功能。

  • 暂停 JavaScript、TypeScript 和 JSON 的生产力功能的主动开发,这些功能默认被禁用。 要启用它们,请使用 ReSharper 选项 环境 | 产品与功能 页上的相应复选框 Alt+R, O

  • 虚拟格式化器

  • 在 C++ 中的新功能:

    • Unreal Engine

      • Unreal Engine 索引性能提升。

      • 蓝图支持 :新的内嵌提示和检查。

      • 支持 Spec 测试。

      • 代码补全列表中的小部件元数据说明符。

    • 改进的错误渲染:工具提示中的语法高亮和更精确的错误高亮范围。

    • 更新了 Boost.Test 支持并修复了数据驱动测试用例的问题。

    • 更好地处理 emplacemake 样式的函数调用,包括 Unreal Engine Emplace 调用。

    • 通过在 输入 中按下 /**/ 注释中的键创建文档存根。

    • 支持 公共包含目录所有头文件都是公共的 项目属性。

    • 捆绑的 Clang-Tidy二进制文件已更新为 Clang 14,添加了新检查。

ReSharper 2022.1

  • C# 11 支持:泛型属性。

  • 提取全局 using/内联全局 using重构。

  • 支持将预处理器指令与移动的类型一起移动。 将类型移动到另一个文件的重构

  • 基于约定的路由支持 ASP.NET Core。

  • 检测和自动配置 语法风格

  • [MemberNotNull][MemberNotNullWhen] 注解现在支持不使用可空引用类型的项目。

  • 改进了对 可空引用类型的支持。

  • 平台程序集的 XML 文档注释,包括名称与 XML 文档文件名称不同的程序集(例如 System.Private.CoreLib)。

  • 反编译/元数据视图文件头中的 XML 文档。

  • Assembly Explorer 窗口 中的转发类型。

  • 改进了 PDB 导航(来自符号文件的源),适用于没有序列点的类型,例如接口和枚举。

  • 能够 探索元数据 ,包括程序集和便携式 PDB。

  • InspectCode 命令行工具 可以生成静态分析结果交换格式(SARIF)的检查结果。

  • 在 C++ 中的新功能:

    • Unreal Engine

    • 单元测试

    • ReSharper C++ 现在更好地处理隐式构造函数调用,从而改进了以下情况的搜索和导航功能:

      • 通过标准和 Unreal 特定函数创建智能指针,

      • emplace 样式的容器方法,

      • static_cast 和 C 风格的强制转换表达式。

    • 改进了使用 C++20 指定初始化器为聚合初始化生成多行样板代码。

    • 更新了 C++20 requires 表达式的格式化以及新的 文件末尾的换行符 选项。

ReSharper 2021.3

  • 支持 Visual Studio 2022。

  • C# 10 支持,包括 文件范围命名空间CallerArgumentExpression 属性和全局 using 指令的专用功能。

  • 改进了对可空引用类型的支持。

  • 新的 检查快速修复 ,帮助处理带闭包的静态局部/匿名函数、简化字符串插值、将对象初始化器转换为带参数的构造函数、查找字段上的不一致锁定等。

  • 改进了 范围内修复的性能,因为它现在使用 解决方案范围分析的结果来跳过无关代码。

  • 转到符号的类型 在调试模式下导航到接口实现。

  • 整数算术分析支持所有 C# 整数数值类型——intuintbytesbyteshortushortlongulong

  • [CodeTemplate]属性,帮助 报告和更新已弃用的 API

  • [RequireStaticDelegate]属性,鼓励 无分配代码模式

  • 查找用法 Alt+F7 适用于用户定义的隐式转换运算符。

  • 重新设计的用户界面、自定义选项以及用于 复制代码引用的新快捷键 Control+Alt+Shift+C

  • C# 格式化器提供更多可配置规则。

  • 通过 .globalconfig 文件支持代码风格和检查配置。

  • 改进了 继承边距标记 ,包括在 ReSharper 和 Visual Studio 标记之间切换的选项。

  • 通过 [LanguageInjection] 属性标记参数、字段和属性中的 注入语言

  • 在插入符号下突出显示 逻辑和条件运算符

  • 反编译器改进:支持异步可释放、记录和记录结构。

  • 在 C++ 中的新功能:

    • C++20:

      • 代码补全可快速生成使用指定初始化器的聚合初始化样板代码。

      • 现代化检查以采用新的标准库功能:用于从任何标准容器中删除元素的函数(std::erasestd::erase_if )、检查关联容器中是否存在元素(std::contains )以及创建具有默认初始化的智能指针(std::make_shared_for_overwritestd::make_unique_for_overwrite)。

    • Unreal Engine

      • 所有预定义的 Unreal Engine 类模板都可在 ReSharper 的 文件模板列表中使用。

      • ReSharper 现在可以正确处理 Unreal Engine 的 稀疏类数据系统

    • 参数信息工具提示显示常量表达式的评估结果。

    • 新的检查和快速修复:lambda 声明符中的冗余参数列表,冗余的详细类型说明符,for 循环可以替换为 while 循环,包含单个类特化的命名空间定义,可能缺少关键字 throw[[nodiscard]] 不能应用于没有返回值的函数,抽象最终类被标记为 finalsealed ,非重写虚函数被标记为 finalsealed

    • 文件结构将具有相同限定符的符号分组在限定名称中。

    • 更改签名允许您控制 [[nodiscard]] 属性。

    • C 支持:C11 _Generic 表达式, typeof GNU 扩展。

    • 转到声明可以从 goto 语句导航到相应的标签,并在非活动的预处理器块中搜索声明。

    • 在输入 /// 时生成 Doxygen 注释。

    • 捆绑的 Clang-Tidy二进制文件已更新为 Clang 13,添加了新检查。

ReSharper 2021.2

  • 可空引用类型支持:

    • 新的检查、快速修复和上下文操作,例如冗余的可空警告抑制。

    • 改进了对 [NotNullIfNotNull("param")] 属性中参数名称的支持。

    • 改进了对泛型的支持。

    • 一个新的重构,用于更改可空性。

    • 一个新的操作,用于从文件/项目/解决方案中的抑制表达式中查找可空警告抑制。

  • 源生成器支持

  • 新的检查、快速修复和上下文操作。 例如,建议将 new EventArgs() 替换为 EventArgs.Empty

  • ConfigureAwait 分析

  • .editorconfig中支持 generated_code 属性以 忽略生成的代码

  • 转到声明 在调试模式下对接口成员的使用进行调用时,可以 导航到其实际实现

  • 转到派生符号 显示派生类中隐藏您正在导航的成员的成员。

  • InspectCode 命令行工具 会在开始分析之前自动恢复 NuGet 包并构建解决方案。

  • 一个选项,用于关闭 Razor 中 CPU 密集型的 编码辅助功能

  • 命名样式 的改进:支持记录、扩展方法和捕获变量的自定义命名规则。

  • 加速对具有大量局部函数和闭包的成员的代码分析。

  • 内置反编译器的改进:

    • 单文件应用支持(使用“生成单文件”选项发布的可执行文件,包括自包含和框架依赖)适用于 .NET Core 3.0、.NET 5 和 .NET 6 预览(捆绑头版本 1.0、2.0 和 6.0)。

    • 特定于平台的可执行文件(应用主机;“生成单文件”为 false)可以添加到 程序集资源管理器中。 相应的托管程序集将显示在应用主机节点内。

    • 反编译器支持异步流(async 迭代器, await foreach)。

  • 在 C++ 中的新功能:

    • 内联函数重构。

    • 类型转换提示

    • 新的不可变性检查:参数可以被设为对 const 的引用,参数可以被设为指向 const 的指针,变量可以被设为 constexpr

    • 新的现代化检查:可以使用结构化绑定代替 tie(..) ,可以使用模板别名或变量模板简化类型特性,可以使用 std::size ,可以使用零初始化代替 memset

    • Unreal Engine

      • 支持 Unreal Engine 5。

      • 代码补全现在建议可用模块和插件的列表。

      • 针对缺少模块和插件依赖项的检查和快速修复。

      • ReSharper 在生成重写函数时现在会插入 Super 调用。

      • Unreal Engine 代码库的索引速度提高了 10%。

    • 上下文操作可以将任何字符串转换为 C++11 原始字符串字面量,反之亦然。

    • 退格取消缩进

    • 快速文档现在包含指向 cppreference.com的链接。

    • 用于配置函数定义代码生成的新设置。

    • 捆绑的 Clang-Tidy二进制文件已更新为 Clang 12,添加了新检查。

ReSharper 2021.1

  • 记录类型被大多数功能支持,例如 提取接口重构提取超类重构查找用法 ,以及多个检查、快速修复和上下文操作。

  • 新的检查、快速修复和上下文操作。 例如,建议将 !() 转换为 is not

  • 命名样式 的改进:

    • 对用户规则进行排序,使更具体的规则具有更高的优先级。

    • 从 EditorConfig 中读取和写入用户规则。

  • 新的重构功能,用于重命名元组组件。

  • 针对 ASP.NET Core 路由模板的结构化导航、重构、检查和快速修复。

  • 元组转换的类型转换提示。

  • “导航到 Windows 资源管理器”操作。

  • 新的格式化设置:

    • 目标类型 new() 括号前后和内部的空格。

    • 赋值运算符前的换行。

    • 标签语句中的缩进。

  • 单元测试的改进。

  • 文件布局模式中,新的约束 Body 允许区分块体和表达式体成员。

  • 复制 FQN还允许复制 GitHub 链接。

  • 在 C++ 中的新功能:

    • C++ 支持:

      • 非类型模板参数中的类类型。

      • C++20 类模板参数推导规则。

      • noexcept 作为函数类型的一部分。

      • 新的协程代码补全项可用于基本代码补全和后缀补全模板: co_awaitco_yieldco_return

    • Unreal Engine

      • 初步支持 Unreal Engine 5。

      • 支持 RIGVM_METHOD 反射宏。

      • Cast 后缀模板

    • 一组 语法风格设置,附带检查、快速修复和上下文操作。

    • 代码清理更新:新的代码清理任务,清理选择的上下文操作。

    • 新的检查:模板参数可以被推导,变量可以移动到内部作用域,冗余的强制转换表达式。

    • 针对转换错误的新快速修复。

    • 针对 聚合初始化提示的停止列表和单独的选项页面。

ReSharper 2020.3

  • C# 9 支持:

    • 顶级语句。

    • 本地整数。

    • 目标类型条件表达式。

    • 静态 lambda。

    • DynamicallyAccessedMembersAttribute 支持。

    • 仅初始化的设置器。

    • with 表达式和记录。

    • 局部函数上的属性。

    • 支持 lambda 丢弃参数。

    • 源生成器。

    • 目标类型 new

    • 协变返回。

    • 扩展的部分方法

    • 扩展 GetEnumerator

    • 初步支持函数指针类型

  • 转到文本 中进行模糊搜索。

  • 嵌入提示 的改进:推送到提示、类型转换提示、针对 XAML 提示的更好启发式和上下文菜单、更改字体大小的能力、重新设计的设置页面。

  • 结构化移除

  • 能够通过 标签页 跳出闭括号和引号

  • 新的 C# 语法风格: 'new()' 对比 'new T()'default' 对比 'default(T)'

  • 支持 Avalonia 框架。

  • 动态程序分析 (DPA)

  • 单元测试:直接从编辑器中使用选定的目标框架运行测试。

  • 标识符工具提示中的语法着色。

  • CleanupCode 命令行工具 控制台工具现在可以在指定的文件或文件夹集上运行,而无需指向解决方案文件。

  • 反编译器改进:静态局部函数、顶级语句、局部函数上的属性、结构上的只读实例成员。

  • IL 查看器窗口 :同步和上下文高亮的改进。

  • Assembly Explorer 窗口 :顶级入口点项(展示、双击/上下文菜单导航、属性)。

  • 转到文件成员 在库代码中保留外部源(反编译代码/符号文件代码/元数据视图)的 展示模式

  • TypeScript 支持:空合并和可选链式调用

  • 在 C++ 中的新功能:

    • Unreal Engine

    • C++20

      • 比较规则

      • 范围

      • 支持 Visual Studio 16.8 中引入的 C++20 协程的标准模式

    • 新的检查:可以使用操作范围的算法,可以使用 std::views::keys/values ,可以使用接受迭代器和计数的算法。

    • 导入补全

      • 补全列表现在包括不完整类的合适成员。

      • 新增选项,可为相应的类添加详细类型说明符。

    • 上下文操作以反转三元表达式

    • 转到声明可用于在匹配的预处理器指令之间跳转,并在 override 关键字上导航到基函数

    • 查看定义视图:查看实现( Ctrl+Alt +中键单击或 Control+Alt+Q )和查看基符号(Shift+Alt+Q )适用于 C++。

    • 文件结构现在使用 C++17 嵌套命名空间的语法。

    • C++/CLI转到派生符号现在适用于 C++/CLI 属性中的 get/set 函数和 C++/CLI 事件中的 add/remove 函数。

    • 捆绑的 Clang-Tidy二进制文件已更新为 Clang 11,添加了新检查和编译器诊断。

    • 支持 /external:* 编译器开关

    • 对 Catch2 支持的更新

    • 更快的 查找用法重命名 ,适用于私有类成员

ReSharper 2020.2

  • ReSharper C++ 包含在 ReSharper 订阅中

  • 能够在保存时 自动重新格式化代码并运行代码清理 ,以及 适用于最近修改或打开的文件

  • XAML 中的内嵌提示

  • 您可以通过按 Alt+F7查找符号的用法)、 Control+Alt+F7转到符号的用法 )或 Shift+Alt+F7查找相关实体的用法 )快速定位 解决方案和引用的程序集 中任何符号的用法,结果列表包括 全局搜索/转到类型转到符号转到文件成员

  • 查看定义视图中的新功能:查看实现( Ctrl+Alt +中键单击或 Control+Alt+Q )、查看基符号(Shift+Alt+Q )、查看用法( Ctrl +中键单击)。

  • 类型依赖项目依赖图中的新导出格式: GraphML (用于外部分析)和 XPS (用于打印大型图表)。

  • ReSharper 命令行工具可以作为 .NET Core 全局工具安装和使用。

  • EditorConfigdotnet_diagnostic 规则的支持。

  • [RegexPatternAttribute] 之前仅为标记的参数启用了 正则表达式辅助 ,现在也适用于字段和属性。

  • 改进的 Blazor 支持

  • 单元测试的改进:

    • 新的统一测试运行器,支持 .NET 和 .NETCore

    • 支持 MSFakes,适用于 NUnit、XUnit 和 MSTest 的 .NET 和 .NETCore 测试(仅限 Windows)

    • 支持 TypeMock,适用于 NUnit、XUnit 和 MSTest v2

    • 能够从编辑器中的测试 导航到其所在的测试会话

  • 反编译器:支持表达式体成员、throw 表达式、默认参数和命名参数。

  • 反编译器: NullablePublicOnlyAttribute 支持。

  • 在 C++ 中的新功能:

    • Unreal Engine

      • 引入了对 Unreal Engine 项目模型的支持,使 ReSharper C++ 能更好地理解不同的解决方案配置以及插件和模块引用。

      • 引擎源代码中的符号现在被视为库符号,默认情况下在搜索结果中隐藏。

      • 根据 Unreal Engine 编码标准,对检查严重性、代码生成操作、文档模板和 include 指令的自动导入进行了多项更新。

      • 如果项目文件过期,提醒在 Unreal 编辑器中刷新 Visual Studio 项目。

      • 捆绑的字典补充了常见游戏缩写和首字母缩略词列表。

    • C++/CLI

      • 在 C++/CLI 代码中查找派生符号时,ReSharper C++ 现在可以找到 C# 代码中的符号。

      • 转到基符号转到派生符号现在适用于导入的 CLR 实体。

    • 转到声明适用于未解析的标识符。

    • 突出显示插入符号下元素的用法。

    • 突出显示预处理器指令中的拼写错误。

    • 文件结构 :预处理器指令现在默认隐藏。

    • 新的检查:可以使用结构化绑定,不能在本机类型上使用 gcnew ,不能在托管类型上使用 newfinal 说明符不能用于托管类,重写函数没有 virtual 说明符,可能需要重新生成项目文件。

    • Clang-tidy 快速修复的简要预览。

    • 改进了对类类型值在 constexpr 函数评估中的支持。

    • 代码补全 :当需要 std::function 参数时,新的补全项可以插入自动生成的 lambda 参数。 如果类未包含在当前文件中,导入补全将建议添加前向声明的新选项。

    • 新的设置:对齐的 ?: 运算符缩进,在多行 // 注释中按 Enter 插入 //,仅将带引号的 include 视为潜在的主头文件。

    • 新的 文件模板 :源文件和头文件。

ReSharper/ReSharper C++ 2020.1

  • 可空引用类型支持:

    • 与可空引用类型相关的编译警告。

    • 新的检查和快速修复,用于检测与可空引用类型相关的冗余类型参数约束。

    • 针对可空性警告的多种快速修复。

    • 更改签名重构已更新以支持更改可空性。

    • 快速文档已更新以显示可空性注解。

  • 新的检查和快速修复,用于检测并使用异步方法重载(如果可用)而不是同步方法。

  • 可配置的代码风格,用于 尾随逗号 ,适用于具有多个项和类似结构(对象、数组和集合初始化器,以及枚举和 switch 表达式)的声明。

  • 转到声明 与中键配合使用。

  • 您可以通过在 转到文件 列表中选定的结果上按 Ctrl+Enter 来定位解决方案资源管理器中的文件。

  • 单元测试会话的导出和导入

  • 本地化管理器的改进:能够编辑、导出和导入注释,以及若干用户体验和性能修复。

  • 反编译器:改进了元组组件名称的支持。

  • 反编译器:可空引用类型(在声明中,而非方法体中)。

  • 反编译器:默认接口成员。

  • 反编译器:针对自动实现属性和类似字段事件的字段定向属性。

  • IL 查看器:支持接口实现和泛型参数约束中的自定义属性(例如,编译器可以将 NullableAttributeTupleElementNamesAttribute 应用于这些实体)。

  • ReSharper C++ 2020.1 的新功能:

    • C++20:

      • 约束类型占位符和简化函数模板

      • 使用枚举声明和 引入使用枚举重构

      • 在命名和重新定义检查中支持概念

    • 新的检查:未使用的 lambda 捕获,使用函数式风格的强制转换代替 C++ 强制转换, reinterpret_cast 代替 static_cast 进行 void 类型转换,在 lambda 中使用显式模板参数

    • 新的设置“区分大小写排序”和“按目录分组头文件”用于 头文件排序

    • 代码补全改进:补全属性名称;在 goto 语句中补全时显示标签名称; 后缀补全用于 std::forward ;从重写函数补全对基函数的调用时会插入转发调用,将所有函数参数传递给基函数;宏定义中的补全; 完成语句

    • 输入辅助在键入相应键后用括号/方括号/引号包围选定代码

    • “添加 [[maybe_unused]] ”快速修复

    • 上下文操作将 UNREFERENCED_PARAMETER 替换为 [[maybe_unused]] 属性

    • 转到...操作中的过滤器,用于概念和命名空间

    • 生成中的选项,用于向生成的 getter 和构造函数添加 [[nodiscard]] 属性

    • 类型名称提示在依赖代码中默认启用

    • “生成模拟函数”支持 GTest 1.10 的 MOCK_METHOD

    • 参数名称提示在依赖函数调用中

    • 关于未满足约束的更好的错误消息

    • 单元测试设置使用文件而不是命名管道(当命名管道被防病毒软件阻止时很有用)

    • 更改签名接受无法解析的类型

    • 针对 重新排列代码操作的重大改进

    • Clang-tidy已更新为 LLVM 10,新增检查和诊断

    • 转到声明适用于注释中的符号名称

    • 文件结构的改进:图标现在有类成员可访问性和虚拟/静态/纯说明符的指示器,类成员的新继承图标(当函数重写/实现/隐藏基函数时显示)

    • 转换为 Scoped Enum 重构

    • 用于 文档操作的专用快捷键 Control+/

    • Unreal Engine 4 支持的改进:

      • 重命名 UE4 头文件时也会重命名相应的 *.generated.h #include

      • 重命名 UE4 类型时也会重命名相应的头文件和源文件(带有 AFE 前缀)

      • SpatialOS 框架支持

      • 调整 UE4 解决方案的默认设置以更好地匹配其编码指南(避免建议 auto 关键字)

      • 更好地支持 UE4 命名约定:控制台变量和日志类别的命名规则

      • 转到...操作显示包含 UE4 枚举的命名空间

ReSharper/ReSharper C++ 2019.3

  • 改进的 C# 8 支持,包括: notnull 约束、目标类型 switch 表达式、对 default interface 方法的早期支持、新提示“局部函数可以是静态的”,以及新快速修复“添加缺失的分支”。

  • 本地化管理器

  • 类型名称提示用于 lambda 的参数、 var (包括模式匹配和元组解构)、LINQ 语句中的范围变量以及方法调用链中行尾。 针对函数中缺少返回值和 switch 语句中缺少 break 的提示

  • Xamarin 支持修复:支持 x:DataType 属性。

  • 在 switch 表达式中生成类型模式

  • 选项使用 System.HashCode 实现 GetHashCode ,并在生成 相等成员相等比较器时考虑可空性。

  • 参数信息 支持元组。

  • EditorConfig读取和导出 C# 命名设置

  • 查找依赖代码现在适用于 NuGet 引用,并可在整个解决方案中运行。 此外,查找结果中的依赖代码有新的过滤器。

  • 导航到:使用 API

  • 元组、解构和丢弃的反编译。

  • 使用 符号包 .snupkg )导航到 NuGet 包的外部源

  • 新的 代码检查快速修复。 其中包括针对 NUnit 测试的内容。 “类型或成员从未使用”被拆分为两个单独的检查——针对类型和针对成员。

  • 单元测试资源管理器窗口单元测试会话窗口 中的新的分组和过滤选项。

  • 语法高亮 中不同类型标识符的更多颜色。

  • 针对 使用 'var' 与显式类型的代码风格的更详细配置。

  • ReSharper 命令行工具 可以在 Linux 和 macOS 上运行。

  • ReSharper C++ 2019.3 的新功能:

    • C++20:初步支持 C++20 概念, ADL 和不可见的函数模板从括号括起的值列表初始化聚合

    • Clang-tidy 集成的改进:

      • 捆绑的 clang-tidy 二进制文件已更新至版本 9,新增了许多检查。 此外,它不再阻止对源文件的修改。

      • 现在可以从检查菜单中禁用 Clang 警告。

      • 新增设置以使用特定的 clang-tidy 配置文件(而不是指定配置为字符串的设置)。

    • 格式化器改进:将格式化选项导出到 .clang-format 文件,选项包括在抽象声明中 ptrref 之前的空格。

    • 得益于代码高亮引擎的一些改进,现在重新高亮的速度更快(在函数体更改后,仅重新分析函数体本身)。

    • 新的快速修复,帮助将变量添加到 lambda 捕获列表。

    • Unreal Engine 4 支持的改进:

      • UE 智能指针(TSharedPtrTSharedRefTWeakPtrTUniquePtr )获得支持,与 std::shared_ptr/unique_ptr 类似(例如,它们受 参数信息代码分析后缀补全支持)。

      • new后缀模板用于 UCLASS 扩展为适当的工厂函数调用。

      • 新的 USTRUCT/UCLASS/UENUM/UENUMCLASS 实时模板现已可用。

      • 在 Unreal Engine 4 编辑器中执行“刷新 Visual Studio 项目”操作后,不再出现 Visual Studio 卡顿。

    • 若干 实时模板已重命名以匹配相应的关键字(例如, cls 重命名为 classstr 重命名为 struct)。

    • 转到文件成员的若干更新:对话框现在即时显示,而无需等待文件完全分析;如果文件同时包含函数的声明和定义,则对话框中仅显示一次该函数。

    • 现在可以从括号封闭的初始化列表的起始括号导航到聚合类。

    • 新增设置以在 %PATH% 中找到要使用的 clang-tidy 可执行文件。

    • 内嵌提示的改进:自动变量、结构化绑定、函数和 lambda 返回类型的类型名称提示。 在依赖代码中,类型名称提示默认被禁用。

    • #include 指令进行排序(快速修复上下文操作)。

ReSharper/ReSharper C++ 2019.2

  • 改进了对 C# 8 的支持,包括:索引和范围的最新更改,例如可索引和可范围的类型,以及非托管泛型结构。

  • 转到文件成员 现在还会在当前文档中搜索文本匹配项。

  • 能够在 转到文本 的搜索结果中过滤掉注释中的出现项。

  • 能够从 导入命名空间建议导入符号补全 中排除符号。

  • 解决方案模型直接从 项目/解决方案文件中读取。

  • 用法搜索通过使用 解决方案范围分析 的索引运行得更快。

  • IL 查看器窗口中的带关键字描述的工具提示。

  • Assembly Explorer 窗口 中的 Win32 资源子树。

  • ReSharper C++ 2019.2 的新功能:

    • 改进了 编辑器提示。 新增了两种提示类型:预处理器指令后的提示和通过非 const 引用传递的函数参数的提示。 聚合初始化表达式中的提示现在显示已初始化的基类的名称。

    • 支持更多 C++20 功能:条件 explicitchar8_t 、lambda 初始化捕获中的包扩展、默认可构造和可分配的无状态 lambda、聚合的 C++20 规则、 constevalconstinit 说明符,以及 C++20 对结构化绑定声明的改进。

    • 代码补全中的摘要工具提示现在具有语法着色,并显示所选项的文档。

    • 改进了对 Unreal Engine 4 的支持:

      • 重命名更改签名重构正确处理 UE4 RPC 函数。

      • Unreal Engine 特定代码分析检查,特别针对缺失或设置不正确的 UE4 反射宏。

      • 内置文档现已可用于 快速文档 弹出窗口中的反射说明符。

ReSharper/ReSharper C++ 2019.1

  • 支持 Visual Studio 2019。

  • 支持 C# 8,包括:范围和从末尾的索引表达式、空合并赋值、switch 表达式、switch 语句中的元组表达式、静态局部函数、对使用 var 声明的初步支持、可空引用类型(仅解析)、异步流、异步可释放。

  • 转到文本 现在会在解决方案中的所有文本文件中搜索。

  • 优化引用现在适用于 SDK 项目。

  • 提取方法重构 支持在 UI 中重命名引入的参数。

  • 嵌入提示 的改进:属性用法提示、针对 StringFormatMethod 调用的特殊提示(默认禁用)、更灵活的配置、列选择时自动隐藏、用于显示/隐藏提示的键盘快捷键 Control+Alt+Shift+5

  • 针对 代码注解可空性分析的新功能:当插入符号位于泛型集合类型的参数中时,输入辅助会插入 ItemNotNull/ItemCanBeNull 属性, Lazy<T>Task<T> ;输入辅助支持 C# 8 可空引用类型,允许插入或移除可空标记 ? ;方法声明上的代码注解提示。

  • 更快的导航和搜索:“即时”类型搜索、“随处搜索”和“转到类型”更快。

  • Formatting and code cleanup improvements: formatting inspections for indenting around child statements are turned on by default, detecting formatting settings now works in background, export settings to EditorConfig, an option to turn off placing System.* and Windows.* namespaces first when rearranging namespace imports, which is now compatible with Visual Studio and StyleCop

  • 输入辅助支持 Backspace 上的取消缩进,将插入符号返回到当前缩进大小的倍数或代码结构中预期的缩进位置。

  • ReSharper C++ 2019.2 的新功能:

    • 性能改进:更快的索引速度、更小的内存占用、索引和代码分析期间的内存流量减少、大型解决方案中从缓存打开解决方案的速度更快。

    • 新的语言功能:C++20 泛型 lambda 的熟悉模板语法,C++17 十六进制浮点字面量,替代运算符表示法,对 C++20 合约的基本支持,以及三向比较运算符。

    • 配置 命名规则时可用的新实体类型。

    • Unreal Engine 4 支持:

      • 使用默认设置的初始索引速度比 2018.3 快 6 倍,索引后使用的托管内存减少 2 倍,活动对象减少 3 倍。

      • 对 RPC 函数的感知:在它们之间导航,生成实现和输入补全。

      • UE4 选项页面提供设置,允许关闭引擎代码/第三方代码/插件的索引。

      • 初步支持由 Unreal Engine 编码标准定义的命名约定。

      • 默认情况下, Clang-Tidy 集成 在 Unreal Engine 4 解决方案中被禁用。

    • 单元测试的新功能:支持 doctest 单元测试框架 ,支持 Catch 2.7(TEMPLATE_PRODUCT_TEST_CASE 测试声明),支持 Google Test 中的 GTEST_SKIP() ,用户提供的环境字符串中扩展了用 % 包裹的环境变量名称。

    • 格式化设置的改进:支持 C 中的 K&R 风格声明,提供围绕引用和指针的空格的单独格式化选项,宏调用的格式化类似于函数调用。

    • 外部文件中标识符的高亮显示

    • 导航和搜索的改进:链式 “转到”搜索现在快了几倍,支持 包含基类成员 选项在 转到文件成员 中,“转到文件成员”、基类和派生类搜索现在在索引期间也能工作。

    • 文档注释的更多功能:在 XML 文档注释中重命名参数名称,输入辅助会在新行自动插入 ///

    • Clang-Tidy 集成 的改进:单独的 clang-tidy 选项页面(代码编辑 | C++ | Clang-Tidy ),设置以利用用户提供的 clang-tidy 二进制文件。

ReSharper/ReSharper C++ 2018.3

  • C# 7 的新功能: 代码检查快速修复 ,以及针对元组、解构等的 上下文操作

  • 支持 VB.NET 15.3 和 15.5 功能:命名元组推断、前导十六进制/二进制/八进制分隔符、非尾随命名参数。

  • 嵌入提示

  • 从现有代码中使用 C# 命名规则

  • 从现有代码中学习格式化规则

  • 引入参数重构 现在也适用于局部函数。

  • 外部注解 可以存储在 VCS 下,在解决方案或项目文件旁边的 外部注解 文件夹中。

  • 能够通过 转到操作 Control+Shift+A 打开选项页面。

  • 配置 转到声明的使用感知行为的选项。

  • 集成反编译器的改进:局部函数反编译;模式匹配反编译:const 模式、类型模式、case 子句中的类型模式(支持谓词和丢弃)。

  • 本地化协助 在 ASP.NET Core 应用程序中的支持。

  • 针对 NUnit 和 xUnit.net 测试的新 代码检查快速修复上下文操作

  • 针对 InspectCode 命令行工具 命令行工具的多线程模式。

  • TypeScript 3.0 语法支持:未知类型(仅解析)、元组类型中的可选元素、元组类型中的剩余元素、带元组类型的剩余参数、带元组类型的扩展表达式(无解析)、泛型剩余参数。

  • ReSharper C++ 2018.3 的新功能:

    • C++ 代码的格式化设置自动检测

    • 预定义的 命名风格方案(STL、Google、LLVM、CamelCase、Microsoft)。

    • 性能改进:改进了索引期间的内存流量,多线程缓存加载。

    • 导航改进: 转到声明 在非依赖 decltype 说明符和 lambda 上更精确,甚至可以在初始索引期间使用它。

    • 重构改进: 更改签名重构 提供选项以使函数 constexpr/const/noexcept 并更改 ref 限定符。

    • 代码分析改进:模板代码中的 错误诊断显著改进,提供有关失败的 enable_if 条件、 decltype 中的格式错误表达式以及缺失的内部类型的额外信息。

    • 新的 上下文操作 ,用于生成将枚举转换为字符串的函数,将函数声明中的常规返回类型转换为尾随返回类型,反之亦然,还可以插入使用类模板参数推导推导出的模板参数。

    • 代码生成改进: 生成 Getter/Setter可以创建 C++/CLI 属性, 生成重写成员可以重写 CLR 属性。

    • 针对 Unreal Engine 项目:推迟引擎本身的后台索引以改进初始索引性能,并更好地处理反射宏。

    • Catch 2.5 的单元测试支持

    • 在 C++11 中支持的新类型特性 std::has_virtual_destructor 以及在 C++/CLI 中支持的新类型特性(__is_interface_class__is_ref_array__is_ref_class__is_value_class__is_sealed__is_delegate__has_finalizer)。

    • C++20 嵌套内联命名空间支持。

    • 改进的 C++/CLI 支持。

ReSharper/ReSharper C++ 2018.2

ReSharper/ReSharper C++ 2018.1

  • 完全支持 C#7.2,包括以前版本中缺失的功能:非尾随命名参数、私有受保护访问修饰符、数字字面量中的前导下划线、 in 参数、 ref readonly 返回值和局部变量、 readonly struct 类型、 ref struct 类型、 conditional ref 运算符。

  • 一种无需 解决方案范围分析 即可检测未使用的非公共成员的新方法——ReSharper 选项 代码检查 | 设置 页面上的 当解决方案范围分析关闭时,显示未使用的非私有类型成员 选项 Alt+R, O

  • 代码清理现在可以通过免费的 CleanupCode命令行工具执行。

  • 值跟踪 支持一些新的 C# 功能:返回引用的方法、模式匹配和 out 变量。

  • 单元测试的新筛选器 /u随处搜索 Control+N 中(ReSharper 最强大的搜索操作,之前称为 转到所有内容)。

  • 可配置的 'var' 样式和新的 代码检查快速修复以及 上下文操作 ,用于解构声明和丢弃。

  • EditorConfig 属性 ,用于 代码语法样式代码检查严重性级别

  • 代码检查功能 ,用于 代码格式化样式

  • 初步支持 StyleCop

  • 输入辅助改进:如果您在行注释中间按下 输入 ,ReSharper 会在新行文本前自动添加两个斜杠 // ,以避免生成不可编译的文本。

  • 支持 NUnit 3.10.1。

  • ReSharper C++ 2018.1 的新功能(扩展版本也可在 专用博客文章中找到):

ReSharper/ReSharper C++ 2017.3

ReSharper/ReSharper C++ 2017.2

  • 支持 Visual Studio 2017 15.3 中的 .NET Core 2.0 项目。

  • 转到文本已集成到 随处搜索中。

  • 通过名称 导航的命令可以处理 CamelCased 标识符中的单词顺序错误以及拼写错误。 它们还支持在引号内进行精确匹配查询。

  • C# 7.1 支持:推断的值元组组件名称、默认字面量、异步 Main。

  • 转到附近文件——一个新的导航命令。

  • 新的输入辅助功能: 添加 NotNull/CanBeNull 注解将表达式体成员转换为块体成员

  • 一个新选项,用于在 实现接口时使仅有 get 的属性可变。

  • 一个新选项,用于在 生成类型构造函数时使参数可选。

  • 新的选项页面(代码编辑 | C# | 空值检查 ),允许您自定义 为异常和断言生成空检查例程

  • 调试没有调试信息(PDB)的模块

  • XML 在 语言注入中受支持。

  • 更多 上下文操作快速修复支持 <inheritdoc/>

  • 快速文档 Control+Q 以及对范围 NPM 包的补全现在可用于项目配置文件( project.json package.json bower.json )。

  • 内置反编译器的改进:能够检索程序集的原始源代码,该源代码通过 便携式 PDB使用 Source Link引用;如果任何 导航和搜索命令在单个方法中产生多个匹配项,ReSharper 现在会在搜索结果中显示所有匹配项。

  • 交互式教程(ReSharper | 帮助 | 教程 ),帮助您开始使用 ReSharper 的功能或快速掌握新版本中的功能。

  • 改进的 TypeScript/JavaScript 支持,包括:

    • 最终支持 TypeScript 2.3 功能:异步迭代器、可选泛型、无状态 JSX 组件的重载解析、对象字面量的上下文 this 以及 --strict 选项。

    • 完全支持 TypeScript 2.4 功能:具有字符串值(或混合字符串/数字值)的枚举、从上下文类型返回的泛型推断以及泛型上下文签名。

    • 引入/内联类型别名重构。

    • 支持通过 NPM 添加的 Angular2 组件的 Angular 输入/输出别名和属性指令,并改进了对 Angular 4 语法的支持。

    • 改进了 查找用法重命名重构 中映射类型成员的支持。

  • ReSharper C++ 2017.2 的新功能(扩展版本也可在 专用博客文章中找到):

ReSharper/ReSharper C++ 2017.1

  • 完全支持 Visual Studio 2017。

  • 随处搜索转到文本中的过滤器,您可以在搜索查询之前或之后直接在搜索字段中输入。

  • 一个新选项,帮助通过完全忽略选定项目来提高大型解决方案的性能,可在 ReSharper 选项 代码检查 | 忽略的代码 Alt+R, O 中配置。

  • 查找结果 窗口的改进:按用法类型分组(适用于 C# 和 C++),改进的过滤器,使用引号进行精确匹配搜索的可能性,找到的用法中的错误高亮。

  • 一个选项,用于在预览选项卡中打开每个新文件 导航到的文件,可在 ReSharper 选项 环境 | 搜索与导航 | 常规 Alt+R, O 中配置。

  • EditorConfig 支持

  • 格式化规则的上下文配置现在可用于 C#。

  • 使用 ReSharper 格式化首选项 自动格式化粘贴的代码

  • 所有 支持的语言中的选项卡和缩进现在可以在 ReSharper 的 分层设置中配置和存储。

  • 其他格式化器改进:在重新格式化代码时 自动检测缩进 ,支持逗号优先样式,C# 中单个 case 语句的换行选项,HTML、CSS 或 XML 文件末尾添加换行符的选项。

  • 用于 简单类型成员体的代码风格。

  • 状态指示器上的上下文菜单 ,提供快速访问 代码检查的多个选项和命令。

  • 重新设计的 代码清理 用户体验,现在可以直接在代码清理对话框中创建和编辑自定义清理配置文件。

  • 单元测试辅助 在基于 .csproj 的项目中支持 Visual Studio 2017(需要 2017 年 3 月 28 日或更高版本的 Visual Studio 2017 更新)。

  • 支持 Razor 标记帮助器中的路由属性: 代码补全导航和搜索命令重命名重构

  • 改进的 TypeScript/JavaScript 支持,包括:

  • ReSharper C++ 2017.1 的新功能(扩展版本也可在 专用博客文章中找到):

    • 从缓存加载解决方案时托管内存使用量减少约 30%。

    • C++ 后缀模板的集合扩展了 beg..endnewvarconst_castdynamic_castreinterpret_caststatic_castmake_sharedmake_unique

    • 格式化器改进:预处理器指令的缩进、强制转换表达式中括号后的空格、简单 case 语句中的换行、命名空间成员的缩进。

    • 文件头样式

    • 用于移除代码冗余的新代码清理任务。

    • 用于配置 C++ 测试的新选项页面(工具 | 单元测试 | 测试框架 | C++ 测试)。

    • 初步支持 Open Folder 和 CMake 项目。

ReSharper/ReSharper C++ 2016.3

  • 支持 Visual Studio 2017 RC,包括基于 .csproj 的新 .NET Core 项目。

  • 语言注入 中进行了大量改进:支持 JavaScript、CSS 和 JSON,能够通过 /*language=javascript|html|regexp|jsregexp|json|css*/ 注释注入语言,能够在特定情况下禁用自动语言注入。

  • 一个新的 转换参数重构 ,结合并替代了其他两个重构“转换输出参数”和“从参数中提取类”。

  • 不再为特定语言提供单独的 上下文操作 设置页面,因为现在可以在 ReSharper 选项的 代码编辑 | 上下文操作 页面上启用或禁用所有这些设置。

  • 重新设计的检查严重性选项页面(代码检查 | 检查严重性)。

  • 新的选项页面(代码编辑 | 第三方代码 ),允许将 C++、JavaScript、TypeScript、CSS、HTML 和 JSON 文件、文件夹和通配符设置为“跳过”或“库”。 ReSharper 将完全忽略“跳过”的文件,并将“库”文件视为只读——用于 导航的索引,但不进行 检查快速修复重构

  • 符号用法操作允许您在用法搜索完成之前从弹出窗口切换到查找结果窗口。

  • 查找结果 窗口以异步方式工作,这意味着您可以在搜索进行时处理结果树。

  • 最近文件最近编辑弹出窗口现在显示文件路径, 最近的编辑 还可以将同一方法中的所有编辑显示为单个条目。

  • 支持的新内容文件格式(.less.hbs.coffee.scss.dart.as.styl )在 转到文本 中。

  • 一个设置,用于记住 全局搜索/转到类型转到文件转到文本 操作中的最后一次搜索(此行为默认关闭)。

  • Assembly Explorer 窗口 添加了 加载程序集的新方法——直接从 nuget.org或任何 NuGet 包源。

  • 新的代码生成操作: 关系成员关系比较器释放模式 ,以及在 生成构造函数中检查参数是否为空的新选项。

  • 新的快速修复和上下文操作:例如,一个新的快速修复,用于为所有未使用的参数引入字段和自动属性;一个针对类型为 Lazy<T> 的字段的新上下文操作将引入一个属性以封装 fieldname.Value

  • 一个新的插值字符串输入辅助:键入 $ ,ReSharper 将自动完成 $"" 并在引号之间插入文本光标。

  • 合并行命令可快速将下一行附加到当前行之后。

  • ReSharper 构建改进:构建结果现在显示在其自己的构建结果窗口中,纯文本日志记录到输出窗口和/或文件中,加载解决方案后自动运行构建的选项,以及适用于所有支持的 Visual Studio 版本的专有 NuGet 包还原器。

  • 外部堆栈跟踪可以自动在 堆栈跟踪资源管理器 窗口中打开。

  • 初步支持 C# 7.0 和 VB.NET 15 功能: 二进制字面量数字分隔符out 变量局部函数等。

  • 项目配置文件中的包名称动态补全( project.json package.json bower.json )。

  • 单元测试支持现已适用于 ASP.NET Core 和 .NET Core 项目中的 NUnit 和 xUnit.net 单元测试。

  • xUnit.net 测试的显著性能改进。

  • 支持 UWP RelativePanel 控件。

  • 格式化器改进:嵌套 forforeachwhilelock 语句的缩进(无大括号)默认禁用,并提供选项恢复旧行为;用于缩进类型参数约束的新选项;修复了 2016.2 中由新缩进引擎引入的错误。

  • 重新设计了编辑器中 待办事项的着色。

  • 改进的 TypeScript/JavaScript 支持,包括:

  • ReSharper C++ 2016.3 的新功能:

ReSharper/ReSharper C++ 2016.2

  • 支持 ASP.NET Core 1.0 和 .NET Core 1.0 项目。

  • 转到文本

  • 使用 Tab 和 Shift+Tab 进行结构导航

  • 解决方案范围分析 中的警告。

  • 新的 C# 输入辅助功能: 括号内的点/分号逐字字符串插值前缀的自动更正

  • 能够 将引用标记为运行时使用 ,以将其排除在 优化引用移除未使用的引用 功能执行的清理之外。

  • 重新排列代码的改进。 例如,现在可用于插值字符串插入以及具有 3 个或更多操作数的表达式;贪婪大括号现在适用于开括号、类型和命名空间声明的大括号。

  • 重新设计的 环绕模板 :每个非文件模板现在都可以用于生成代码、环绕代码或两者兼而有之,这使您可以将自定义环绕模板重用为实时模板,反之亦然,从而减少其总数。

  • 提取成员到部分重构

  • 将类型移动到另一个文件的重构 现在可以应用于嵌套类型。

  • 程序集依赖图

  • 能够通过注释抑制 自定义代码检查 :在 编辑高亮模式对话框中指定“抑制键”,然后使用类似 // ReSharper disable once [SuppressionKey] 的注释。

  • 执行日志单元测试会话窗口 中,允许您将与测试执行过程相关的问题与单元测试代码分开。

  • 在 .cs、.js 和 .ts 文件的字符串文字中进行 HTML 分析,可以通过上下文操作或字符串文字前的注释 /*language=html*/ 启用。

  • 能够通过字符串文字前的注释 /*language=regexp*/ 启用字符串文字中的 正则表达式辅助

  • JSON 值助手

  • 支持 XML 文档注释中的 <inheritdoc/> 标签。

  • C# 格式化器改进:括号及其内部代码的缩进新选项;控制 ++-- 运算符前后以及 checkeddefault 表达式括号前后的空格。

  • IL 查看器窗口的改进:当您将插入符号放在代码符号或指令上时,该项的所有用法都会被高亮;代码中的循环可以通过相应的缩进和注释区分。

  • 能够 从当前运行的进程中探索程序集

  • 本地化检查和快速修复 以及 移动到资源重构现在适用于插值字符串。

  • VB.NET:支持插值字符串。

  • CSS:支持自定义属性和 CSS 变量。

  • 改进的 TypeScript/JavaScript 支持,包括:

    • TypeScript 中的 生成式补全ctorf/ctorp 、重写、lambda)。

    • 完全支持 TypeScript 2.0 功能,包括函数的 this 、控制流感知类型保护、路径映射、可选类成员、 never 类型。

    • 使用 生成操作 Alt+Insert快速修复为父类中声明的抽象成员生成实现。

    • 转到声明查找用法在处理类型别名时正常工作。

  • ReSharper C++ 2016.2 的新功能(扩展版本也可在 专用博客文章中找到):

    • C++14 语言功能:变量模板和 decltype(auto)

    • 关于使用带有 [[deprecated]]/__declspec(deprecated) 属性的类和函数的警告。

    • 在控制流分析中支持 [[noreturn]]/__declspec(noreturn) 属性。

    • 生成代码中 include 指令的新代码风格偏好。

    • “内联变量”重构 现在在 C++ 中可用。

    • 代码分析的重要优化。 例如,此优化使 Unreal Engine 项目的索引(首次打开)速度提高了数倍。

    • 自动完成 现在在 C++ 中也建议当前文件中未包含的符号。

    • 新的代码检查和快速修复:头文件中缺少 include 保护的“添加 #pragma once 指令”修复;“非显式转换运算符”;检查和修复以向 switch 语句添加缺失的 default 情况。

    • 文档上下文操作允许您快速向类型和符号添加文档注释。

    • 当您的插入符号位于函数的一个出口(returnthrow 等)上时,ReSharper 会自动高亮所有其他函数出口,包括循环和 switch 语句的出口。

    • 用于在默认指针初始化器中使用 0 | nullptr | NULL代码风格偏好

    • 新的格式化选项:单行函数和 lambda,单行函数定义周围的空行,成员初始化列表之前的换行,模板参数中闭合尖括号之间的空格(符合 C++11 之前的编译器)。

    • __RESHARPER__ 宏允许您检测 ReSharper 何时解析您的源代码,并在必要时禁用 ReSharper 的某些代码的预处理器。

    • 快速文档参数信息 弹出窗口可以显示针对 Doxygen 优化的文档注释中的文档。

ReSharper/ReSharper C++ 2016.1

ReSharper/ReSharper C++ 10.0

ReSharper 9.2/ReSharper C++ 1.1

ReSharper 9.1

ReSharper 9.0

ReSharper 8.2

ReSharper 8.1

ReSharper 8.0

ReSharper 7.1

ReSharper 7.0

ReSharper 6.1

ReSharper 6.0

ReSharper 5.0

ReSharper 4.5

  • 主要性能和内存使用改进。

  • 支持 VB9。

  • 扩展的 命名风格设置

  • 解决方案范围的代码检查以发现未使用的非私有成员。

  • 转到实现 ,从基类型或成员的用法导航到其任何最终实现。

  • 内联字段重构

  • 原生 MSTest 支持。

ReSharper 4.1

  • 支持 Microsoft Visual Studio 2008 SP1。

  • ASP.NET 增强功能。

  • 改进的性能和可用性。

  • 错误修复。

ReSharper 4.0

ReSharper 3.1

ReSharper 3.0

  • 全面支持 VB.NET:多功能的编码辅助、代码补全、许多重要的代码重构、代码生成、实时模板等。

  • 全面的 C# 代码分析,提供超越仅关注错误的代码建议,并提出优化的代码用法。

  • 跨语言功能:对于混合 C# 和 VB.NET 项目,ReSharper 帮助您使所有代码部分协同工作,并轻松导航您的代码。

  • ReSharper 的三种 版本 (C#、VB.NET 和完整版本),适用于不同的目标受众。

  • 待办事项列表 :通过某些模式创建待办事项并在它们之间导航。

  • 类型成员预览 :您现在可以预览所选类型的现有成员,无论是全部还是仅多态成员。

  • 自动成员重新排序:在 选项 对话框中定义成员的顺序。

  • 能够 查找依赖于特定模块的代码以及 查找作用域外符号的用法

  • 转到符号 ,用于按名称对任何文件成员进行解决方案范围的强大搜索。

  • 在特定位置禁用警告 :配置“禁用警告”上下文操作并在必要时应用。

  • 单元测试资源管理器窗口 :在运行和调试单元测试时提供无与伦比的灵活性。

  • 支持 XML 和 XAML。

最后修改日期: 2025年 9月 27日