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网站上针对性能不佳的各种解决方案并没有解决问题。)
两者有什么不同? 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网站上针对性能不佳的各种解决方案并没有解决问题。)