(免费版?)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
开发的动力

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值