IT 之家 11 月 13 日消息,JetBrains 公司推出新的 C 语言和 C++ 开发 IDE —— CLion Nova,使用 ReSharper C++/Rider C++ 语言引擎而不是原版 CLion“旧版”引擎开发。
CLion Nova 预览版现可通过官方 Toolbox 应用获取。2024 年的某个时候,根据收集的反馈结果,CLion Nova 将合并到 CLion。在此之前,预览版本将免费使用,并且可以与原版 CLion 并行安装,IT 之家小伙伴可以下载体验。
据介绍,JetBrains 的第一个 C++ 引擎是为 AppCode(为 iOS 和 macOS 开发人员提供的 IDE)设计的。它是 IntelliJ 平台的一部分,最初用 Java 编写,后来也用 Kotlin 编写。该引擎的方法和架构可以很好地服务于基于 IntelliJ 的 IDE 中的多种语言;然而,事实证明这种设计并不最适合 C++ 语言。
为了更快地适应 C++ 的发展并分离引擎和 IDE 进程,后来在 CLion 中添加了基于 clangd 的引擎。该引擎基于 clangd 自定义分支构建,可检测任何警告和错误,在编辑器中显示并建议快速修复,以及执行突出显示、完成和某些导航操作。它还用于数据流分析和 MISRA 检查等。与此同时,CLion 的“旧版”引擎负责其他代码检查功能。
clangd 有很多优点,但是当涉及到项目范围的重构和操作时,它的帮助不是很大。JetBrains 为 C++ 开发的另一个替代方案是 ReSharper C++ 和 Rider(用于 C++ 游戏开发)中使用的语言引擎。还有一个通信协议,使基于 IntelliJ 的 IDE(如 Rider)能够与充当语言引擎的独立后端进程进行通信。官方现在已将此协议和原始引擎改编为 CLion。
在这个新的实验性解决方案中,官方重点关注 IDE 的响应能力、准确性和性能,有两个主要目标:
解决 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 功能集中未包含的新功能:
新的重构,例如引入字段、引入命名空间别名、引入 using 枚举以及转换为作用域枚举。
新的检查、快速修复和意图,例如冗余限定符、用显式类型声明替换 auto 以及 #include 指令的排序。
新的代码提示,例如预处理指令提示和 Push-to-Hint 模式。
与 CLion Classic 不同,CLion Nova 不使用 clangd 来实现代码完成或突出显示等核心 IDE 功能。然而,JetBrains 的 clangd 分支仍然与新引擎一起运行,以执行各种任务(ClangFormat、Clang-Tidy、MISRA 检查、数据流分析等)。
当 CLion Classic 用户开始使用 CLion Nova 时,会有一些新的体验变化:
当用户输入时 IDE 的一些反应方式是不同的。
与代码检查功能相关的某些 UI 元素和设置可能看起来位于不熟悉的位置。
某些与代码相关的设置在 CLion Nova 中可能具有不同的默认值。首次启动时,CLion Nova 将从 CLion Classic 迁移一些按项目和按应用程序的设置,但不是全部。
在不同语言配置(即调试 / 发布)之间切换,可能需要更多时间让代码检查引擎跟上。也没有选项可以切换每个文件的解析上下文。
ReSharper C++ 仅适用于 Windows,而 Rider 是跨平台的。尽管如此,ReSharper C++/Rider 引擎可能无法像 Windows 环境那样无缝地支持非 Windows 环境。