CLion IDE包含ReSharper C++在Visual Studio下提供的所有功能吗

Does CLion IDE include all features which ReSharper C++ provides under Visual Studio?

本文关键字:功能 Studio 包含 IDE ReSharper C++ Visual CLion      更新时间:2023-10-16

由于我已经使用ReSharper for C#(和其他JetBrains工具(有一段时间了,并且对这种体验感到非常满意,所以我在C++项目的两个JetBrains产品(标题中(之间摇摆不定,认为哪一个是更好的选择。

决定的一个关键点是CLion是否包括ReSharper C++提供的所有(或至少大部分(功能。

我能找到的关于这个话题的唯一信息是以下JetBrains博客中的一句话,这对我没有太大帮助:

正如我们已经提到的,在某个时刻,CLion和ReSharper C++团队分裂,让位于两个完全独立的实现C++解析器。这是由两个完全不同的平台造成的体系结构,IntelliJ和ReSharper,以及两套不同的思想解析程序是如何实现的。

另外,关于两个选项/组合之间的比较的其他方面(除了特征集(也是受欢迎的。

在CLion和ReSharper C++之间的选择通常由您的开发环境决定。

  • CLion是一个基于IntelliJ平台的独立跨平台IDE。当您的项目使用CMake来管理构建过程,并使用GCC/Clang作为编译器时,这是一个选项
  • 另一方面,如果您使用Visual Studio作为IDE,并使用Microsoft工具集编译项目,那么您应该使用ReSharper C++

CLion包含许多R++根本不需要的功能(因为它运行在Visual Studio之上(,例如,GDB/LLDB的调试器UI和对编辑CMake文件的支持。此外,IntelliJ平台的所有常见功能都可用,包括与VCS系统的集成、大量插件以及对其他语言(例如Swift、Python、JavaScript、HTML/CSS等(的支持。

ReSharper C++是Visual Studio的扩展,因此它使用Visual Studio项目模型,并支持MSVC编译器的各种特性。它还有一个比CLion更精确的代码模型,并提供了更多的代码生成选项、动态代码分析和上下文操作(其中大多数在与Visual Assist X的比较页面上列出(。除了CLion支持的GoogleTest之外,R++还可以运行使用Boost.Test框架编写的测试。

最后,如果你有机会,一定要同时尝试两种产品,看看你更喜欢哪一种——这两种产品都有30天的免费评估期。

我最近都没有使用过,但与最新的在线帮助相比,CLion似乎拥有ReSharper C++的所有重构,还有更多:

https://www.jetbrains.com/help/resharper/Refactorings_for_CPP.htmlhttps://www.jetbrains.com/help/clion/refactoring-source-code.html

此外,CLion提供了几个";意向行动;其看起来类似于ReSharper的";上下文操作"ReSharper帮助列出了大约56个特定于C++的上下文操作以及14个与语言无关的上下文操作。CLion帮助没有提供意图动作的完整列表,但查看";首选项";对话,我估计大约有180个意向行动。

https://www.jetbrains.com/help/clion/intention-actions.htmlhttps://www.jetbrains.com/help/resharper/Reference__Options__Languages__CPP__Context_Actions.html

与Clion相比->设置->编辑器->检查->C++,ReSharper->选项->代码检查->严重性具有大量的设置,包括关于"严重性"的整个部分;潜在的代码质量问题";。

然而,CLion的内置检查及其CLang Tidy集成通常与许多ReSharper选项重叠。根据我的经验,(我使用过这两种工具(CLion是全面/彻底的,ReSharper在代码检查领域的任何优势都很微弱。

同样值得注意的是,对同一解决方案进行ReSharper检查的速度比Clion的快。这两种工具都没有太长的检查时间,但ReSharper的灵活性是显而易见的。

我预计随着CLion的成熟,两者之间的任何差距都会随着时间的推移而缩小。

还要注意,决定不必是非此即彼。CLion可以用于整体工作,同时偶尔在Visual Studio中运行ReSharper C++完整解决方案检查。这可以通过CMake项目树轻松完成(例如(。