(免费版?)CLion Nova 强势登陆 C 和 C++ 开发领域

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、CLion Nova
  • 二、目标
  • 三、优势和改进
  • 四、显著差异
  • 五、如何安装 CLion Nova
  • 六、分享您的反馈意见
  • 总结


阿纳斯塔西娅-卡扎科娃
2023 年 11 月 9 日

前言

今天,我们宣布推出免费的 CLion 早期预览版,它使用 ReSharper C++/Rider C++ 语言引擎而非 CLion "传统 "引擎。预览版可通过我们专门的工具箱应用程序(Toolbox App)获取。2024 年的某个时候,根据收集到的反馈结果,CLion Nova 将并入 CLion。在此之前,您可以免费使用预览版,并在安装 CLion(经典版)时同时安装。
在这里插入图片描述


一、CLion Nova

JetBrains 的第一个 C++ 引擎是为 AppCode(我们为 iOS 和 macOS 开发人员设计的集成开发环境)设计的。它是 IntelliJ 平台的一部分,最初用 Java 编写,后来也用 Kotlin 编写。该引擎的方法和架构在基于 IntelliJ 的集成开发环境中为许多语言提供了很好的服务;但是,这种设计并不特别适合 C++ 语言。

为了更快地适应 C++ 的发展,并将引擎和集成开发环境进程分开,后来我们在 CLion 中添加了基于 clangd 的引擎。该引擎基于 clangd 的自定义分支,可检测任何警告和错误,并将其显示在编辑器中,还可建议快速修复方法,以及执行高亮、补全和某些导航操作。它还可用于数据流分析和 MISRA 检查等。与此同时,CLion 的 "传统 "引擎负责其他代码洞察功能,如重构。您可以在我们的 CLion 文档中查看详细的 “职责列表”。

Clangd 有很多优点,但在涉及整个项目的重构和操作时,它的帮助并不大。我们开发了基于 clangd 的索引器原型,甚至在其基础上实现了试验性的 “查找用法”(Find Usages),您可以在 CLion 中启用并评估该功能。

JetBrains 为 C++ 开发的另一个替代方案是 ReSharper C++ 和 Rider(用于 C++ 游戏开发)中使用的语言引擎。此外,还有一种通信协议可以让 Rider 等基于 IntelliJ 的集成开发环境与作为语言引擎的独立后端进程进行通信。现在,我们已将这一协议和原始引擎调整为适用于 CLion!

二、目标

在这个全新的实验性解决方案中,我们重点关注集成开发环境的响应速度、准确性和性能。我们有两个主要目标:

  • 解决因使用 "传统 "引擎而导致的 CLion 长期存在的性能和质量问题。
  • 统一我们所有 C++ 工具(即 CLion、Rider 和 ReSharper C++)的用户体验。

在这里插入图片描述

我们将新的实验预览版命名为 CLion Nova,而当前的 CLion 版本则是 CLion Classic。未来,我们计划将 CLion Nova 并入 CLion Classic。我们不打算推出新产品。

三、优势和改进

CLion Nova 仍然使用两种 C++ 语言引擎:基于 clangd 的引擎和 ReSharper C++/Rider 使用的引擎。CLion Classic 中的大部分功能在 CLion Nova 中应完全相同。

CLion Nova 在性能方面最显著的优势是

  • 更快的高亮速度,尤其是在代码增量更新的情况下
  • 反应更灵敏的用户界面
  • 查找使用速度更快
  • 重构时冻结和挂起的情况明显减少
  • 更快的测试索引

这种统一还为 CLion Nova 带来了一些 CLion Classic 功能集未包含的新功能:

  • 新的重构功能,如引入字段、引入命名空间别名、引入使用枚举和转换为作用域枚举。
  • 新的检查、快速修复和意图,如冗余限定符、用明确的类型声明替换 auto 以及 #include 指令排序。
  • 新的代码提示,如预处理指令提示和推送提示模式。

在这里插入图片描述

四、显著差异

与 CLion Classic 不同,CLion Nova 不使用 clangd 来实现代码补全或高亮等核心集成开发环境功能。不过,JetBrains 的 clangd fork 仍与新引擎一起运行,用于执行各种任务(ClangFormat、Clang-Tidy、MISRA 检查、数据流分析等)。

CLion Classic 用户在开始使用 CLion Nova 时,会有一些新的感觉:

  • 当用户键入时,集成开发环境的某些反应方式会有所不同。
  • 一些与代码洞察功能相关的 UI 元素和设置可能看起来不寻常,或出现在不熟悉的位置。
  • 一些与代码相关的设置在 CLion Nova 中可能有不同的默认值。首次启动时,CLion Nova 会从 CLion Classic 迁移您的某些项目和应用程序设置,但不是全部。
  • 在不同语言配置(如调试/发布)之间切换可能需要更多时间让代码洞察引擎跟上。此外,还没有为每个文件切换解析上下文的选项。
  • ReSharper C++ 仅支持 Windows,而 Rider 则支持跨平台。不过,ReSharper C++/Rider引擎可能无法像Windows环境那样无缝支持非Windows环境。如果你遇到这种情况,不妨向我们报告。

通过www.DeepL.com/Translator(免费版)翻译

此外,还列出了目前缺失的功能:

  • 工具链: 在 CLion 中设置远程工作有几种选择。CLion Nova 支持本地资源的远程工作,而瘦客户端(Gateway)的远程工作则尚未提供。
  • 语言 Objective-C 语言、CUDA(RSCPP-613、CPP-26144)和一些供应商特定的编译器扩展还不支持。
  • 目前不支持一些意图和快速修复,如简化语句(CPP-35879)。
  • 一些不太流行的重构也不支持。我们计划稍后重新引入 Move(CPP-35867)和 Inline Parameter 重构(CPP-35868)。
  • JetBrains 的 AI Assistant 尚不可用于 CLion Nova。

五、如何安装 CLion Nova

CLion Nova 是免费的早期预览版,只能通过工具箱应用程序获取:

在这里插入图片描述

CLion Nova 是早期访问预览版,这意味着需要登录,但在 CLion Nova 并入 CLion 之前,您可以免费使用。我们将定期发布 CLion Nova 的更新,这些更新也将通过工具箱应用程序提供。

与 CLion Classic 相比,CLion Nova 的用户界面响应速度更快,集成开发环境整体性能更好,功能质量更高,尤其是在 C++ 代码重构方面。现在就试用并告诉我们您的想法!

六、分享您的反馈意见

CLion Nova 标志着一次重大变革,需要在各种环境中进行详细测试。因此,我们向您–我们的用户–寻求帮助!鉴于您拥有各种环境和用例,我们希望您测试 CLion Nova 并与我们分享您的经验。

我们特别想了解您对以下方面的看法

  • 与 CLion Classic 相比,CLion Nova 中哪些功能在您的项目中效果更好?
  • 哪些因素会干扰您的工作流程并妨碍您使用 CLion Nova 中的 IDE?这些干扰是 CLion Nova 特有的,还是在 CLion Classic 中也存在?

使用 CLion Nova 一段时间后,您将被要求提交一份反馈表。如果您能抽出时间,我们将不胜感激!

在这里插入图片描述

当然,我们的问题跟踪器也可以接收您的反馈,只是不要忘记提及您的问题与 CLion Nova 有关,而不是与 CLion Classic 有关。


总结

您的 CLion 团队
JetBrains
开发的动力

猜你喜欢

转载自blog.csdn.net/weixin_46300916/article/details/134346423