ReSharper 新功能

ReSharper 2017.1 为 Visual Studio 2017 RTM 提供最佳支持,其中包括全新的 C# 7 检查和快速修复,对于 VS2017 中 .NET 内核单元测试的支持,以及大量代码格式化改善,包括首次对 EditorConfig 的支持。做出的变更包括更新了导航和搜索,全面支持 TypeScript 2.1,以及首次支持 TypeScript 2.2 和 Angular 2。

ReSharper 2017.1

Switching switching a file's target framework context

Visual Studio 2017 RTM 支持

现在完全支持 Visual Studio 2017 的新功能,帮助您处理以轻量模式加载的解决方案。在您使用“Open Folder”(打开文件夹)选项时,ReSharper 能查看该文件夹中的所有文件,并支持 .xml 和 .js 文件类型。Move to Folder(移至文件夹) 重构适用于这个模式。

ReSharper 准许当前目标框架的上下文。可由编辑器窗口顶部的下拉菜单对此进行设置,而且可以更改设置(例如引用组件)、以及在版本构建和预处理器中定义的符号。

Convert to local function

C# 7 支持

ReSharper 提供大量新的检查来符合 C# 7 编译器。例如,在覆盖一种方式或实施接口时,它能检测元组变量名中的输入错误。

ReSharper 通过使用新的快速修复 Convert a read-only delegate variable into a local function(将只读的代理变量转换成本地函数)来支持本地函数,此外还新增两个上下文操作:

  • 将 lambda 表达式或匿名方式转换成本地函数
  • 将本地函数转换成常规方式

Join null check with assignment(通过分配加入空值检查)这个快速修复通过整合分配、空值合并操作符和抛出(throw)来使代码拥有更出色的可读性。现有的上下文操作 Convert to '?:' operator(转换成 '?:' 操作符).throw 后缀模板也支持 C# 7 的抛出表达式。

Run unit tests in all target frameworks

Unit单元测试

ReSharper 的单元测试适用于 Visual Studio 2017 RTM 中基于 project.json- 和 .csproj 的项目。它发现和运行 MSTest 与 xUnit 测试,并支持代码覆盖率和分析,以及多个框架。此外,它还支持针对 .NET 4x 框架的 NUnit 测试,并提供针对 MSTest v2 的 DataRow 支持。

注意:ReSharper 现在不支持针对 .NET Core 单元测试的持续测试。该问题将在下一次更新时解决。

File Formatting Info

EditorConfig 支持

默认情况下启用 EditorConfig 支持。ReSharper 理解 standard EditorConfig properties(标准的 EditorConfig 属性), 大多数 Roslyn EditorConfig properties(Roslyn EditorConfig 属性), 并提供一套丰富的 custom EditorConfig properties(自定义 EditorConfig 属性) 来为格式化规则提供更细致的配置。这就意味着您可以在 EditorConfig 文件中保持和维护格式化规则的整个配置。

File Formatting Info(文件格式化信息) 窗口显示在所有活动的 .editorconfig 文件中定义的范围和属性。该窗口还显示缩进设置来源及其值,以及缩进自动检测的状态。

Tabs and indents settings

缩进自动检测和 code style 改善

如果您的大多数团队成员都在使用 ReSharper ,那么ReSharper 的 layered settings(分层设置) 功能是用来确保代码样式保持一致的出色工具。现在已通过针对所有支持语言的 Tabs and Indents(制表符和缩进) 设置对其进行了扩展。

在您重新格式化文件中的一部分代码时,或在编辑或粘贴期间代码被自动格式化时,ReSharper 可以基于该文件中现有的缩进来计算和应用缩进设置。当您希望处理缩进与您当前设置有所不同的现有项目时,该功能非常实用方便。

格式化规则的上下文配置适用于 С#、C++、JavaScript 和 TypeScript。请对您需要重新格式化的选定代码块按下 Alt+Enter 组合键,然后在操作列表中选择 Format Selection(格式选择) | Configure(配置) 来查看影响该代码的所有格式化规则。

Code cleanup dialog box

代码清理、新建代码样式和格式化选项

ReSharper 的 Code Cleanup(代码清理) 在实用性方面进行了改善。现在您可以直接在 Code Cleanup(代码清理) 对话框中创建和配置您针对任务定制的配置文件,只需按 Ctrl+E,C 即可。

ReSharper 对您粘贴的任何代码都应用其格式化规则。 Reindent(重新缩进) 选项仅影响默认情况下设置的缩进,您还可以在 Editor Behavior(编辑器行为) 选项页面对其进行更改。

ReSharper 为 C# 类型成员的代码块引入了新的代码样式设置,允许您选择始终使用带花括号的代码块或使用表达式格式。

最后,我们改善了 C# 代码格式化引擎,并引入了一些新的格式化选项:

  • 全新的换行引擎现在正确处理对齐
  • 支持逗号优先换行样式
  • 在“nameof”的圆括号前和圆括号内设置空格
  • 为链式二进制表达式选择首选的换行样式
  • 在单个“case”语句中可以配置换行
Grouping by type of usage and new filter options

Navigation(导航) 和 search(搜索)

Find Results(查找结果) 窗口现在有一个新选项,用于按使用类型来分组搜索结果,此外新增的过滤器帮助您选择特定使用的发生次数,并提供引号来搜索精确匹配。

