生产厂商:JetBrains产品类别:开发工具
ReSharper C++如何帮助Visual Studio用户
分析和改进代码质量
ReSharper C++ 会在编辑器中高亮显示代码问题,并提供快速修复,以多种方式改进代码。 不可到达的代码? 冗余的语句? 可疑的对象切割? 不正确的格式说明符? ReSharper C++ 会让您注意到这些和其他问题,并帮助您修复它们。
查找用法和导航代码
您可以立即跳到解决方案中的任何文件、类型或类型成员。 您可以搜索代码用法,使用分组和预览选项获取所找到用法的清晰视图。 最后同样重要的是,您可以从任意的代码符号转到它的声明或定义、基本符号或派生符号。
重构和转换代码
适用于 C++ 的代码重构可以帮助您安全地更改基本代码,这在像 C++ 一样复杂的语言中尤为重要。 上下文操作有助于您在替代语法结构之间切换,并可用作代码生成操作的快捷键。
生成普通代码
ReSharper C++ 能够为您生成的代码包括定义、缺失与重写的成员、等式与关系运算符,以及哈希和交换函数。 除了这些可自定义的模板,还为您提供了一些工具,让您能够以比以往更高的效率处理样板代码。
运行和管理单元测试
ReSharper C++ 支持在 Visual Studio 中运行基于 Google Test 和 Boost.Test 的单元测试 。 您可以直接在文本编辑器中根据上下文运行和调试单元测试。 专用工具窗口可以帮助您查看、分组、筛选和运行单元测试,以及创建和管理单元测试会话。
使用一致的代码样式
配置代码格式化选项和命名样式,与您的团队成员共享设置;维护一致的代码样式将不再是问题。
为什么要升级到ReSharper C++最新版本
更好的C++20支持
C++20 标准已几乎定稿,ReSharper C++ 扩展了对这种最新标准的支持。 现在支持多个新语言功能,包括约束类型占位符、缩写函数模板和 using enum声明。 此外,ReSharper C++ 还提供了一个使用 C++20 模板语法更新 lambda 声明的快速修复,以及一个轻松引入 using enum声明的重构。
改进的编码辅助
ReSharper 中适用于 .NET 的知名功能 Rearrange Сode 和 Complete Statement 终于可以在 ReSharper C++ 中使用了!
补全列表现在包含标准 C++ 特性、goto 语句的标签名称、新的 std::forward 后缀模板,以及基本函数调用的参数。 此外,代码补全现在也可以在宏定义中运行。
适合游戏开发的更多功能
借助对 UnrealEngine 支持的更新,ReSharper C++ 2020.1 改进了 Rename 重构并引入了对 SpatialOS GDK 和包含虚拟文件路径的 USF 文件的支持。 ReSharper C++ 还严格遵守 Unreal Engine 指南,禁止 Use auto 检查并遵循控制台变量和日志类别的命名惯例。
ReSharper C++ 2020.1对 HLSL 提供初始支持。 即使在目前这个早期阶段,此支持也包括多个功能:基本的代码高亮显示、智能代码补全以及快速导航。
ReSharper Ultimate:
一个许可证包含一套.NET工具和ReSharper C++
ReSharper Ultimate 是一种包含各个JetBrains .NET工具和ReSharper C++的许可证。
每个ReSharper Ultimate许可证允许一名开发者使用ReSharper、ReSharper C++、dotCover、dotTrace和dotMemory。
将.NET程序集反编译为C#或IL
dotPeek 可以将任意 .NET 程序集反编译为对等的 C# 代码,还可以选择显示基础 IL 代码。
库、可执行文件以及更多
dotPeek支持多种格式,例如库 (.dll)、可执行文件 (.exe) 和元数据文件 (.winmd)。
dotPeek 也可以反编译 .baml 文件,让您能够重建 XAML UI 定义。
除了传统的程序集和可执行文件,您还可以使用 dotPeek 打开存档(.zip、.vsix 或 .nupkg)和文件夹。 您还可以查找并从任意在线包源加载 NuGet 包(及其依赖项),或者加载 VisualStudio 项目的 packages.config 文件中列出的包。
查看源代码是否可用
反编译代码聊胜于无,不过有时您可以将程序集与它的源代码相匹配,那么为什么不利用这一点呢? dotPeek 可以根据 PDB 文件识别本地源代码,或者从 Microsoft ReferenceSource Center 或 SymbolSource.org 等源服务器中获取源代码。 此外,dotPeek 可以生成 PDB 文件。
使用菜单栏中的导航模式下拉列表来选择您只想要 dotPeek 反编译程序集,还是尝试查找源代码(如果可能)。
显示或隐藏编译器生成的代码
您可以选择显示某些编译器转换,从而使 dotPeek 显示的代码结构与编译器转换后的代码结构非常相似。 这有助于了解编译器如何处理 lambda、闭包和自动属性等对象。
探索正在运行的进程
Process Explorer 窗口可以显示当前正在运行的所有进程的列表,并且可以探索进程的模块以及对其中的 .NET 程序集进行反编译。 您可以选择显示或隐藏原生进程和模块,或者打开进程层次结构视图。
筛选列表以查找您正在寻找的模块或进程,然后将其程序集添加到AssemblyExplorer中进行更深入的调查。
以单独视图查看IL代码
无论您何时想要在源代码以外深入了解,都可以从反编译的 C# 中的任意一点导航到 IL 代码。
最简单的方法是在与主代码查看器同步的单独工具窗口中显示 IL 代码。
以反编译的C#的注释形式查看IL代码
或者,您也可以选择以反编译的 C# 代码的注释形式显示 IL 代码,这实际上会将它的默认文本查看器和通常单独的 IL Viewer 窗口合并显示在一个视图中。
dotPeek 可为反编译代码和从符号文件重现的源代码显示 IL 代码。
使用您偏好的颜色主题
dotPeek支持与 VisualStudio 相同的颜色主题集。
例如,您可以选择“蓝色”或“深色”主题,或者选择与 Visual Studio 设置同步颜色主题偏好设置。
以不同的方式导航反编译的代码
dotPeek 基于ReSharper 强大的代码洞察架构,让您能够以上下文相关或上下文无关的方式导航反编译的程序集,获得每个反编译文件中内容的快速摘要,设置书签以及探索继承链。
查找任意符号的用法
借助 dotPeek,您可以通过多个选项搜索引用代码符号的位置。
调用 Find Usages 可以在所有加载的程序集中查找所有符号(例如方法或属性)的用法。 Find Results 工具窗口中会显示这些用法,您可以在窗口中对用法分组,在用法之间导航以及将它们在代码视图区域中打开。
还有 Find Usages Advanced,它是更详细版的 Find Usages,通过限制搜索范围和其他细节来帮助您优化搜索条件。
在代码查看器中高亮显示用法
dotPeek会自动高亮显示脱字符号下符号的所有可见用法,与最新版本的 VisualStudio 非常相似。 这有助于改进反编译代码的可读性,特别是在您处理混淆的标识符时。
此外,如果您想要浏览文件中的所有用法,则无论它们是否可见,都请使用 Highlight Usages in File。 这将会高亮显示当前文件中给定符号的所有用法,使用两种不同的颜色表示写入用法和读取用法。
探索当前文档
使用 Go to File Member 进行快速浏览,并导航到表示反编译类型的文档中的成员。 输入部分成员名称,然后直接导航到它们。
或者,如果您想要静态显示当前文档中的成员,请打开 File Structure 工具窗口并将其停靠在某个位置。 您也可以筛选此视图:选择工具窗口,开始输入字符,仅关注您感兴趣的类型成员。
跳到任意代码
通过为程序集列表中的所有程序集及其所有引用编制索引,dotPeek 提供了两种快速跳转至特定代码的功能:
Go to Symbol 有助于您导航到特定的符号声明,可能是类型、方法、字段或属性。 使用 lowerCamelHumps 语法可定位类型 - 例如,输入 xmard 可定位并打开 XamlMarkupDeclaredElement。
Go to Everything 让您可以搜索程序集、命名空间、类型、成员或最近打开的文件。
设置书签
如果存在您觉得重要并且想要以后返回来处理的反编译代码行,请设置书签。
使用一个快捷键拖动带编号的标记,并使用另一个快捷键随时跳回来。 您可以创建多达10个带编号的书签以及无数个不带编号的书签。 已加入书签的位置的完整列表将在一个弹出窗口中显示。
上下文导航
当您将脱字符号放在代码视图区域中的符号上时,dotPeek 可以通过 Navigate To 下拉菜单提供大量的上下文导航选项。
例如,Go to Declaration 会将您从任意符号的用法转到它的声明。 如果该符号已在另一个程序集上声明,将自动加载程序集。
Go to Implementation 有助于导航到类型和类型成员的最终实现,跳过继承链中的中间步骤,例如抽象类。
其他有用的上下文导航选项包括 Go to Base Symbols 和 Go to Extension Methods。
导航类层次结构
如果您想在来自某个特定类型或类型成员的继承层次结构中上下导航,可以考虑使用 Go to Base Symbols 和 Go to Derived Symbols。
如果您想立即转到继承者或基本符号,这两个操作特别有用。
探索继承链
如果您希望获得特定继承链的可视摘要,请使用 Type Hierarchy。
dotPeek 将在单独的工具窗口中以树形视图的形式显示从选定类型继承的所有类型,以及自我继承的类型。
了解程序集
dotPeek 提供了相关的工具来快速抓取给定程序集的结构,了解程序集之间的关系,以及将程序集组织到离散的列表中,最后一项功能有助于仅关注与当前任务有关的程序集。
管理程序集列表
根据上下文的不同,您可以处理不同的程序集列表。 您可以保存并重新打开程序集列表,如果您不再需要,还可以清除当前列表。 程序集列表并不局限于 .dll 和 .exe 文件:它们也可以包含 NuGet 包、存档和文件夹。
探索程序集内容
在您处理程序集列表时,AssemblyExplorer 可以显示特定程序集具有的引用、资源和代码种类,从命名空间到类型成员。
对于每种类型,除了实际成员列表外,它还可以高亮显示表示其基类型和继承者的节点。 也支持使用 lowerCamelHumps 进行快速搜索和节点筛选。
探索程序集元数据
dotPeek也可以帮助您探索程序集元数据,并深挖其中的所有项(表、blob、字符串等)。 在 Metadata 节点下,您可以探索 blob 项的值、PE 文件头、元数据表项的用法。
与程序集树中的其他位置一样,您可以双击元数据项来反编译并显示相应的代码。
查看程序集之间的依赖关系
如果您想了解程序集彼此之间的依赖关系,可以在 Assembly Explorer 中选择多个程序集,然后指示 dotPeek 显示程序集依赖关系图。
这将借助选定程序集的引用可视化它们之间存在的任何关系。