ReSharper C++ 2021.2 与 Visual Studio 2019

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

Microsoft Visual Studio 2019 16.10
ReSharper C++ 2021.2

支持的 C/C++ 规范

C/C++ C/C++
C++/CLI C++/CLI
C++/CX 不支持
HLSL HLSL

代码分析和纠正

实时设计时代码分析(编译器错误和警告) 实时设计时代码分析编译器错误和警告以及 230+ 个专有代码检查
个用于解决代码问题的快速修复 290 多个用于解决代码问题的快速修复
集成的 Clang-Tidy 诊断和检查 集成的 Clang-Tidy 诊断和检查
集成的 UnrealHeaderTool 诊断和检查
拼写检查
包括分析器
报告任何范围,直至整个解决方案内的所有错误和代码质量问题
可调的代码检查:可以直接从 Alt+Enter 菜单中配置 5 个严重性级别
在解决方案或团队级别共享代码分析设置

重构和代码转换

Rename Rename
Change signature Change signature
Extract function Extract method
实现 pure virtual 生成重写成员
创建声明/定义 通过声明生成定义/实现
Move function definition Move implementation out of class scope
转换为原始字符串文字 转换为原始字符串文字,反之亦然
转换为作用域枚举
Introduce Field
Introduce Namespace Alias
引入 typedef
引入 using 枚举
Introduce variable
Inline Function
Inline Variable
内联 typedef
超过 65 个上下文操作(自动化局部代码转换)

编码辅助

代码补全 带有智能建议和骆驼拼写法匹配的代码补全
语法高亮显示 语法高亮显示(可为超过 25 种不同标识符配置颜色)
代码元素的工具提示 带有高亮显示的语法和格式化文档注释的代码元素的工具提示
展开/收缩选择 Extend/Shrink Selection
注释选择(自动选择注释) 注释选择,带行或块注释
快速信息和参数信息 快速文档参数信息
参数名称、类型名称、命名空间、类型转换和预处理器指令的嵌入提示 push-to-hint 模式
重新排列代码元素
自动添加缺失的 #include 指令
导入补全后缀补全
补全语句
选择包含声明

导航和搜索

导航到 随处搜索
转到声明 同样适用于未解析的标识符和注释,并有助于在用法和匹配的预处理器指令之间导航的 Go to Declaration
查看定义 查看声明、用法、基本符号、实现
代码书签 代码书签
快速启动 查找操作和设置
查找引用 查找用法
生成 include 文件图 includes 的层次结构视图
调用层次结构 不支持
转到符号 转到符号
转到类型 转到类型
转到文件 转到文件
转到文件成员 转到文件成员
带模糊搜索的 Go to Text
转到基本符号
转到派生符号
转到相关文件
转到附近的文件
转到最近的位置和更改
转到主要模板/专项
切换头/源
高亮显示文件中的用法
在编辑器中在继承层次结构中上下导航
按上下文的断点导航
类型层次结构视图
文件结构
在 To-do 条目之间导航
在 Solution Explorer 中定位当前文件

代码生成

代码段(模板) 代码段(模板),包括实时包围后缀模板
从模板生成文件 从模板生成文件
通过代码补全生成代码 通过代码补全生成代码
代码段的可视化编辑器(模板)
添加前向声明插入带有导入补全的 #include 指令
根据用法生成代码
生成构造函数
生成定义
生成缺失的 case 语句
生成文档注释
Generate missing members/Generate overriding members
Generate copy and move operations
Generate getters and setters
Generate equality operators
Generate relational operators
Generate stream operations(包括 Boost.Serialization 函数)
Generating hash function
Generating swap function
Generating Google Mock Methods
Convert enum to string (generate enum-to-string helper)(可配置)
生成缺失的成员

代码样式和清理

重新设置代码格式 在任何范围内应用格式设置规则(使用 ReSharper C++ 自有的格式设置规则集
EditorConfig支持 EditorConfig支持
Clang 格式支持
从现有代码学习格式化规则
用于配置所选代码的格式设置规则的可视化编辑器
File Formatting Info 窗口,用于浏览影响当前文件的设置值和文件
带有预定义方案的可配置命名样式(STL、Google、LLVM、CamelCase、Microsoft)
用于排序 #include 指令的可配置规则
用于初始化、声明、重写函数、auto 用法、cv 限定符位置和大括号的可配置语法样式

单元测试

单元测试资源管理器 单元测试资源管理器
用于 C++ 支持的 Microsoft Unit Testing Framework 不支持
Google Test 支持 Google Test 支持
Boost.Test 支持 Boost.Test 支持
CTest 支持 不支持
Catch 支持
doctest 支持
从编辑器运行测试
多个单元测试会话

调试

编辑器中的数据提示 在编辑器中具有可配置对象呈现的可搜索数据提示
断点工具窗口 带预览、上下文搜索、分组和导出的断点工具窗口
内联监视
步骤筛选器

Unreal Engine 支持

Unreal Engine 命名约定支持
集成的 UnrealHeaderTool 检查
处理 HLSL 着色器文件
Unreal Engine 远程过程调用支持
Unreal Engine 反射说明符的代码补全
Unreal Engine 项目模型可以提供基于插件和模型引用的代码补全
根据 .Build.cs、.Target.cs、.uproject 或 .uplugin 中的更改实时更新

管理设置

通过 Microsoft ID 同步设置 通过 VCS 或任何文件托管服务与团队同步设置和自定义模板
设置层系统,用于无冲突地存储不同解决方案的不同设置
下载
30 天免费试用