ReSharper 的 Search & Navigation(搜索和导航) 页面新增一个选项,以便从任何位置通过预览选项卡来打开文件。默认情况下禁用此选项。

Go to Everything(转至一切)Go to Text(转至文本) 弹窗支持用来高级筛选搜索结果的内联命令。

Rename refactoring in Angular

Angular 2 模板语法

ReSharper 理解 Angular 2 模板语法的以下要素:模板表达式、模板语句、NgFor 指令和模板变量。已为 Angular @Component 指令中的 template: ,以及被 @ComponenttemplateUrl: 引用的纯 HTML 实施了支持。不过在 templateUrl中只支持相对路径。 对于 HTML 页面,默认情况下禁用 Angular 标记,不过可以在“ReSharper 选项” (Code Editing(代码编辑器) | HTML | Editor(编辑器))中启用此项。。

代码补全功能适用于 Angular 属性和组件标签,以及 [attr., [style.[class.。组件属性提供 Go to Declaration(转到声明) (F12)命令的支持。 Rename(重命名重构) 适用于组件标签和 [class.foo] 中的'foo'。

注意:尚不支持 Angular 1。如果在 ReSharper 选项中将 Support Angular markup in HTML pages(支持 HTML 页面中的 Angular 标记) 设置成“否”,那么您可以使用 AngularJS 插件 来实现代码补全和实时模板。

Finde usages of the object rest property

TypeScript 和 JavaScript 支持

  • 完全支持 TypeScript 2.1:映射和索引类型、对象静止(object rest)和扩展属性、更新的字面类型逻辑、配置继承、不具类型导入、组合类型规范化、部分注释签名,以及 ImplicitAny 和 ImplicitAny 阵列的控制流分析
  • 首次支持 TypeScript 2.2:“object”类型、JSX 扩展语法,并从签名/元组/交集/映射类型派生(扩展/实现)
  • 为 TypeScript ES6 样式的导入中未使用的导入提供检查和快速修复
  • JavaScript 和 TypeScript 中的 Postfix Templates(后缀模板)
  • 已改善对于 TypeScript 和 JavaScript 中代码补全项目的关联
  • Generate Code(生成代码) 菜单拥有一个新选项,为 TypeScript 类生成属性或只读属性。现在 Generate Overriding Members(生成覆盖成员) 命令在可能时调用“super”
  • TypeScript 中的Navigate to Implementing Members(导航至实施成员)
  • TypeScript 和 JavaScript 中的 Navigate to Function Exits(导航至现有函数)
  • TypeScript 中的 Rename(重命名) 重构快速处理本地符号,并提供一个新选项来为 TypeScript 禁用动态搜索
Context menu on status indicator

Code analysis 代码分析

ReSharper 的 File Status Indicator(文件状态指示器) (“错误条”顶部的小图标)提供一个新的上下文菜单。通过右键点击图标,您不仅可以快速切换 ReSharper 的代码分析,还能快速切换标识符亮显和 Visual Studio 代码分析(灯泡和波形)。如果当前文件中存在代码问题,您还将看到一些命令,用来在严重级别最高的问题之间切换。

请注意,对于大型文件,ReSharper 将自动暂停代码分析。在这种情况下,您会在状态指示器中看到一个灰色的暂停图标。

Control flow inspections for class fields

ReSharper C++ 更新 Ultimate

ReSharper C++ 2017.1 提供 Visual Studio 2017 RTM 支持,并学习处理 Open Folder(打开文件夹) 模式和 CMake 项目。一些变更还包括改进的性能,扩展的后缀模板集、代码清理任务,以及控制流程检查更新。

了解有关 ReSharper C++ 2017.1.

Command-line profiler

命令行分析器 Ultimate

dotMemory 2017.1 包含了可以从命令行进行配置的 dotMemory.exe 工具。当您需要自动化采集内存快照的流程时,该工具非常有用,例如在您想对持续集成构建进行分析这种情况。

Attach using drag and drop

通过拖放分析正在运行的应用程序Ultimate

现在您可以通过拖放,将分析器附加到正在运行的应用程序。只需将专用图标拖放至您希望分析的应用程序窗口即可。

立即下载
30天免费试用

ReSharper 2016.3

Visual Studio 2017 RC 初步支持

Visual Studio 2017 RC 初步支持

现在能够将所有 ReSharper Ultimate 2016.3 产品装入 Visual Studio 2017 RC。注意:Visual Studio 2017 RC 中还不支持轻量级解决方案加载和新的 .NET Core 单元测试,将在今后的更新中解决这些问题。

同时,ReSharper Ultimate 2016.3 继续支持 Visual Studio 2010, 2012, 2013 和 2015。

全新的针对 C# 和 VB.NET 的代码生成操作

全新的针对 C# 和 VB.NET 的代码生成操作

已使用以下 3 种新操作扩展了“Generate”菜单(在类中使用Alt+Ins ):

  • 关联成员 帮助您自动过载关联操作符 (>, <, , ) ,和/或使用选定的字段和属性来实施 IComparableIComparable<T>
  • 关联比较器 创建比较器类,从使用选定字段和属性的 Comparer<T> 处获取。
  • 处理模式 帮助您使用可选的可控性检查,以及用于不受管理成员的析构函数来生成 IDisposable 实施。

帮助您实施 IDisposable, IEquatable<T>IComparable<T> 的操作也可以通过 Alt+Enter 适用于亮显的代码。

生成构造函数的操作使用一个用来检查参数是否为null的选项进行了小更新。如果勾选此项,它将生成保护代码(guard code),该代码将在构造函数中丢弃 ArgumentNullException

C# 7 和 VB.NET 15 提供早期支持

为 C# 7 和 VB.NET 15 提供早期支持

ReSharper 2016.3 现在理解 VB.NET 和 C# 7 二进制常量和数字分隔符。它还支持 C# 7 本地函数,并在其上下文中启用大量代码检查,例如“Possible System.NullReferenceException”、“Access to disposed closure”和“Access to modified closure”。此外,还支持 C# 7 表达式和switch cases 语句中的 out 变量、模式匹配。

新的快速修复和上下文操作

新的快速修复和 "context actions"上下文操作

ReSharper 2016.3 新增一种快速修复,帮助您从所有无用的参数引入字段和自动属性。这是对仅作用于一种参数的现有快速修复进行的扩展,现在可以立即应用于所有未用的参数。这种“Introduce property”引入属性的快速修复还包含“Configure default”配置默认菜单项目,帮助您设置默认情况下生成哪种属性。

还为类型字段 Lazy<T> 提供新的上下文操作,用于引入属性来封装 fieldname.Value

转换参数重构

"Transform Parameters"转换参数重构

转换参数重构整合并替换两种其他重构: Transform Out参数 和 Extract Class from参数。

它重写一个方式的参数,将传入参数更改成新的类或元组,并有选择性地为返回值和任何 out 参数创建新类。

“Transform Parameters”可以照常从 Refactor This ( Ctrl+Shift+R ) 菜单调用。

.NET Core 单元测试

.NET Core 单元测试

在 Visual Studio 2015 中,ReSharper 的单元测试功能终于适用于 .NET Core 和 ASP.NET Core 1.0.x 项目内基于 xUnit 和 NUnit 的 单元测试。 该功能帮助您通过用于 .NET Framework 项目的方式来运行、调试和管理测试。

不过,如果您正在 Visual Studio 2017 RC 中处理 .NET Core 1.1,您需要等候 ReSharper 的下一次更新,以便在这个环境中运行和调试单元测试。

异步转至使用

导航和搜索:"Async usage search"异步使用搜索结果

已更新了ReSharper的使用搜索引擎,帮助您更简易地找到使用大量符号的引用。

尤其值得注意的是,只要你调用了“Go to Usages of Symbol”转到符号使用(Shift+Alt+F12),“Show in Find Results”按钮将出现在弹窗中,您可以点击此按钮或数字键盘上的+号,并继续处理代码,搜索结果将产生在“Find Results”查找结果窗口中。

“Find Results”查找结果窗口现在可以异步运行,这就意味着你可以在执行使用搜索的同时处理结果树。

转至文本支持更多文件类型

"updates in navigation and search" 导航和搜索中的其他更新

  • “Go to Text” 转至文本中现在支持内容文件的新格式 (.less, .hbs, .coffee, .scss, .dart, .as, .styl) 。
  • “Recent Files” 最近文件和 “最近编辑” 最近编辑弹窗现在显示转至文件的路径。在“Recent Files”最近文件弹窗中,您可以使用 Delete 键来删除条目。Recent Edits”最近编辑还可以将相同方式中的所有编辑显示成一个条目。
  • 提供一个设置来记住在“Go to Everything”转至一切、“Go to Text”转至文本和其他搜索操作中的上次搜索(现在默认情况下关闭此项)。
  • 结构性搜索和替换:在 C# 语言中,现在可以由值来匹配字符串和整数数字常量。现在还将表示相同整数,但使用不同后缀、根值、含有或不含数字分隔符的常量视为类似。
构建结果 工具窗口

ReSharper Build 改善

ReSharper Build 在这个版本中进行了若干改善。首先,在单独的“Build Results”构建结果窗口中显示构建结果,其中列出构建警告和错误。“工具栏”按钮和分组选项还帮助您控制查看结果的方式。

ReSharper Build 现在使用其自身的“NuGet 恢复”实施。以前,我们使用 Visual Studio 的 NuGet 集成来执行恢复,不过这只适用于 Visual Studio 2015。现在,这种恢复机制适用于所有 Visual Studio 版本(只要您安装了 .NET Framework 4.5 或更高版本即可)。

已重新设计了构建选项。例如,现在您可以选择何时显示“Build Results”构建结果窗口,例如只在出错时显示。另一个有趣的新选项帮助您将构建记录到“Output”输出窗口或文件中。

环绕类型保护快速修复

更出色的 TypeScript, JavaScript, JSON 支持

  • 支持 TypeScript 2.0.2 ("2.0 RC"):布尔、数字和枚举常量类型
  • “Go to Implementation”转至实施现在也适用于 TypeScript 类型:您可以从基本类型或成员跳转至其任何一个终端实施,并绕过继承链中的中间步骤
  • 环绕类型保护快速修复帮助您快速添加类型保护来为 TypeScrip 中未解析的符号消除歧义。
  • 您可以使用 TabShift+Tab 键,在您的 TypeScript, JavaScript 或 JSON 代码中启用 结构性导航
  • 为 TypeScript 缓存优化了内存使用
  • 现在为 TypeScript 常量类型提供代码补全,并为 JSX/TSX 文件提供大量格式化修复
  • 在项目配置文件 (project.json, package.json and bower.json) 中提供程序包名称的动态补全
语言注入选项

已改善 "language injections"语言注入

除了正则表达式和 HTML 以外,ReSharper 2016.3 还帮助您在 C#, JavaScript, 和 TypeScript 中注入 CSS, JavaScript 和 JSON。要使字符串常量包含特定语言,请使用 “Mark as” 上下文操作或特定的注释指令: //language=javascript|html|regexp|jsregexp|json|css

您还可以在注释中添加 prefix=postfix= 来使 ReSharper 解析字符串语法,就好像前缀和后缀已是字符串内的表达式的一部分。

最后,ReSharper 将在一些特定的已知情况下自动注入语言,例如将 JavaScript 注入 AngularJS 模板,或将 CSS 注入 jQuery 的 $[]中。

还有一个用于语言注入的新选项页面,帮助您有选择性地启用或禁用内置的自动注入。

从 NuGet 封装源打开

ReSharper 工具窗口

  • Assembly Explorer(组件浏览器) (ReSharper | Windows | Assembly Explorer) 新增一种方式来从 nuget.org 或任何 NuGet 封装源直接加载组件。该功能 还适用于 dotPeek的最新版本。
  • To-do Explorer(待办浏览器): 各个待办模式现在可以拥有一个使用其自身颜色的类别(“正常”、“编辑”、“错误”、“问题”或“警告”)。这些颜色与 To-do Explorer 和编辑器中的颜色相同,而且可以在 Visual Studio 的“字体和颜色”选项页面中进行配置。
  • Stack Trace Explorer(堆栈跟踪浏览器) 现在帮助您更快地打开外部的堆栈跟踪。如果您从当前打开的解决方案中复制了含有符号的堆栈跟踪,然后将焦点切换至 Visual Studio,那么 ReSharper 会自动将堆栈跟踪加载到 Stack Trace Explorer,而且无需您点击任何快捷键。可以在 ReSharper | Options | Tools | Stack Trace Explorer 中配置上述行为。
  • 使用 ReSharper Build
  • Type in the Alt+Enter 菜单
Feature suggestion: use ReSharper Build
Feature suggestion: type in Alt+Enter menu

"Feature suggestions"功能建议

我们包含了一些有关如何更有效地使用 ReSharper 的提示。在您不使用一种我们认为对您有益的 ReSharper 基本功能时,ReSharper 将向您显示含有提示的小弹窗。您可以从此处启用建议的功能,打开文档页面或禁用任何功能提示。

RelativePanel 控件的代码补全

XAML/UWP 改善

ReSharper 现在能够正确解析元素名引用,检测绑定错误,并为 Universal Windows Platform 应用程序中的 RelativePanel 控件提供代码补全功能。其他更新例如:ReSharper 不再显示 XAML 中重复属性声明的误报,这有助于清理 “Errors in Solution” 这个工具窗口。

第三方代码:跳过的代码

"Usability of options"选项实用性

  • JavaScript 和 TypeScript 拥有一个新的选项页面,改善了 ReSharper 处理第三方库代码和已生成代码的方式。在“第三方代码”页面,您可以将 JavaScript, TypeScript 或按名称的 JSON 文件、文件掩码甚至是整个文件夹编辑成 “skipped”跳过 或 “library”库。
  • 现在能够在一个 “Context Actions” 页面启用和禁用针对不同语言的上下文操作。您还可以使用该页顶部的搜索框来快速找到特定的操作。
  • 已重新设计了 “Inspection Severity” 页面来整合更多语言。
行首缩进选项

更多 ReSharper 更新

ReSharper的其他更新包括:

  • 在您输入 $ 并在引号间设置补注号时,针对 C# 的全新输入辅助将自动插入 $"": 这帮助您通过仅输入一个字符来插入字符串常量。
  • 现在为 Visual Basic 14 项目中存在歧义的命名空间提供智能的命名解析。ReSharper 基于您正在使用的类型推断您所指的与选项发生冲突的是哪个命名空间。例如,如果您使用 Threading.Thread, 您就明确所指 System.Threading.Thread, 如果您使用 Threading.Dispatcher, ReSharper 就理解成您所指的是 System.Windows.Threading.Dispatcher
  • 现在准许 VB.NET 中的 #Disable Warning(禁用警告)#Enable Warning(启用警告) 指令。
  • 通过恢复旧行为的选项,现在默认情况下禁用 for, foreach, while, lock 语句的缩进。我们还新增选项来帮助您缩进类型参数约束,并通过新的缩进引擎修复了 ReSharper 2016.2 中的一些问题。
支持缓存单元测试框架

ReSharper C++ 更新 Ultimate

ReSharper C++ 2016.3 添加了 typedef 重构,引入了后缀补全,开始支持缓存单元测试框架,并集成了 Visual Studio 2017 RC。

了解有关 ReSharper C++ 2016.3的更多信息。

.NET Core 支持

.NET Core 分析 Ultimate

现在 dotMemory 和 dotTrace 帮助您分析 .NET Core 应用程序是否存在内存问题和性能瓶颈,而且 dotCover 还支持 Visual Studio 2015 中这种应用程序的代码覆盖率。

要开始进行分析,只需在 dotTrace 或 dotMemory 中的主页上选择 .NET Core 应用程序,并指定您的 .NET Core 可执行程序,点击“运行”即可。

了解有关 dotMemorydotTrace 2016.3的更多信息。

已改善代码覆盖率亮显.显示测试结果

全新的代码 "coverage"覆盖率亮显 Ultimate

dotCover 2016.3 中全新的亮显引擎显示覆盖率状态和单元测试状态。如果相关当前语句的任何测试失败了,文本编辑器中的标记器就变成红色,如果所有测试都通过了,就变成绿色,如果没有覆盖这种语句的测试,则显示灰色。

了解更多 dotCover 2016.3的更多信息。

立即下载
30天免费试用

ReSharper 2016.2

Support for ASP.NET Core 1.0 RTM and tag helper syntax

ASP.NET Core 1.0 RTM

ReSharper 2016.2 新增对于 ASP.NET Core 1.0 RTM 的首次支持。ReSharper 现在可以正确解析这种项目类型中的项目引用,并提供其核心的功能集,包括重构、代码检查和导航。

现在代码补全、导航、搜索和重构功能都支持标签辅助语法(tag helper syntax)。

不过不再支持运行 .NET Core 单元测试:这将在下次更新中解决。

使用 Tab 键的结构式导航

使用 Tab 键的结构式导航

ReSharper 现在允许使用 TabShift+Tab 键,在您代码的逻辑片段之间跳转,这种方式与您 web 浏览器中的导航方式类似。

例如,在编辑一个语句时,Tab 将依次选择初始化器(initializer)语句,终止条件和迭代器(iterator)语句。Shift+Tab 将使这些选择反向。

当光标位于一行中首个非空格的字符前,您仍然可以使用 Tab 缩进。

了解更多信息:ReSharper 如何使 Tab 键再次变得出色

使用“转至文本(Go to Text)”功能进行文本搜索<

使用“转至文本(Go to Text)”功能进行文本搜索

新增的导航操作“转至文本” (Ctrl+T,T,T)帮助您快速找到和导航至您解决方案中包含的源文件和文本文件内的任何文本。该操作与其他导航命令类似 ,如果存在太多匹配项目,您可以点击数字键盘上的+ 号,在“查找结果”窗口中浏览结果。

资深 ReSharper 用户可以调回名为“转至单词”的旧插件,新的导航操作重新实施了 ReSharper 内这款极流行插件的功能。

通过针对整个解决方案的分析来指示警告

通过针对整个解决方案的分析来指示警告

如果您正在使用针对整个解决方案的分析,您应该知道通常情况下,只要修复了解决方案中的最新错误,红色的状态栏指示器就会变成绿色。

从 2016.2 版本开始,只要您的解决方案还包含任何未解决的警告(实际的编译器警告和 ReSharper 使用“警告”严重等级的检查),您便可以使指示器保持橙色状态。

是启用针对整个解决方案的分析,还是使其显示警告,都由您做主:您可以右键点击状态栏指示器来配置一切。

C# 输入协助

更丰富的 C# 输入协助

ReSharper 2016.2 引入一套新的 C# 输入协助功能,将在您输入代码时修正细微的错误。

例如,如果您正巧输入了 MethodName(.),将使用 MethodName(). 自动替换您输入的值,这允许您在不必处理无效语法错误的情况下,继续输入调用链。

类似的,ReSharper 会将逐字字符串插值中错误输入的 @$ 修正成$@

Check all parameters for null

新增快速修复和上下文操作

没有全新代码检查、快速修复和上下文操作的 ReSharper 更新是令人难以想象的,ReSharper 2016.2 也不例外。

新的 Alt+Enter 命令有助于简化字符串插值的插入,简单反向迭代顺序来进行循环,并通过使无效方式返回“任务”来修复无止境的等候。与此同时,使方式异步的现有快速修复已被优化成建议使用“任务”而不是保持无效。

此外,现在您可以使用一个上下文操作,检查针对null(或空字符串)的方式的所有参数;还能通过 Alt+Enter 操作来取消或删除备注。

Support for XML doc inheritance

XML 文档继承

ReSharper 2016.2 能够更出色地支持 XML 文档备注中的 <inheritdoc/> 标签,使您不必再将文档从基类型/成员复制到衍生物:

  • 现在提供一个上下文操作来将 <inheritdoc/> 添加到继承的类型成员
  • ReSharper 可以生成缺少的成员,并按照您的需要使用 <inheritdoc/> 备注来覆盖成员
  • “快速建档”现在可以正确处理成员,该功能不仅能从其基成员继承文档,还能使用附加或覆盖的备注来对其进行优化
Mark a reference as used at runtime

更安全的优化引用重构

ReSharper 2016.2 根据广大用户的迫切要求,新增一种方式来将引用在运行时被标记成已用。如果您正在使用依赖性注入框架,这将非常重要。

通过将所有引用标记成隐式加载,您可以安全地运行 ReSharper 的“优化引用”和“删除未用引用”命令,而不会破坏运行时所需的引用。

Refactor to partial type

在类型部分之间移动成员

如果您的解决方案在使用部分类,新的重构功能“提取成员到局部(Extract Members to Partial)”,帮助您在不同的类型部分之间快速移动类型成员。这种重构功能将按照您的输入,使用现有的类型部分或新建类型部分。

您甚至可以在 #region 上调用重构,来将所有区域成员移动到新文件,该文件使用从区域名称推断得出的名称。

优化了环绕模板

优化了环绕模板

如果您需要使用模板来环绕代码片段,您现在只需选择代码,并输入您需要的模板名称即可:无需其他快捷方式。

此外,您现在可以使用一个模板来创建代码(作为实时模板)和环绕现有代码(作为环绕模板)。

Injecting HTML or RegEx via comments

HTML 和 RegEx 注入

您现在可以充分利用 .cs、.js 和 .ts 文件中字符串常量内 HTML 代码分析的优势。只需在含有 HTML 的字符串常量前放置 /*language=html*/ 备注,或使用“在此处标记 HTML”这种上下文操作,即可在字符串常量内享用语法亮显,错误检测和 ReSharper 的其他 HTML 支持。

Regular expression assistance in string literals can now also be enabled when you put a comment /*language=regexp|jsregexp*/ before a string literal that contains a C# or JavaScript type regular expression.

JSON value helpers

JSON 值帮助程序和 Schema 目录

JSON 值帮助器允许您告诉 ReSharper 提供代码补全或针对您自身 JSON 文件的验证。您可以在“JSON 值帮助器”选项页面中添加一个帮助器,并基于文件名掩码和/或 Schema 匹配来进行匹配。此外,还可以在 JSON 选项中添加自定义 JSON Schema 目录。

Support for CSS custom properties

CSS 自定义属性

现在 CSS 自定义属性(也叫做变量)中提供 ReSharper 的代码检查、快速修复、代码补全、导航、搜索和重构。

例如在代码分析中,ReSharper 帮助您删除未用的自定义属性、检测未声明的自定义属性,并使用回退值来替换其使用。

此外,ReSharper 2016.2 引入了一套修复来改善针对 CSS 的处理。

TypeScript 2.0.0 support

TypeScript 2.0 支持

ReSharper 2016.2 完善了 TypeScript 2.0.0 中提供的语言功能支持,例如抽象属性、这个(this for)函数、控制认知流的维护、路径映射、可选的类成员和never类型。

Code generation options in TypeScript code completion

更多 JavaScript 和 TypeScript 改善

针对 JavaScript 和 TypeScript 支持的其他改善包括:

  • 生成 TypeScript 代码,例如覆盖和 lambdas 表达式(使用代码补全)
  • 补全 bower.json 清单文件中的程序包版本
  • 为并集和交集类型改善“查找使用”和“重命名”功能
  • 新的快速修复用来将缺少的成员实施成抽象
  • “转至声明”和“查找使用”功能能够正确适用于类型别名
  • 在重命名 JavaScript 函数参数时,ReSharper 学会更新到相应的 JsDoc 项目
组件从属性图表

组件从属性图表

ReSharper 2016.2 将组件从属性图表添加到其一系列从 属性分析工具中。

您可以对“组件浏览器”中选定的组件调用图表,并浏览通过引用在组件之间建立的连接。

ReSharper 里的进程管理器

进程管理器

T以前仅在dotPeek中提供的“进程管理器”窗口中,显示当前运行的所有进程,允许您浏览其模块并对 .NET 组件进行反编译。

您可以选择显示或隐藏原生的进程和模块,或打开进程层次结构视图。

筛选列表来找到您正在寻觅的模块或进程,然后将其组件添加到“组件浏览器”来进行进一步调查。

Improved IL code viewer

更多 ReSharper 更新

ReSharper 2016.2 的其他更新包括:

  • 使字符串插值建议、快速修复和上下文操作同样适用于VB.NET
  • 使用新选项来扩展C# 格式化程序 ,由此来缩进其中的括弧和代码;控制 ++ 和 -- 操作符前后的空格,以及已检查和默认表达式前及表达式内的空格
  • 辅助您使用 3 个及更多操作数 重新整理已插入插值的字符串和表达式中的代码。“贪婪括号(Greedy Brace)”功能现在适用于左大括号、括号类型和命名空间声明。
  • 使 IL 查看器中显示的 IL 代码拥有更出色的可读性:现在使用不同颜色亮显类型、成员、类型参数和本地变量;而且使用缩进和备注更好地区别循环。
Inline Variable refactoring in C++

ReSharper C++ 更新 Ultimate

ReSharper C++ 2016.2 新增“快速文档”弹窗,帮助您基于 Doxygen 注释块显示文档,而不必导航至符号的定义。

这款新版本还引入“内嵌式变量”重构功能,并改善了自动补全功能,使其能够建议当前文件中未包含的符号。

由于重新设计了 ReSharper C++ 的代码分析引擎,某些性能也得到了大幅度提升。例如在您初次打开 Unreal Engine 项目时,ReSharper C++ 的分析速度比以前快好几倍。

点击了解更多有关 ReSharper C++ 2016.2 的更多信息。

立即下载
30天免费试用

ReSharper 2016.1

Reformat, apply code style or clean up a selection

Code style代码样式功能

ReSharper 2016.1 对于您管理和应用代码样式首选项的方式作出大量变更。这些变更包括:

  • 现在代码样式设置、代码检查和快速修复为正在使用的命名参数、围绕单个嵌套语句的括弧、以及属性段分组设置首选的样式。
  • 现在可以使用一个命令来应用不断扩大的可配置代码样式集: ReSharper | 编辑 | 应用代码样式. 该命令(目前仅适用于 C#)将为使用变量的显式类型、CLR 类型名称 vs 类型关键字和 ReSharper | 选项 | 代码编辑 | C# | 代码样式 下其他可配置的样式强制执行您的首选项。
  • 用于重新格式化代码的显式操作:要在不必调用强大的 “代码清理” 的情况下启用快速常规的重新格式化功能,我们提供了一个新操作,可以从主菜单(ReSharper | 编辑 | 重新格式化代码)或使用键盘快捷方式获取。
  • 当您在编辑器中选定代码并按下 Alt+Enter 时,“重新格式化代码”“应用代码样式”“清理代码” 命令现在作为上下文操作提供。
A new ReSharper action to convert string concatenation to interpolation

用来manipulate strings(处理字符串的操作)

ReSharper 2016.1 添加一组 Alt+Enter 操作,帮助您在处理字符串的不同方式间切换,例如插值、连接和 string.Format()。这些操作将帮助您:

  • 将一个字符串插值表达式重构成 string.Format() 调用
  • C将字符串连接转换成字符串插值
  • 简化嵌套字符串插值
  • 删除本地或更大范围中冗余的逐字标识符
  • 在检查字符串相等性时不区分大小写
  • 将新参数插入字符串插值表达式
  • 通过多种记录器框架来使用字符串插值表达式
Context actions to check argument values

用来check argument values(检查参数值的操作)

另一组上下文操作用来基于其类型对方式参数生成检查:

  • 对于字符串参数,ReSharper 帮助您不仅为空值还为空白或空格字符串生成检查
  • 对于像 int, doubledecimal, ReSharper 可以写入检查来确保只通过非负数值
  • 对于枚举参数而言,ReSharper 生成一项检查可以确保通过的枚举值实际上是适当的枚举声明中定义的值,由此来避免不当枚举
  • 对于集合参数而言,ReSharper 帮助您设置针对空集合的检查
Converting a JSON string to a Newtonsoft JSON.NET object

用来convert strings to objects(将字符串转换成对象的操作)

ReSharper 2016.1 引入两个类似的上下文操作来帮助您转换代码,以便充分利用 LINQ to XML 和 JSON.NET API

只要您在字符串字面值中存在有效的 XML,就可以使用上述操作,帮助您将这个字符串转换成 LINQ to XML 对象 (使用 XElement, XAttribute 等)

上述第二个操作帮助您将 JSON 字符串转换成 Newtonsoft JSON.NET 对象。只有在您的项目引用 Newtonsoft.Json 组件时此操作才可用(您可以从 NuGet Gallery 安装这个组件)

ReSharper 2016.1 中还引入 了“使用智能粘贴整合” ,这两个操作完善了将现有的 XML 或 JSON 迁移到 C# 代码的工作流

Context actions to split or join attributes

更多context actions(上下文操作)

还提供各式各样的 Alt+Enter 操作(例如上下文操作和快速修复),帮助您执行各种转换,例如:

  • 注释掉代码选定项
  • 取消插入符号下的注释。(这个操作和上个操作都能有效等同于 Alt+Enter 这些针对注释代码的 ReSharper 专用快捷方式)
  • 将未实施接口的实施转交给相应类型的新字段
  • 分割或整合属性部分
  • 创建部分类型的另一个部分
  • 为切换实例(switch case)语句添加括弧
WCF-specific code inspections and quick-fixes in ReSharper

WCF-特定操作

ReSharper 2016.1 新增一套代码检查、快速修复和上下文操作,用来解决 WCF 服务开发中一些最常见的问题

  • ReSharper 将帮助您检测和修复被标记成 [OperationContract(IsOneWay=true)] 却返回除了无效或任务以外任何其他值的 WCF 服务方式
  • 如果您拥有一个没有任何 [OperationContract] 成员的 [ServiceContract] 界面,ReSharper 将提供一个快速修复,来为使用 [OperationContract]的界面的所有成员添加注释
  • 同样的,如果您在一个界面中拥有被标记成 [OperationContract] 的方式,不过没有 [ServiceContract] 注释,ReSharper 会将其识别出来,并建议两个选项来解决这个问题
  • T提供新的上下文操作来帮助您对含有 [DataContract][DataMember] 属性的 [DataContract] 类型中的所有成员添加注释,这对遗留的 [DataContract] 类型特别有用
Invert Boolean Member refactoring

Invert Boolean Member反向布尔成员

在您修改返回 boolean 的成员时,它将获取相反的含义,例如:将名为 IsNotAvailable() 的方式重构成 IsAvailable(),您可能希望反向它返回的值,并更新从其获取值的其他成员。

这便是全新的“反向布尔成员重构”能为您实现的。例如,对一个方式调用了该功能,您可以选择重命名方式,或反向方式中的值,和/或反向方式的使用。

可以对一个方式、属性、本地变量或参数调用上述重构。

Smart Paste ensures the correct escaping in string literals

Smart Paste智能粘贴

ReSharper 现在可以帮助您确保正确绕过您在代码周围复制/粘贴的字符串常量。该功能适用于 C#、VB.NET、JavaScript、XML、XAML 和 HTML 文件,确保遵循在不同上下文中使用的绕过非法字符的不同方式。

例如,您可以复制含有双引号的文本或 XML,并将其粘贴到以 C# 语言编写的字符串常量,然后让 ReSharper 自动绕过所有引号。

当您将 C# 代码贴入 XML 文档标签时,这也起作用:“智能粘贴”将绕过任何泛型和 lambda 语法、逻辑运算符,以及适用于 C# 但不适用于 XML 值的一切。

ReSharper 可以为您绕过的其他内容,包括文件路径和换行符。

NuGet support in Optimize References and Remove Unused References

优化 Nuget 引用

“优化引用”学习处理 NuGet 引用,在显示一个项目所包含的所有常规引用的相同工具窗口中显示这些引用。ReSharper 还新增一个群组来显示可能未使用的在项目中存在依赖关系的引用,因此不能将其视为冗余。ReSharper 将准确告诉您项目中实际使用了程序包中哪些特定的依赖关系。

I此外,“删除未用引用重构”现在也支持 NuGet 引用。

Intermediate Language viewer in ReSharper

IL 查看器

率先在 dotPeek 中提供的“中间语言查看器”,现在也适用于 Visual Studio。您可以使用这个查看器来向下挖掘第三方库代码,并显示与您自己的源代码相应的 IL。(注意:您必须先编译)。

要了解 IL 查看器的工作方式,请在菜单上选择 ReSharper | Windows | IL 查看器

ReSharper's test runner supports xUnit out of the box

即开即用的 xUnit

最近 xUnit.net 测试框架非常流行,包括已成为 Microsoft 跨平台、开源的 .NET Core 项目的首选框架,而且是官方支持的针对 DNX 项目的运行测试方式。

虽然 ReSharper 已支持了 xUnit.net 很多年,不过始终要求安装一个单独的扩展。从 2016.1 版本起,ReSharper 在产品中直接支持 xUnit.net。这就意味着 ReSharper 将发现您的测试,允许您直接从编辑器运行和调试这些测试,无需任何额外的扩展。

此外,ReSharper Ultimate 客户可以配置测试,获取代码覆盖率,并使用“持续测试”会话中的 xUnit.net。

ReSharper starts to understand VB.NET 14

VB.NET 14

我们很久之前就支持 C# 6 了,现在我们通过开发 Visual Basic .NET 与时俱进。

ReSharper 2016.1 通过开始了解语言功能(例如字符串插值、多行字符串、零条件操作符、部分模块和界面、以及年优先的日期常量)来完善 VB.NET 14 支持。

JSON support in ReSharper 2016.1

JSON 支持

ReSharper 2016.1 为所有支持的 Visual Studio 版本(2010-2015)提供 JSON 文件和 Schemas 支持,由此来扩展其技术。

JSON 和 JSON Schema 支持现在从针对早期 Visual Studio 版本的基本支持(例如语法亮显),扩展至更复杂的功能,例如格式化和重新排列(您可以移动对象属性或选择任意位置)、代码检查和快速修复、以及认知 Schema、路径、正则表达式和程序包的代码补全。

为了帮助您快速理解任何 JSON 文件,我们已启用了 ReSharper 的 “文件结构” 窗口来处理这种类型的文件。

Initial support for Node.js in ReSharper

针对 Node.js 的首次支持

ReSharper 2016.1 首次引入对于 Node.js 的支持。

所有您熟悉的 ReSharper 的出色功能(例如补全、代码检查、快速修复和导航功能)现在都适用于 Node.js。

Improved JSDoc support

JSDoc 改善

ReSharper 2016.1 还改善了 JSDoc 支持。ReSharper 现在可以解析泛型、HTML 标记,以及含有您 JSDoc 注释中各种属性的参数。ReSharper 从 JSDoc 中推论出的一切可以立即适用于代码补全建议和参数信息工具提示等。

Improved JavaScript and TypeScript formatting settings

更多JavaScript 和 TypeScript 支持

我们已从广度和深度上改善了 JavaScript 和 TypeScript 支持。以下是本版本中的重要改善:

  • JavaScript 和 TypeScript 格式程序变得更加细粒化。您现在可以为您的代码指定正确的边距,并定义是否以及如何封装各种代码结构
  • 重命名重构现在可以重命名与 TypeScript 类型相应的文件,而且 “查找使用率” 能够认知 TypeScript 实施和覆盖情况
  • 完全支持 TypeScript 1.7 and 1.8,包括类型参数约束、无状态的 JSX 组件、扩大的全局/模块范围、字符串常量类型和基于 this 的类型防护
  • 提供针对 实验性 ECMAScript 语法的初始支持,例如理解、装饰、类属性、取幂运算、以及针对对象字面值的静止(rest)和展开(spread)属性
  • 实验性 部分支持 TypeScript 2.0:只读属性、隐式索引、私人和受保护的构造函数、抽象属性和可空类型
  • Visual Studio 早期版本中的 TypeScript 和 JavaScript 提供更好的支持:例如 ReSharper 现在可以亮显 Visual Studio 2013 中的 JSX、ECMAScript 6 和 7 版本

已改善错误亮显

ReSharper 2016.1 已改善涉及复杂类型的错误的亮显范围。早期版本的 ReSharper 将亮显含有一个错误的整个语句,这会阻碍对于错误的定位,尤其是复杂的泛型类型更是如此。

从现在开始,ReSharper 仅亮显类型中出错的那一部分(不过请注意 Visual Studio 2015 自身的错误亮显),并提供更多方式来修复错误匹配的类型。

Find Code Issues异步查找代码问题

以前,当您在任何给定的范围中使用 ReSharper 的 Find Code Issues(查找代码问题) 命令时,在完成代码分析之前,您必须停止工作并进行等候。

Starting with ReSharper 2016.1, Find Code Issues works in the background, in a manner similar to Find Usages. This lets you keep editing or navigating your code while ReSharper runs its analysis and populates the Inspection Results tool window in the background.

立即下载
30天免费试用