ReSharper 版本历史
本主题列出了以前版本 ReSharper 的发行说明。 要查看最新版本的发行说明,请转到 ReSharper 2025.2 中的新功能。
ReSharper 2025.1
完全支持 .NET 10 和 C# 14 预览功能
转换参数重构 改进:支持值元组、记录类、主构造函数等。
Push-to-Hint 激活改进(按下 Ctrl 键两次并按住),以及 marker bar 上的视觉指示器。
Unity 插件 已捆绑。
Formatter 改进:在
//后正确换行并添加空格,以及一个选项以避免在方法调用中单个 lambda 表达式参数之前插入换行符。集成反编译器的改进:
支持 C# 字符串插值:反编译器现在会在适用的情况下自动将
String.Concat和String.Format调用转换为 C# 字符串插值。支持
allows ref struct泛型反约束支持
ref字段和scoped参数修饰符支持文件范围命名空间。 仅限 dotPeek:在工具 | 选项 | 反编译器 | 代码样式和格式设置中,复选框选项为使用文件范围命名空间(默认 - 选中)。
支持
System.Threading.Lock支持基于模式的
ref结构体使用支持必需成员
为某些整数常量显示带注释的十六进制表示
在 C++ 中的新功能:
支持多个新的 GNU 语言扩展:省略操作数的条件语句、
#import指令、_Float16、__bf16和__float128浮点类型、本地标签以及指定初始化器范围语法。对 GoogleTest 和 Clang-Tidy 集成的更新。
Inline Macro 重构。
在包含大量蓝图的项目中优化内存使用。
为
UMETA和UPARAM反射宏提供代码补全和工具提示文档。
ReSharper 2024.3
改进了对 C# 13 功能的支持:
params集合、部分属性、System.Threading.Lock类型、重载解析优先级、字段关键字。新的 代码格式化 选项:围绕等号
=运算符的换行,从break缩进case,case语句与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_LOG和UE_LOGFMT宏提供代码补全和实时模板。游戏标签的代码补全。
增强了对
UDELEGATE宏的支持。
捆绑的 clang-tidy二进制文件已更新为 Clang 19。
您现在可以使用
// NOLINT(...)、// clang-format off和// clang-format on注释来管理集成的 Clang 工具。
ReSharper 2024.2
初步支持 C# 13。
能够将 用户界面语言更改为中文、日语或韩语。
不同文化的预览 ,用于
ToString()格式说明符。集成反编译器的改进:
反编译器:默认和参数 lambda 参数(C#12:Lambda 可选和参数数组参数)
反编译器:lambda 上的属性
能够反编译受保护的程序集并忽略
[SuppressIldasm]属性。支持同时包含 SrcSrv 和 SourceLink 的 PDB。
从关联程序集的目标框架或关联程序集的便携式 PDB 中获取外部源文件的预处理器指令(如
NET6_0_OR_GREATER)。程序集资源管理器 :程序集构建配置检测和展示。
能够在 Web 浏览器中打开相应存储库的源代码,例如在 GitHub 上。
在 C++ 中的新功能:
C++23 支持:多维下标运算符、
#elifdef和#elifndefC++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 模块:改进了性能并支持内部模块分区。
支持 Slate UI 框架。
在完成 C++ 代码中资源名称时,提供资产路径的补全。
现在支持 HLSL 着色器代码中的接口。
对 clang-format集成的改进包括支持 GNU 内置样式以及
IndentAccessModifiers和DisableFormat格式样式选项。更改签名提供了新功能,包括在指针、引用或值类型之间更改参数类型的能力。
Grazie 拼写检查在文档注释中。
用于配置文档注释样式的新设置()。
新的 格式化选项 :“在 goto 标签后换行”、“缩进 goto 标签”、枚举值的排列、“对空括号格式不做更改”。
ReSharper 2023.3
AI 助手的多项改进,包括 AI 代码补全。
更新了 语法和拼写检查引擎。
创建单元测试可以使用 AI 生成测试内容。
更好地支持使用别名(包括 C# 12 之前和 C# 12)。
支持 C# 12 拦截器,包括专用代码检查和 内嵌提示。
新的 代码注解属性: [MustDisposeResourceAttribute]、 [HandlesResourceDisposalAttribute]、 [IgnoreSpellingAndGrammarErrorsAttribute]、 [TestSubjectAttribute]、 [MeansTestSubjectAttribute]。
Entity Framework 支持的改进:EF 关系图和新的代码检查。
重新设计了 文件头样式的模板。
更新了重构的用户体验,用于 将局部 using 转为全局 using、 回退以及 提取局部函数。
性能改进。 例如,当存在大量目标类型对象创建时, 查找用法的速度更快,这也使得其他功能(如重构)更快。
程序集差异的改进:比较 NuGet 包、文件夹和存档;可配置的差异模式;自动检测 Beyond Compare、WinMerge、P4Merge 和 Meld 作为差异工具。
Assembly Explorer 窗口 的改进:显示 NuGet 包内的所有文件和文件夹;显示内容大小和类型(文件扩展名)Win32 资源节点。
在 C++ 中的新功能:
在非活动预处理器分支中进行代码补全。
查找用法显示宏体和非活动代码中的可能用法。
支持
__pragma(pack)语法、各种 clang 内置函数、特殊预处理器运算符__has_cpp_attribute以及若干新的 C99 和 C23 功能,例如restrict类型限定符。Unreal Engine:
针对未标记
UFUNCTION宏的动态委托函数的新检查。生成哈希函数操作现在以 Unreal Engine 风格生成代码。
支持 HLSL模板。
带有
[[jetbrains::...]]前缀的属性,用于 优化检查。一个新的 生成析构函数 操作。
捆绑的 clang-format 和 clang-tidy 二进制文件已更新为 Clang 17。
支持
#pragma region和#pragma endregion:内嵌提示、在匹配指令之间跳转的能力,以及在 文件结构窗口中的折叠和导航。新的检查: 条件表达式可以简化、 多字符字符字面量 ,以及一组针对 C++20 模块中
export关键字错误用法的检查。
ReSharper 2023.2
C# 12 预览支持:对非记录类和结构的主构造函数支持。
用于 LINQ 表达式中间结果的交互式调试器装饰。
新的代码检查及相应的快速修复,用于报告和修复:冗余的可空指令、返回由 'using' 语句捕获的变量、返回由 'using' 捕获对象生成的任务、丢弃与名为
_的变量冲突。C# 中新的 内嵌提示 ,用于元组和解构模式的组件名称、丢弃类型名称、使用
#pragma禁用或恢复的警告描述、由块末尾的局部函数创建的隐式return或continue。改进了从
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 功能:
支持
__VA_OPT__。新的检查:模板参数从未使用,
typedef/类型别名从未使用,冗余的基类初始化器,类型为HRESULT/NTSTATUS的函数结果应被使用,通过const引用传递值参数,类模板参数推导失败。改进了编译时评估引擎,包括基于范围的
for循环的评估以及对联合的更好支持。用于 重构的上下文操作。
一个快速修复,用于从未解析的标识符创建参数。
如果您需要提取单行函数,现在不再需要选择整行,因为 提取方法重构现在会在没有活动选择的情况下提取当前行。
更改签名现在可以在插入符号位于函数签名的任何位置时调用,而不仅仅是在函数名称上。
一个新的 后缀模板允许您快速使用
const引用std::as_const或AsConst。以
/*开头的注释默认不再自动关闭为*/。 您可以通过新的 在 /* 后插入 */ 输入辅助选项启用关闭注释的自动插入。默认情况下,文件路径在 排序
#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]及其用于 语言注入和 代码补全的不同语法。
自动验证 已安装的扩展。
反编译器改进:泛型属性、接口中的
static abstract和static virtual成员、用户定义的检查运算符、无符号右移运算符。在 C++ 中的新功能:
对 C++20 模块的实验性支持。
使用 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]属性的替换模板可以应用于所需范围(文件、项目或解决方案)。
一些解决方案范围的重构可从 操作列表 (Alt+Enter )中使用: 提取方法用于选定语句; 更改签名、 转换参数、 将属性转换为方法用于成员签名; 将静态方法转换为扩展方法用于签名和第一个参数。
在 Assembly Explorer 窗口 中为 ReadyToRun 和 NGen 程序集提供专用展示功能。
暂停 JavaScript、TypeScript 和 JSON 的生产力功能的主动开发,这些功能默认被禁用。 要启用它们,请使用 ReSharper 选项 页上的相应复选框 Alt+R, O 。
在 C++ 中的新功能:
Unreal Engine 索引性能提升。
蓝图支持 :新的内嵌提示和检查。
支持 Spec 测试。
代码补全列表中的小部件元数据说明符。
改进的错误渲染:工具提示中的语法高亮和更精确的错误高亮范围。
更新了 Boost.Test 支持并修复了数据驱动测试用例的问题。
更好地处理
emplace和make样式的函数调用,包括 Unreal EngineEmplace调用。通过在 输入 中按下
/**/注释中的键创建文档存根。支持 公共包含目录 和 所有头文件都是公共的 项目属性。
捆绑的 Clang-Tidy二进制文件已更新为 Clang 14,添加了新检查。
ReSharper 2022.1
C# 11 支持:泛型属性。
支持将预处理器指令与移动的类型一起移动。 将类型移动到另一个文件的重构。
基于约定的路由支持 ASP.NET Core。
检测和自动配置 语法风格。
[MemberNotNull]和[MemberNotNullWhen]注解现在支持不使用可空引用类型的项目。改进了对 可空引用类型的支持。
平台程序集的 XML 文档注释,包括名称与 XML 文档文件名称不同的程序集(例如
System.Private.CoreLib)。反编译/元数据视图文件头中的 XML 文档。
Assembly Explorer 窗口 中的转发类型。
改进了 PDB 导航(来自符号文件的源),适用于没有序列点的类型,例如接口和枚举。
能够 探索元数据 ,包括程序集和便携式 PDB。
InspectCode 命令行工具 可以生成静态分析结果交换格式(SARIF)的检查结果。
在 C++ 中的新功能:
快速文档现在包含指向 Unreal Engine 文档的链接。
重命名重构现在会更新
U和I接口类。改进的委托函数代码生成会从签名中替换参数名称。
单元测试:
更新了 Catch2 v3 和最新版本的 GoogleTest、Boost.Test 和 doctest。
ReSharper C++ 现在更好地处理隐式构造函数调用,从而改进了以下情况的搜索和导航功能:
通过标准和 Unreal 特定函数创建智能指针,
emplace样式的容器方法,static_cast和 C 风格的强制转换表达式。
改进了使用 C++20 指定初始化器为聚合初始化生成多行样板代码。
更新了 C++20
requires表达式的格式化以及新的 文件末尾的换行符 选项。
ReSharper 2021.3
支持 Visual Studio 2022。
C# 10 支持,包括 文件范围命名空间、
CallerArgumentExpression属性和全局 using 指令的专用功能。改进了对可空引用类型的支持。
新的 检查和 快速修复 ,帮助处理带闭包的静态局部/匿名函数、简化字符串插值、将对象初始化器转换为带参数的构造函数、查找字段上的不一致锁定等。
转到符号的类型 在调试模式下导航到接口实现。
整数算术分析支持所有 C# 整数数值类型——
int、uint、byte、sbyte、short、ushort、long和ulong。[CodeTemplate]属性,帮助 报告和更新已弃用的 API。
查找用法 Alt+F7 适用于用户定义的隐式转换运算符。
重新设计的用户界面、自定义选项以及用于 复制代码引用的新快捷键 Control+Alt+Shift+C。
为 C# 格式化器提供更多可配置规则。
通过 .globalconfig 文件支持代码风格和检查配置。
改进了 继承边距标记 ,包括在 ReSharper 和 Visual Studio 标记之间切换的选项。
通过
[LanguageInjection]属性标记参数、字段和属性中的 注入语言。在插入符号下突出显示 逻辑和条件运算符。
反编译器改进:支持异步可释放、记录和记录结构。
在 C++ 中的新功能:
C++20:
代码补全可快速生成使用指定初始化器的聚合初始化样板代码。
现代化检查以采用新的标准库功能:用于从任何标准容器中删除元素的函数(
std::erase和std::erase_if)、检查关联容器中是否存在元素(std::contains)以及创建具有默认初始化的智能指针(std::make_shared_for_overwrite和std::make_unique_for_overwrite)。
参数信息工具提示显示常量表达式的评估结果。
新的检查和快速修复:lambda 声明符中的冗余参数列表,冗余的详细类型说明符,for 循环可以替换为 while 循环,包含单个类特化的命名空间定义,可能缺少关键字
throw,[[nodiscard]]不能应用于没有返回值的函数,抽象最终类被标记为final或sealed,非重写虚函数被标记为final或sealed。文件结构将具有相同限定符的符号分组在限定名称中。
更改签名允许您控制
[[nodiscard]]属性。C 支持:C11
_Generic表达式,typeofGNU 扩展。转到声明可以从
goto语句导航到相应的标签,并在非活动的预处理器块中搜索声明。在输入
///时生成 Doxygen 注释。捆绑的 Clang-Tidy二进制文件已更新为 Clang 13,添加了新检查。
ReSharper 2021.2
可空引用类型支持:
新的检查、快速修复和上下文操作,例如冗余的可空警告抑制。
改进了对
[NotNullIfNotNull("param")]属性中参数名称的支持。改进了对泛型的支持。
一个新的重构,用于更改可空性。
一个新的操作,用于从文件/项目/解决方案中的抑制表达式中查找可空警告抑制。
源生成器支持
新的检查、快速修复和上下文操作。 例如,建议将
new EventArgs()替换为EventArgs.Empty。在 .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 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()括号前后和内部的空格。赋值运算符前的换行。
标签语句中的缩进。
单元测试的改进。
JavaScript 和 TypeScript 测试的性能改进以及对 QUnit 2.14.0 版本的支持。
支持使用 Visual Studio 测试适配器扩展性的自定义测试框架。
在 Visual Studio 2019 的通用 Windows 平台项目中支持 MSTest。
对生成的进程有更好的控制。
针对 NUnit 中
AutoFixture库的代码检查。
在 文件布局模式中,新的约束
Body允许区分块体和表达式体成员。复制 FQN还允许复制 GitHub 链接。
在 C++ 中的新功能:
ReSharper 2020.3
C# 9 支持:
顶级语句。
本地整数。
目标类型条件表达式。
静态 lambda。
DynamicallyAccessedMembersAttribute支持。仅初始化的设置器。
with 表达式和记录。
局部函数上的属性。
支持 lambda 丢弃参数。
源生成器。
目标类型
new。协变返回。
扩展的部分方法
扩展
GetEnumerator初步支持函数指针类型
在 转到文本 中进行模糊搜索。
嵌入提示 的改进:推送到提示、类型转换提示、针对 XAML 提示的更好启发式和上下文菜单、更改字体大小的能力、重新设计的设置页面。
能够通过 标签页 跳出闭括号和引号。
新的 C# 语法风格: 'new()' 对比 'new T()' 和 default' 对比 'default(T)'。
支持 Avalonia 框架。
单元测试:直接从编辑器中使用选定的目标框架运行测试。
标识符工具提示中的语法着色。
CleanupCode 命令行工具 控制台工具现在可以在指定的文件或文件夹集上运行,而无需指向解决方案文件。
支持私有 Source Link。
反编译器改进:静态局部函数、顶级语句、局部函数上的属性、结构上的只读实例成员。
IL 查看器窗口 :同步和上下文高亮的改进。
Assembly Explorer 窗口 :顶级入口点项(展示、双击/上下文菜单导航、属性)。
TypeScript 支持:空合并和可选链式调用
在 C++ 中的新功能:
Unreal Engine 属性的实时跟踪
针对 HLSL的控制流分析
重新生成项目文件的新提醒
Unreal Engine 编码标准 :默认 4 个字符的制表符大小,
MoveTemp用于转换为右值引用
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
能够在保存时 自动重新格式化代码并运行代码清理 ,以及 适用于最近修改或打开的文件。
您可以通过按 Alt+F7 (查找符号的用法)、 Control+Alt+F7 (转到符号的用法 )或 Shift+Alt+F7 (查找相关实体的用法 )快速定位 解决方案和引用的程序集 中任何符号的用法,结果列表包括 全局搜索/转到类型、 转到符号 和 转到文件成员。
查看定义视图中的新功能:查看实现( Ctrl+Alt +中键单击或 Control+Alt+Q )、查看基符号(Shift+Alt+Q )、查看用法( Ctrl +中键单击)。
ReSharper 命令行工具可以作为 .NET Core 全局工具安装和使用。
[RegexPatternAttribute] 之前仅为标记的参数启用了 正则表达式辅助 ,现在也适用于字段和属性。
改进的 Blazor 支持
单元测试的改进:
新的统一测试运行器,支持 .NET 和 .NETCore
支持 MSFakes,适用于 NUnit、XUnit 和 MSTest 的 .NET 和 .NETCore 测试(仅限 Windows)
支持 TypeMock,适用于 NUnit、XUnit 和 MSTest v2
能够从编辑器中的测试 导航到其所在的测试会话。
反编译器:支持表达式体成员、throw 表达式、默认参数和命名参数。
反编译器:
NullablePublicOnlyAttribute支持。在 C++ 中的新功能:
引入了对 Unreal Engine 项目模型的支持,使 ReSharper C++ 能更好地理解不同的解决方案配置以及插件和模块引用。
引擎源代码中的符号现在被视为库符号,默认情况下在搜索结果中隐藏。
根据 Unreal Engine 编码标准,对检查严重性、代码生成操作、文档模板和 include 指令的自动导入进行了多项更新。
如果项目文件过期,提醒在 Unreal 编辑器中刷新 Visual Studio 项目。
捆绑的字典补充了常见游戏缩写和首字母缩略词列表。
转到声明适用于未解析的标识符。
突出显示插入符号下元素的用法。
突出显示预处理器指令中的拼写错误。
文件结构 :预处理器指令现在默认隐藏。
新的检查:可以使用结构化绑定,不能在本机类型上使用
gcnew,不能在托管类型上使用new,final说明符不能用于托管类,重写函数没有virtual说明符,可能需要重新生成项目文件。Clang-tidy 快速修复的简要预览。
改进了对类类型值在
constexpr函数评估中的支持。代码补全 :当需要
std::function参数时,新的补全项可以插入自动生成的 lambda 参数。 如果类未包含在当前文件中,导入补全将建议添加前向声明的新选项。新的设置:对齐的 ?: 运算符缩进,在多行 // 注释中按 Enter 插入 //,仅将带引号的 include 视为潜在的主头文件。
新的 文件模板 :源文件和头文件。
ReSharper/ReSharper C++ 2020.1
可空引用类型支持:
新的检查和快速修复,用于检测并使用异步方法重载(如果可用)而不是同步方法。
可配置的代码风格,用于 尾随逗号 ,适用于具有多个项和类似结构(对象、数组和集合初始化器,以及枚举和 switch 表达式)的声明。
转到声明 与中键配合使用。
您可以通过在 转到文件 列表中选定的结果上按 Ctrl+Enter 来定位解决方案资源管理器中的文件。
本地化管理器的改进:能够编辑、导出和导入注释,以及若干用户体验和性能修复。
反编译器:改进了元组组件名称的支持。
反编译器:可空引用类型(在声明中,而非方法体中)。
反编译器:默认接口成员。
反编译器:针对自动实现属性和类似字段事件的字段定向属性。
IL 查看器:支持接口实现和泛型参数约束中的自定义属性(例如,编译器可以将
NullableAttribute和TupleElementNamesAttribute应用于这些实体)。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,新增检查和诊断
转到声明适用于注释中的符号名称
文件结构的改进:图标现在有类成员可访问性和虚拟/静态/纯说明符的指示器,类成员的新继承图标(当函数重写/实现/隐藏基函数时显示)
用于 文档操作的专用快捷键 Control+/
重命名 UE4 头文件时也会重命名相应的
*.generated.h #include重命名 UE4 类型时也会重命名相应的头文件和源文件(带有
A、F、E前缀)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 引用,并可在整个解决方案中运行。 此外,查找结果中的依赖代码有新的过滤器。
元组、解构和丢弃的反编译。
新的 代码检查和 快速修复。 其中包括针对 NUnit 测试的内容。 “类型或成员从未使用”被拆分为两个单独的检查——针对类型和针对成员。
单元测试资源管理器窗口 和 单元测试会话窗口 中的新的分组和过滤选项。
语法高亮 中不同类型标识符的更多颜色。
针对 使用 'var' 与显式类型的代码风格的更详细配置。
ReSharper 命令行工具 可以在 Linux 和 macOS 上运行。
ReSharper C++ 2019.3 的新功能:
C++20:初步支持 C++20 概念, ADL 和不可见的函数模板, 从括号括起的值列表初始化聚合。
Clang-tidy 集成的改进:
捆绑的 clang-tidy 二进制文件已更新至版本 9,新增了许多检查。 此外,它不再阻止对源文件的修改。
现在可以从检查菜单中禁用 Clang 警告。
新增设置以使用特定的 clang-tidy 配置文件(而不是指定配置为字符串的设置)。
格式化器改进:将格式化选项导出到 .clang-format 文件,选项包括在抽象声明中
ptr和ref之前的空格。得益于代码高亮引擎的一些改进,现在重新高亮的速度更快(在函数体更改后,仅重新分析函数体本身)。
新的快速修复,帮助将变量添加到 lambda 捕获列表。
若干 实时模板已重命名以匹配相应的关键字(例如,
cls重命名为class,str重命名为struct)。转到文件成员的若干更新:对话框现在即时显示,而无需等待文件完全分析;如果文件同时包含函数的声明和定义,则对话框中仅显示一次该函数。
现在可以从括号封闭的初始化列表的起始括号导航到聚合类。
新增设置以在
%PATH%中找到要使用的 clang-tidy 可执行文件。内嵌提示的改进:自动变量、结构化绑定、函数和 lambda 返回类型的类型名称提示。 在依赖代码中,类型名称提示默认被禁用。
ReSharper/ReSharper C++ 2019.2
改进了对 C# 8 的支持,包括:索引和范围的最新更改,例如可索引和可范围的类型,以及非托管泛型结构。
转到文件成员 现在还会在当前文档中搜索文本匹配项。
能够在 转到文本 的搜索结果中过滤掉注释中的出现项。
解决方案模型直接从 项目/解决方案文件中读取。
IL 查看器窗口中的带关键字描述的工具提示。
Assembly Explorer 窗口 中的 Win32 资源子树。
ReSharper C++ 2019.2 的新功能:
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.*andWindows.*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 选项页面( ),设置以利用用户提供的 clang-tidy 二进制文件。
ReSharper/ReSharper C++ 2018.3
支持 VB.NET 15.3 和 15.5 功能:命名元组推断、前导十六进制/二进制/八进制分隔符、非尾随命名参数。
引入参数重构 现在也适用于局部函数。
外部注解 可以存储在 VCS 下,在解决方案或项目文件旁边的 外部注解 文件夹中。
能够通过 转到操作 Control+Shift+A 打开选项页面。
配置 转到声明的使用感知行为的选项。
集成反编译器的改进:局部函数反编译;模式匹配反编译:const 模式、类型模式、case 子句中的类型模式(支持谓词和丢弃)。
本地化协助 在 ASP.NET Core 应用程序中的支持。
针对 InspectCode 命令行工具 命令行工具的多线程模式。
TypeScript 3.0 语法支持:未知类型(仅解析)、元组类型中的可选元素、元组类型中的剩余元素、带元组类型的剩余参数、带元组类型的扩展表达式(无解析)、泛型剩余参数。
ReSharper C++ 2018.3 的新功能:
预定义的 命名风格方案(STL、Google、LLVM、CamelCase、Microsoft)。
性能改进:改进了索引期间的内存流量,多线程缓存加载。
导航改进: 转到声明 在非依赖
decltype说明符和 lambda 上更精确,甚至可以在初始索引期间使用它。重构改进: 更改签名重构 提供选项以使函数
constexpr/const/noexcept并更改 ref 限定符。代码分析改进:模板代码中的 错误诊断显著改进,提供有关失败的
enable_if条件、decltype中的格式错误表达式以及缺失的内部类型的额外信息。新的 上下文操作 ,用于生成将枚举转换为字符串的函数,将函数声明中的常规返回类型转换为尾随返回类型,反之亦然,还可以插入使用类模板参数推导推导出的模板参数。
代码生成改进: 生成 Getter/Setter可以创建 C++/CLI 属性, 生成重写成员可以重写 CLR 属性。
针对 Unreal Engine 项目:推迟引擎本身的后台索引以改进初始索引性能,并更好地处理反射宏。
在 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
支持 C# 7.3,包括 初始化器和查询中的声明表达式、 元组相等性、 引用赋值、 stackalloc中的数组初始化器、 基于模式的“固定”语句、 可移动固定缓冲区的索引;
unmanaged、System.Delegate和System.Enum约束。集成的 拼写检查引擎。
重新设计了大多数 重构的用户体验。
一个选项,用于为 ReSharper Build跳过的项目启用 BeforeBuild/AfterBuild 目标和预构建/后构建事件。
您可以在 ReSharper 选项 页上指定忽略的文件掩码 Alt+R, O 。
随处搜索现在可以成功解析从 dotTrace或 Visual Studio 的调用堆栈窗口复制并粘贴的函数签名以进行进一步搜索。
格式化器改进:选项包括不在命名空间内缩进、
enum排列的选项、“单行最大元素”选项用于方法签名、方法调用和初始化器。受 StyleCop 规则影响的设置显示在 文件格式信息窗口中。
与 JSlint、ESLint 和 TSLint 的集成改进了编辑器中 JavaScript 和 TypeScript 代码的设计时验证。
为成员访问以及局部变量、成员和参数提供单独的 内置类型引用样式。
ReSharper C++ 2018.2 的新功能:
改进了 C++17,包括折叠表达式、自动非类型模板参数、using 声明中的包扩展、带多个声明符的 using 声明、保证的副本省略、类模板参数推导、带基类的聚合、
std::is_aggregate类型特性、预处理器条件中的__has_include。初步支持即将到来的 C++20,包括协程、指定初始化、功能测试宏、位域的默认成员初始化器。
大小和对齐计算考虑了位域大小、
alignas说明符和__decltype(align)属性。改进了 语法高亮——为静态类字段和成员函数提供了新的颜色设置。
Boost.Test 单元测试中支持预期失败规范。
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 最强大的搜索操作,之前称为 转到所有内容)。EditorConfig 属性 ,用于 代码语法样式和 代码检查严重性级别。
初步支持 StyleCop。
输入辅助改进:如果您在行注释中间按下 输入 ,ReSharper 会在新行文本前自动添加两个斜杠
//,以避免生成不可编译的文本。支持 NUnit 3.10.1。
ReSharper C++ 2018.1 的新功能(扩展版本也可在 专用博客文章中找到):
Clang-Tidy 集成 更新:捆绑的 Clang-Tidy 已更新至版本 6.0,扩展了 可用检查列表 ,并且现在可以通过注释 抑制特定的 Clang-Tidy 检查。
现在支持 #include_next预处理器指令,以更好地兼容实现此 GNU 扩展的编译器。
C++ 文件中的输入辅助在 输入 时会自动删除尾随空格,以保持代码清洁,无冗余空格。
如果您选择一个表达式并打开 快速文档窗口 ,该窗口会显示有关所选表达式的各种信息,例如其类型、值和值类别。
ReSharper/ReSharper C++ 2017.3
C#、VB.NET 和 C++ 中的调试辅助功能: 内联值、 可搜索的 DataTips和 断点导航。
性能指南( )——一个选项页面,帮助您检查并快速修复影响性能的 ReSharper 和 Visual Studio 首选项。
新的格式化器功能:
通过注释 或 EditorConfig 文件启用/禁用格式化器或更改格式化器设置。
能够 使用不同的换行样式重新格式化代码 (换行或截断长行、紧凑地重新格式化选择等)。
一个选项,用于将相似的代码对齐在列中。
选项包括在复杂语句之前或之后插入空行;取消缩进二元运算符、点和逗号;选择嵌套三元表达式样式;以及更多。
生成解构器操作和 C# 7 元组的导航功能。
改进的 提取方法重构 现在可以提取局部函数、在提取的方法中返回值元组、处理表达式体成员等。
新的输入辅助: 在 Enter 上的多行块注释 、C# 中的链式方法调用。
改进的待办事项现在可以 链接到外部 URL。
能够 从调用跟踪结果中隐藏条目。
内置反编译器可以从本地 NuGet 包缓存 加载程序集 ,并以可读的 XML 文件 显示程序集 PDB 内容。
ReSharper C++ 2017.3 的新功能(扩展版本也可在 专用博客文章中找到):
近千个新的 Clang 代码检查: 611 个 Clang 诊断、 78 个 Clang 静态分析器检查和 202 个 Clang-Tidy 检查。
新的快速修复和上下文操作。
代码分析:自动函数和 lambda 的返回类型推导、改进了对显式模板实例化的支持、支持 原生 C++ 事件处理 MS 扩展。
C++17 功能支持:结构化绑定声明、内联变量、
constexprlambda。Catch2支持(Catch 单元测试框架的新版本)。
ReSharper/ReSharper C++ 2017.2
支持 Visual Studio 2017 15.3 中的 .NET Core 2.0 项目。
通过名称 导航的命令可以处理 CamelCased 标识符中的单词顺序错误以及拼写错误。 它们还支持在引号内进行精确匹配查询。
C# 7.1 支持:推断的值元组组件名称、默认字面量、异步 Main。
转到附近文件——一个新的导航命令。
新的输入辅助功能: 添加 NotNull/CanBeNull 注解和 将表达式体成员转换为块体成员。
一个新选项,用于在 实现接口时使仅有 get 的属性可变。
一个新选项,用于在 生成类型构造函数时使参数可选。
新的选项页面( ),允许您自定义 为异常和断言生成空检查例程。
XML 在 语言注入中受支持。
快速文档 Control+Q 以及对范围 NPM 包的补全现在可用于项目配置文件( project.json 、 package.json 和 bower.json )。
内置反编译器的改进:能够检索程序集的原始源代码,该源代码通过 便携式 PDB使用 Source Link引用;如果任何 导航和搜索命令在单个方法中产生多个匹配项,ReSharper 现在会在搜索结果中显示所有匹配项。
交互式教程( ),帮助您开始使用 ReSharper 的功能或快速掌握新版本中的功能。
改进的 TypeScript/JavaScript 支持,包括:
ReSharper C++ 2017.2 的新功能(扩展版本也可在 专用博客文章中找到):
ReSharper/ReSharper C++ 2017.1
完全支持 Visual Studio 2017。
一个新选项,帮助通过完全忽略选定项目来提高大型解决方案的性能,可在 ReSharper 选项 页 Alt+R, O 中配置。
查找结果 窗口的改进:按用法类型分组(适用于 C# 和 C++),改进的过滤器,使用引号进行精确匹配搜索的可能性,找到的用法中的错误高亮。
一个选项,用于在预览选项卡中打开每个新文件 导航到的文件,可在 ReSharper 选项 页 Alt+R, O 中配置。
格式化规则的上下文配置现在可用于 C#。
使用 ReSharper 格式化首选项 自动格式化粘贴的代码。
其他格式化器改进:在重新格式化代码时 自动检测缩进 ,支持逗号优先样式,C# 中单个
case语句的换行选项,HTML、CSS 或 XML 文件末尾添加换行符的选项。用于 简单类型成员体的代码风格。
状态指示器上的上下文菜单 ,提供快速访问 代码检查的多个选项和命令。
重新设计的 代码清理 用户体验,现在可以直接在代码清理对话框中创建和编辑自定义清理配置文件。
单元测试辅助 在基于 .csproj 的项目中支持 Visual Studio 2017(需要 2017 年 3 月 28 日或更高版本的 Visual Studio 2017 更新)。
改进的 TypeScript/JavaScript 支持,包括:
ReSharper C++ 2017.1 的新功能(扩展版本也可在 专用博客文章中找到):
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 包还原器。
外部堆栈跟踪可以自动在 堆栈跟踪资源管理器 窗口中打开。
项目配置文件中的包名称动态补全( project.json 、 package.json 和 bower.json )。
单元测试支持现已适用于 ASP.NET Core 和 .NET Core 项目中的 NUnit 和 xUnit.net 单元测试。
xUnit.net 测试的显著性能改进。
支持 UWP RelativePanel 控件。
格式化器改进:嵌套
for、foreach、while、lock语句的缩进(无大括号)默认禁用,并提供选项恢复旧行为;用于缩进类型参数约束的新选项;修复了 2016.2 中由新缩进引擎引入的错误。重新设计了编辑器中 待办事项的着色。
改进的 TypeScript/JavaScript 支持,包括:
TypeScript 2.0.2(“2.0 RC”):布尔、数字和枚举字面量类型。
TypeScript 中的 转到实现。
TypeScript 中的 封装字段重构。
“用类型保护包围”快速修复。
JavaScript 和 TypeScript 中的 使用 Tab 和 Shift+Tab 进行结构导航。
性能改进。
ReSharper C++ 2016.3 的新功能:
单元测试支持现已适用于 C++ 测试框架 Catch 和 Boost 1.62。 单元测试也会自动更新外部更改的文件。
C++ 代码分析在 InspectCode 命令行工具 中。
语法高亮工具提示适用于 C++ 代码元素。 工具提示显示方法和字段签名,以及格式化的 Doxygen 和 C# 风格的 XML 注释。
支持 C++17 中引入的 嵌套命名空间定义。
C++ 格式化器的新选项:“强制转换表达式中括号内的空格”和“将枚举值放在新行上”。
从 Linux Makefile 项目中读取属性。
内存使用优化。
ReSharper/ReSharper C++ 2016.2
支持 ASP.NET Core 1.0 和 .NET Core 1.0 项目。
转到文本。
解决方案范围分析 中的警告。
新的 C# 输入辅助功能: 括号内的点/分号和 逐字字符串插值前缀的自动更正。
能够 将引用标记为运行时使用 ,以将其排除在 优化引用和 移除未使用的引用 功能执行的清理之外。
重新排列代码的改进。 例如,现在可用于插值字符串插入以及具有 3 个或更多操作数的表达式;贪婪大括号现在适用于开括号、类型和命名空间声明的大括号。
重新设计的 环绕模板 :每个非文件模板现在都可以用于生成代码、环绕代码或两者兼而有之,这使您可以将自定义环绕模板重用为实时模板,反之亦然,从而减少其总数。
将类型移动到另一个文件的重构 现在可以应用于嵌套类型。
能够通过注释抑制 自定义代码检查 :在 编辑高亮模式对话框中指定“抑制键”,然后使用类似
// ReSharper disable once [SuppressionKey]的注释。在 .cs、.js 和 .ts 文件的字符串文字中进行 HTML 分析,可以通过上下文操作或字符串文字前的注释
/*language=html*/启用。能够通过字符串文字前的注释
/*language=regexp*/启用字符串文字中的 正则表达式辅助。支持 XML 文档注释中的
<inheritdoc/>标签。C# 格式化器改进:括号及其内部代码的缩进新选项;控制
++和--运算符前后以及checked和default表达式括号前后的空格。IL 查看器窗口的改进:当您将插入符号放在代码符号或指令上时,该项的所有用法都会被高亮;代码中的循环可以通过相应的缩进和注释区分。
能够 从当前运行的进程中探索程序集。
本地化检查和快速修复 以及 移动到资源重构现在适用于插值字符串。
VB.NET:支持插值字符串。
CSS:支持自定义属性和 CSS 变量。
改进的 TypeScript/JavaScript 支持,包括:
ReSharper C++ 2016.2 的新功能(扩展版本也可在 专用博客文章中找到):
C++14 语言功能:变量模板和
decltype(auto)。关于使用带有
[[deprecated]]/__declspec(deprecated)属性的类和函数的警告。在控制流分析中支持
[[noreturn]]/__declspec(noreturn)属性。生成代码中 include 指令的新代码风格偏好。
“内联变量”重构 现在在 C++ 中可用。
代码分析的重要优化。 例如,此优化使 Unreal Engine 项目的索引(首次打开)速度提高了数倍。
自动完成 现在在 C++ 中也建议当前文件中未包含的符号。
新的代码检查和快速修复:头文件中缺少 include 保护的“添加
#pragma once指令”修复;“非显式转换运算符”;检查和修复以向switch语句添加缺失的default情况。文档上下文操作允许您快速向类型和符号添加文档注释。
当您的插入符号位于函数的一个出口(
return、throw等)上时,ReSharper 会自动高亮所有其他函数出口,包括循环和switch语句的出口。用于在默认指针初始化器中使用
0|nullptr|NULL的 代码风格偏好。新的格式化选项:单行函数和 lambda,单行函数定义周围的空行,成员初始化列表之前的换行,模板参数中闭合尖括号之间的空格(符合 C++11 之前的编译器)。
__RESHARPER__ 宏允许您检测 ReSharper 何时解析您的源代码,并在必要时禁用 ReSharper 的某些代码的预处理器。
ReSharper/ReSharper C++ 2016.1
反转布尔值重构 帮助您快速修改布尔成员,使其具有相反的含义。
智能粘贴 帮助您自动转义代码中复制/粘贴文本中的非法字符。
两个新的代码风格功能: 单行语句周围的大括号和 使用命名/位置参数。
一个专用命令,用于 在选定范围内重新格式化代码 - Control+Alt+L ()。 以前,您可以通过调用 代码清理并使用“内置:重新格式化代码”配置文件来完成相同的操作。
一个专用命令,用于 在选定范围内应用代码风格 - Control+Alt+S ()。 以前,您可以通过调用启用代码风格任务的自定义配置文件的 代码清理来完成相同的操作。
能够更改 参数信息工具提示显示在插入符号上方或下方的偏好。
能够 将调试器附加到正在执行的运行配置。
从剪贴板历史粘贴项目现在可以在不打开模态对话框的情况下完成。
支持 VB 14 中的 新语言功能。
初步支持 JSON 文件和模式。
初步支持 Node.js。
改进的 TypeScript/JavaScript 支持,包括:
新的 格式化设置 ,允许您以更细粒度的方式定义换行和换行规则。
初步支持实验性的 JavaScript 语法结构,这些结构预计将成为 ECMAScript 7 的一部分(理解、装饰器、类属性、指数运算符、对象字面量的剩余和扩展属性)。
新的 TypeScript 特定功能:
完全支持 TypeScript 1.7 功能。
完全支持 TypeScript 1.8,包括字符串字面量类型。
解析
var、let和const关键字后面的类型。重命名重构 现在可以重命名与 TypeScript 类型对应的文件。
ReSharper C++ 2016.1 的新功能:
支持 C++ 文件中的 待办事项。
重命名重构 现在可以重命名 C++ 文件。
支持的 C++ 语言功能列表扩展为包括泛化的 lambda 捕获(C++14)、异常规范、用户定义的字面量和委托构造函数。
在 单元测试运行器中支持 Boost.Test 框架。 请注意(截至 ReSharper Ultimate 2016.1.1),仅支持 Boost 版本 1.59 和 1.60。
代码生成改进: 生成流操作操作现在可以为 Boost 序列化函数生成存根:
save()、load()和serialize()。 此外,生成代码时现在会考虑 格式化选项。所有 ReSharper C++ 操作现在都禁止更改库头文件。
ReSharper/ReSharper C++ 10.0
后缀模板 和 完成列表中的其他新项目将帮助您在不向后跳转的情况下转换已键入的表达式。
能够使用 ReSharper Build通过多个并行进程增量构建您的解决方案。
能够直接从编辑器更改 代码风格偏好。
可选括号的代码风格 ,帮助您消除冗余括号和/或自动添加括号以明确操作优先级。
转到声明命令的使用感知行为(Control+B 或 Ctrl -单击)。
更新的 堆栈跟踪资源管理器 窗口显示类型为可点击的超链接,允许换行长行,并解析更多类型的数据,包括 WinDbg GCRoot 转储和 Visual Studio 的 调用堆栈 工具窗口内容。
JavaScript 支持的改进:.jsx 和 .js 文件中的 JSX,普通字符串和相关方法中的 正则表达式辅助, JSDoc 类型的编码辅助功能。
完全支持 TypeScript 1.6,包括交集类型、联合类型和 TSX 文件。
支持 NUnit 3.0 Beta 4。
ReSharper C++ 10.0 的新功能
C++ 支持改进,包括
char16_t和char32_t内置类型、浮点类型的编译时表达式。减少准备工作的时间(适用于已缓存的解决方案)。
ReSharper 9.2/ReSharper C++ 1.1
ReSharper 9.1
ReSharper 9.0
支持 Visual Studio 2015 CTP
C# 6.0 支持 ,包括条件访问表达式、表达式体成员、带初始化表达式的自动属性等。
C++ 支持在专用产品 ReSharper C++中,该产品也作为 ReSharper Ultimate的一部分提供。
正则表达式辅助 ,包括语法和错误高亮、补全功能、快速修复等。
在 TypeScript 支持方面的重大改进,包括但不限于:
可配置的 TypeScript 语言级别,最高支持 1.3。
新的代码检查,包括约 300 个编译器错误检查和依赖于项目属性的检查,以及约 100 个新的快速修复。 更多信息请参阅 TypeScript 中的代码检查和快速修复。
导入缺失命名空间弹出窗口。
代码生成操作 (生成缺失/重写成员,生成构造函数)。
代码补全的性能改进和新功能。 您现在可以 对补全建议应用过滤器 ,根据解决方案中的现有模式完成调用链等。
代码风格辅助改进:一些新的代码风格偏好,具有代码检查和代码清理的通用配置。 更多信息请参阅 代码样式和清理。
使用 JetBrains 账户 输入许可证信息。
能够使用
SuppressMessage属性在特定类型或方法中 抑制部分或全部代码检查。在范围内修复 功能支持更多快速修复。 现在,全局修复适用于命名规则、代码冗余等。
类似于“范围内修复”,某些上下文操作也可以 应用于更广的范围。
转到操作功能允许您通过几个按键找到并执行任何 ReSharper 命令。
导航到:公开 API 操作允许查找返回特定类型的所有方法。
在 随处搜索中的最近查看方法和性能改进。
一个新的可视化编辑器极大地简化了 文件和类型布局模式的理解和编辑。
支持 JavaScript 单元测试的自定义 HTML 框架。
在 ReSharper 选项 对话框中搜索首选项。
能够在 ReSharper 选项的 页面上切换语言和功能集的支持。
能够 查看和配置代码格式化规则 ,这些规则适用于选定的代码块(支持 JavaScript、TypeScript 和 C++)。
ReSharper 8.2
错误修复和性能改进
改进了 TypeScript 支持
单元测试运行器对 Jasmine 2.0 的支持
ReSharper 8.1
支持 Visual Studio 2013
增强了对 查看定义的支持
ReSharper 8.0
ReSharper 7.1
提取类重构现在可用于 VB.NET
支持 更改签名重构 中的命名参数
XAML 支持的改进
在 单元测试会话窗口 和 单元测试资源管理器窗口 中的快速单元测试搜索。
ReSharper 7.0
支持 Visual Studio 2012:
支持 颜色主题
异步解决方案加载
支持 Metro 风格应用开发和 WinRT
支持导航和搜索功能中的预览选项卡
自定义契约注解属性
更多选项以控制代码补全行为
单元测试改进:
支持 NUnit 2.6 和 MSTest 11
快速修复组
转换输出参数重构
ReSharper 6.1
ReSharper 6.0
ReSharper 5.0
为 Web 开发提供的广泛功能包:
导航和 生成操作中的母版页支持。
ASP.NET 标记文件中的 文件结构和转到文件成员。
ASP.NET 页面的 实时、环绕和文件模板 ,包括母版页
ASP.NET MVC 支持包 ,包括:
特殊语法高亮,包括未知项的高亮。
专用代码补全。
导航到操作或控制器以及从中导航。
从页面中的用法创建新操作和控制器。
项目维护和团队协作功能包:
项目级别的重构,包括 移动到文件夹、 将类型移动到匹配的文件和 调整命名空间 ,以及更新的 安全删除。
项目层次结构视图。
支持 Visual Studio 2010,包括 C# 4 和 VB10。
代码分析增强:
调用跟踪。
值跟踪。
代码检查和快速修复,用于 从循环升级到 LINQ。
代码检查和快速修复,用于 尽可能使用 IEnumerable。
检查结果窗口。
新的和改进的代码检查。
其他增强功能:
枚举成员的自动补全。
本地范围内未解析符号的补全。
代码书签。
原生 NUnit 支持。
XML 格式化。
ReSharper 4.5
ReSharper 4.1
支持 Microsoft Visual Studio 2008 SP1。
ASP.NET 增强功能。
改进的性能和可用性。
错误修复。
ReSharper 4.0
全面支持 Visual Studio 2008 和 C# 3.0,包括 LINQ、隐式类型局部变量和数组、扩展方法、自动属性、lambda 表达式、对象和集合初始化器、匿名类型、表达式树和部分方法。
错误、警告和建议通过 提示补充,这是推荐代码改进的最非侵入性方式。
.NET Framework 类被 用自定义属性注解 ,以使 ReSharper 能够更好地分析您的代码——例如,让它知道 格式字符串应该传递到哪里,或者 空值可以或不可以分配到哪里。 您还可以使用这些自定义属性为您自己的源代码以及您没有源代码的库符号添加注解。
代码清理——Reformat Code 的强大继任者。 通过运行代码清理,您可以立即应用十几种操作,包括排列 'this' 限定符、删除代码冗余、迁移到自动属性、优化 using 指令等。
所有 ReSharper 的 重构现在支持 C# 3.0。 重构系列的新成员现已可用,包括 将方法转换为索引器的重构、 将索引器转换为方法的重构、 将静态方法转换为扩展方法的重构、 将扩展方法转换为普通静态方法的重构、 将属性转换为自动属性的重构、 将匿名类型转换为命名类型的重构 和 “内联方法”重构。 所有非 C# 3.0 特定的重构现在可用于 Visual Basic 8。
完成语句——一个新功能,插入必要的语法元素(大括号、分号等),并将您定位到开始下一个语句的位置。
CamelHumps 在 代码补全中。 所有三种补全功能——基本补全、 类型匹配补全和 导入符号补全——允许您仅通过输入大写字符来完成任何符号。
模板资源管理器和 模板编辑器——重新设计的一组工具,用于查看、管理和编辑 ReSharper 提供的三种类型的模板。 从现在起,您可以在一个专用窗口中管理和分类您的模板,并直接在 Visual Studio 代码窗格中编辑它们。
最近编辑——一个类似于现有转到功能的下拉列表,显示您最近修改的文件和符号。
待办事项现在可以在标识符和字符串中发现。
文件结构、 转到文件成员和 转到下一个/上一个成员都支持 XML 和 XAML。
快速文档的重大改进,包括指向相关项目的超链接、前进/后退导航、“阅读更多”链接和导航到源代码。
与 Visual Studio 生态系统的更顺畅交互。 与框架、插件、版本控制客户端和 Visual Studio 生态系统的其他成员(包括 .NET Compact Framework、BizTalk 和 Silverlight)的交互质量提升到新水平。
ASP.NET 加速。 ReSharper 4.0 显著加快了 ASP.NET 页面分析和编辑的速度,使更多的 Web 开发人员能够从 ReSharper 提供的强大工具集中受益。
ReSharper 3.1
支持 基于 Web 的许可证服务器。
错误修复。
ReSharper 3.0
全面支持 VB.NET:多功能的编码辅助、代码补全、许多重要的代码重构、代码生成、实时模板等。
全面的 C# 代码分析,提供超越仅关注错误的代码建议,并提出优化的代码用法。
跨语言功能:对于混合 C# 和 VB.NET 项目,ReSharper 帮助您使所有代码部分协同工作,并轻松导航您的代码。
ReSharper 的三种 版本 (C#、VB.NET 和完整版本),适用于不同的目标受众。
待办事项列表 :通过某些模式创建待办事项并在它们之间导航。
类型成员预览 :您现在可以预览所选类型的现有成员,无论是全部还是仅多态成员。
自动成员重新排序:在 选项 对话框中定义成员的顺序。
能够 查找依赖于特定模块的代码以及 查找作用域外符号的用法。
转到符号 ,用于按名称对任何文件成员进行解决方案范围的强大搜索。
在特定位置禁用警告 :配置“禁用警告”上下文操作并在必要时应用。
单元测试资源管理器窗口 :在运行和调试单元测试时提供无与伦比的灵活性。
支持 XML 和 XAML。