ReSharper 与 Visual Studio

本文列举了 ReSharper 提供的一些功能,Visual Studio 缺少这些功能或者没有完全实现。

由于两款产品都在积极地开发中,它们的功能会定期发生变化,此比较只针对比较表的标题中显示的这些特定版本。

Microsoft Visual Studio 2022 17.12

ReSharper 2024.3

代码分析
C#、VB.NET、XAML 的实时设计时代码分析
所有受支持语言(ASP.NET、XAML 等)的实时设计时代码分析
800 多条代码分析规则(代码检查)
1600 多条代码分析规则(代码检查
设计时错误高亮显示:C#、VB.NET、JavaScript、TypeScript 和 C++ 的编译器错误
设计时错误高亮显示:所有受支持语言的大多数编译器错误、许多可能的运行时错误(例如检测可能的空引用异常)
400 多种可自动修正的代码问题
2100 多种可自动修正的代码问题
250 多个用于解决 C#、F# 和 VB.NET 中代码问题的快速操作
1500 多个用于解决 C#、VB.NET、ASP.NET、XAML、XML、JavaScript、TypeScript 和其他受支持语言中代码问题的快速修复
在文档、项目、解决方案、包含成员和包含类型中修复所有问题
文档、项目、文件夹、解决方案中的作用域内修复
C# 和 VB.NET 的全解分析
适用于所有受支持语言的解决方案级错误/警告监视器
传入调用
集成 ESLint 支持
报告文件内的所有错误和代码质量问题
报告任何范围,直至整个解决方案内的所有错误和代码质量问题
可空性分析的代码注解
代码注解有助于更准确地分析解决方案(可空性、协定等)
建议用于已安装 NuGet 软件包中的类型
带有结构搜索和替换模式的自定义代码检查和修正
字符串文字中代码的分析
跟踪值来源
分析值来源和目的地的值跟踪
重构
15 个解决方案级重构
60 多个解决方案级重构
120 多个局部重构(自动局部代码转换)
500 多上下文操作(自动化局部代码转换)
局部重构预览
项目级清理重构:同步命名空间
相同或相似代码的结构化替换
代码生成
根据用法创建
根据用法创建
从代码段(模板)生成代码
从可配置的实时、<环绕后缀模板生成代码
从模板生成文件
从可配置模板生成文件和文件集
生成类型成员
为参数生成空检查
代码段的可视化编辑器(模板)
构建工具
MSBuild
ReSharper Build:进程外增量构建工具,可优化 MSBuild 并应用启发式方法仅构建需要更新的项目,附带内置 NuGet 软件包恢复器
项目级工具
多项目启动配置
多个启动项目、静态方法和外部可执行文件的运行配置
依赖关系图 Enterprise
项目依赖关系图程序集依赖关系图和<类型依赖关系图不需要 Visual Studio Enterprise 版,无需编译即可显示
用于打开和导航已编译程序集的程序集浏览器
用于探索 NuGet 库中软件包、类型和命名空间的 NuGet 浏览器
编码辅助
代码补全
代码补全为上下文驱动,可从整个解决方案建议类型和扩展方法、导入命名空间、生成代码等
语法高亮显示
语法高亮显示(不同可配置颜色对应不同标识符种类)
自动导入命名空间
自动导入命名空间,以 NuGet 搜索类型和命名空间
向上/向下移动行或选区
展开/收缩选择
正则表达式辅助
从剪贴板历史记录粘贴项
形参名称和类型名称的嵌入提示
形参名称、类型名称、类型转换的内嵌提示;push-to-hint 模式
集成拼写检查
导航和搜索
代码搜索
随处搜索
转至声明
转到声明有助于在用法间导航
查找引用
查找当前和相关符号的用法,包括文本匹配项
高亮显示引用
高亮显示引用
转到符号
转到符号
转到类型
转到类型
转到文件成员
转到文件成员
转到文件
转到文件
代码书签
代码书签
导航到反编译源代码
导航到反编译代码
查看最近的文件
查看最近的文件/最近的编辑和跳转到上次编辑
快速启动
转到操作
转到基本
已实现和继承的符号的装订区域图标
已实现、继承和隐藏符号的装订区域图标
文档概要
查看文件的全局使用
查看和重构全局使用
转到文本
转到相关附近文件
项目、项目引用、类型、CSS 样式的层次结构视图
Task List window
代码样式
重新设置代码格式
在文件、项目或解决方案中重新格式化代码,可选择使用格式化规则的上下文配置
优化命名空间 import 指令
优化命名空间 import 指令,包括批量 import
可配置的代码语法样式检查
命名样式
EditorConfig支持
EditorConfig 支持,具有 File Formatting Info 窗口,可以浏览影响当前文件的所有 .editorconfig 文件
文件、项目或解决方案中的代码清理 (C#)
任意范围的代码清理:选区、文件、文件夹、项目、解决方案(C#、VB.NET、C++、JavaScript、TypeScript、HTML 和其他语言)
移除文件中不必要的使用和未使用的私有成员
在方法、类、文件、项目或整个解决方案范围<移除代码冗余
通过 EditorConfig 的文件头样式
通过 EditorConfig 或设置的文件头样式
单元测试
单元测试资源管理器
测试框架支持(MSTest、VSTest、xUnit.net)
测试框架支持(MSTest、VSTest、xUnit.net、NUnit)
从编辑器运行测试(仅限 MSTest 和 xUnit.net)
从编辑器运行测试
在编辑器中查看测试状态(仅限 MSTest 和 xUnit.net)
在编辑器中查看测试状态
代码覆盖率工具 Enterprise
实时单元测试 Enterprise
持续测试 dotUltimate
多个单元测试会话,可同时独立运行
调试器
编辑器中的数据提示
具有分组和导出的断点窗口
带预览、上下文搜索、分组和导出的断点窗口
方法返回值显示在编辑器中
局部变量、当前行表达式和函数返回的值在编辑器中显示
管理设置
通过 Microsoft ID 同步设置
通过 VCS 或任何文件托管服务与团队同步设置
设置层系统,存储不同解决方案的不同设置而不产生冲突
安全
检测存在漏洞的软件包
其他
诊断工具
诊断工具 + 集成性能内存分析器 dotUltimate
本地化 GUI
本地化 GUI
30 天免费试用