ReSharper C++ 和 Visual Assist 有何不同?

How are ReSharper C++ and Visual Assist different?

两者有什么不同? JetBrains 列出了一些差异 here,但我听说列表中可能存在一些不准确之处。

我的回答并不完整,但我认为这是最突出的。

ReSharper C++

优点:

  • 有静态代码分析。我特别喜欢它标记潜在的“多余包含”,尽管这并不总是正确的。
  • 给人的印象是功能比 Visual Assist 更丰富。

缺点:

  • 比 Visual Assist 贵一倍,当您一年的维护期结束时,您只能保留当年年初的版本。
  • 在我看来,它与 CMake 结合使用效果不佳。我认为它总是在重新 运行 CMake 之后对代码进行完整的重新扫描。在重新扫描期间,并非所有文件的所有功能都可用,并且扫描速度减慢了我的系统。
  • 在工作中,我在虚拟机上开发,这里速度慢得无法忍受。在家里的本地机器上它更好,但在重新扫描期间仍然会变慢 Visual Studio。
  • 与 VSCommands 插件结合使用效果不佳,因此在使用 ReSharper C++ 时必须禁用 VSCommands。

视觉辅助 X

优点:

  • IMO 的自动代码完成明显优于 ReSharper C++。
  • 我更喜欢重构功能。不记得为什么...
  • ReSharper C++ 的一半价格,您可以在一年维护期结束后保留​​该版本。
  • IMO 对您的影响不如 ReSharper。但是 ReSharper 有很多设置,所以这个问题可能会被微调。

公平地说,我应该提到我购买了 Visual Assist 的许可证并且只使用了一个月的 ReSharper 试用版,所以我有点偏见。问题是,当我尝试 ReSharper 时,我已经知道 Visual Assist 的重要快捷方式,因此使用 ReSharper 感觉更慢且效率更低。我认真考虑过购买 ReSharper,但与 CMake 相结合的缓慢让我决定放弃它。我真正想念的 ReSharper 的唯一功能是我上面提到的“多余的包含”东西。

我大约半年前(2015 年底)尝试过 ReSharper。这两个程序都可以作为试用版免费使用一个月,所以您可以尝试更适合您的程序。

编辑:

  • 有关定价的信息可能不再准确。
  • 与此同时,购买 Visual Assist 密钥变得更加复杂,这有点烦人。现在必须有人确认您的购买,这可能需要下一个工作日,而且您还必须在另一个需要设置帐户的网站上注册该软件。
  • 我认为 Visual Assist 的试用期已缩短至数周。

免责声明:我是 ReSharper C++ 团队的一名开发人员。

由于 ReSharper C++ 和 VAX 在许多方面的功能相似,我将只强调重要的区别。

ReSharper C++

  • 提供即时代码分析,包括大量编译错误和代码质量检查,以及相应的快速修复和可配置的严重性。例如,如果包含是不必要的、变量未初始化、多态 class 具有 public 非虚拟析构函数或当函数可以创建 'static' 或 [=49 时,R++ 将发出警告=].
  • 可以对整个解决方案进行代码分析,因此R++也可以作为静态分析工具。
  • 具有更多代码生成功能(包括特殊成员函数的生成)和一组有助于理解和转换代码的上下文操作(例如替换宏调用或 'auto' 说明符)。
  • 包括一个可配置的代码格式化程序(VAX 使用内置 Visual Studio 格式化程序)。
  • 有一个支持 Google 测试和 Boost.Test 库的单元测试浏览器和运行器。
  • 基于精确的代码模型,可以正确处理模板实例化、预处理、依赖于上下文的解析和重载解析。

视觉辅助 X

  • 在大型项目上通常比 R++ 更快。
  • 具有调试辅助功能,包括内存查看工具 window 和调试步骤过滤器。
  • 支持 C++/CLI。

您还可以查看详细的逐项比较 page

Knitschi 关于定价的观点并不完全正确。比较例如美国价格,ReSharper C++(与 ReSharper Ultimate 相比仅支持 C++)的年度价格低于组织和个人客户的 VAX。 ReSharper C++ 也可免费供教师、学生和开源项目使用。

ReSharper C++ 正在积极开发中,每次发布都会获得许多新功能。如果您有任何问题或功能请求,请将它们报告给 issue tracker

老实说,我两者都用。 Visual Assist 可以很好地为事物着色和突出显示。 ReSharper 提供出色的元级分析。

当 ReSharper C++ 处于活动状态时,我在 Visual Studio Ultimate 中一直遇到打字缓慢的断断续续的问题。

使用 Visual Assist X,打字更流畅,总体性能也更好。我建议尝试一下。

(JetBrains网站上针对性能不佳的各种解决方案并没有解决问题。)