CLion Nova 强势登陆 C 和 C++ 开发领域,使用 ReSharper C++/Rider C++ 语言引擎!
摘要
最近,我们宣布推出 CLion 的一个免费早期预览版,它使用 ReSharper C++/Rider C++ 语言引擎而不是 CLion 的“旧版”引擎。预览版可以通过我们的专属 Toolbox App 源获取。2024 年,根据反馈结果,CLion Nova 将合并到 CLion 中。在此之前,预览版可免费使用,并与通常的 CLion (Classic) 并行安装。
史前时期
JetBrains 的第一个 C++ 引擎为 AppCode 而设计,这是我们面向 iOS 和 macOS 开发者提供的 IDE。它为 IntelliJ 平台的一部分,最初使用 Java 编写,后来也使用 Kotlin 编写。引擎的方式和架构可以很好地服务于基于 IntelliJ 的 IDE 中的许多语言,然而,这种设计并不是特别适合 C++ 语言。
为了更快地与 C++ 的发展保持一致,并分离引擎和 IDE 进程,基于 clangd 的引擎后来被添加到 CLion 中。这个引擎基于我们的 clangd 自定义分支,可以检测警告和错误并在编辑器中显示,建议快速修复,以及执行高亮显示、补全和特定导航操作。它也用于数据流分析和 MISRA 检查等。同时,CLion 的“旧版”引擎负责其他代码洞察功能,例如重构。我们的 CLion 文档提供了详细的“职责列表”。
clangd 有很多优势,但对于项目级重构和操作,它的作用不是很大。我们设计了一个基于 clangd 的索引器原型,甚至在它之上实现了一个实验性 Find Usages(查找用法),您可以在 CLion 中启用和评估该功能。
JetBrains 为 C++ 开发的另一个替代方案是 ReSharper C++ 和 Rider(用于 C++ 游戏开发)中使用的语言引擎。还有一种通信协议,使 Rider 等基于 IntelliJ 的 IDE 能够与充当语言引擎的独立后端进程进行通信。我们现在也已将此协议和原始引擎适配到 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 在性能方面的显著优势:
-
更快的高亮显示速度,特别是对于增量代码更新
-
响应更快的 UI
-
更快的 Find Usages(查找用法)
-
重构中的冻结和挂起显著减少
-
更快的测试索引
这种统一还为 CLion Nova 带来了 CLion Classic 功能集中不存在的新功能:
-
新的重构,例如 Introduce Field(引入字段)、Introduce Namespace Alias(引入命名空间别名)、Introduce using Enumeration(引入 using 枚举),以及 Convert to Scoped Enumeration(转换为作用域枚举)。
-
新的检查、快速修复和意图,例如冗余限定符、将
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 环境。如果您遇到这样的情况,请向我们报告。
当前缺少的功能的列表:
-
工具链:在 CLion 中,可以通过多个选项设置远程工作。CLion Nova 支持使用本地源进行远程工作,但使用瘦客户端(Gateway)的远程工作尚不可用。
-
语言:Objective-C 语言、CUDA(RSCPP-613、CPP-26144)和某些针对特定供应商的编译器扩展程序还不受支持。
-
Simplify statement(简化语句)等意图和快速修复目前还不受支持 (CPP-35879)。
-
一些不太热门的重构也未加入。我们计划以后重新引入 Move(移动)(CPP-35867) 和 Inline Parameter(内联形参)重构 (CPP-35868)。
-
JetBrains 的 AI Assistant 尚不适用于 CLion Nova。
如何安装 CLion Nova
CLion Nova 是免费的早期预览版,只能通过 Toolbox App 获取:
CLion Nova 是抢先体验预览版,因此需要登录,但您可以免费使用,直到 CLion Nova 合并到 CLion 中。我们将定期通过 Toolbox App 发布 CLion Nova 更新。
与 CLion Classic 相比,CLion Nova 具有响应更快的 UI、更好的整体 IDE 性能和更高的功能质量,特别是 C++ 代码重构。立即试用,并告诉我们您的想法!
分享您的反馈
CLion Nova 标志着一个巨大变化,需要在多种环境中接受细致的测试。因此,我们需要您的帮助!鉴于您有多种环境和用例,我们希望您测试 CLion Nova 并与我们分享您的体验。
我们特别感兴趣的是您对以下问题的想法:
-
与 CLion Classic 相比,什么在 CLion Nova 中对您的项目效果更好?
-
什么中断了您的工作流并阻止您在 CLion Nova 中使用 IDE?这些中断是 CLion Nova 特有的,还是 CLion Classic 中也存在?
使用 CLion Nova 一段时间后,我们会请求您提交反馈表。希望您能抽出时间填写并提交反馈表!
当然,我们的问题跟踪器也可以接收反馈,只是请注明您的问题与 CLion Nova 而不是 CLion Classic 有关。
通过 Toolbox App 获取
您的 CLion 团队
JetBrains
The Drive to Develop
本博文英文原作者:Anastasia Kazakova
CLion 相关阅读
⏬ 戳「阅读原文」了解更多
本文分享自微信公众号 - JetBrains(JetBrainsChina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
FFA 2023|第六届 Flink Forward Asia 峰会议程正式上线!
今年 Flink Forward Asia(以下简称 FFA ) 重新回归线下,将于 12 月 8 - 9 日在北京望京凯悦酒店举办。Flink Forward Asia 2023大会议程现已正式上线! Flink Forward 是由 Apache 官方授权的 Apache Flink 社区官方技术大会,作为最受 Apache Flink 社区开发者期盼的年度峰会之一,FFA 2023 将持续集结行业最佳实践以及 Flink 最新技术动态,是中国 Flink 开发者和使用者最不可错过的的技术盛宴。 延续 FFA 惯例,峰会所有议题均为开放征集而来,并由专业的议题评选委员会评分筛选,确保内容代表行业领先水平,为开发者们输出更加优质的干货,并为各企业提供可借鉴的实践经验。今年,峰会评审出 70+ 演讲议题,这些议题被划分为核心技术、行业实践、生产实践、平台建设、流式湖仓、云原生等多个时下热门方向,届时将由阿里云智能、蚂蚁金服、字节跳动、快手、美团、芒果 TV、华为、美的、Shopee、米哈游、腾讯、同程旅行、汽车之家、网易等全球 30+ 各行业一线厂商,全方位解析 Apache Flin...
- 下一篇
FFmpeg 6.1 发布,7.0时代即将来临
11月10日,FFmpeg 6.1正式发布。 FFmpeg 发布版本的时候,按照惯例,会选择一些物理学家名字作为代号,这一新版本代号为“Heaviside”。主要为纪念伟大的英国数学家和物理学家奥利弗·黑维塞(Oliver Heaviside)。 奥利弗·黑维塞(Oliver Heaviside)自学成才,没有系统经历过高等教育,但在物理、数学、工程领域成果非凡,其名言一直为人所津津乐道。 “数学分2种,严格的和物理直观化的。前者的范围窄;后者粗犷而广泛。拘泥于公式的严格证明只会令绝大多数的数学物理探究止步不前。难道我要在完全理解消化反应的所有机理以前,拒绝进食吗?” Mathematics is of two kinds, Rigorous and Physical. The former is Narrow: the latter Bold and Broad. To have to stop to formulate rigorous demonstrations would put a stop to most physico-mathematical inquiries. A...
相关文章
文章评论
共有0条评论来说两句吧...