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

news2024/10/7 8:21:14

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、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
开发的动力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1196346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux 中关于文件和文件夹的常用命令

Linux 中关于文件和文件夹的常用命令 讲解 Linux 常用命令的文章已经非常多了,而且有的文章也说的非常清楚详细。我们可能不会记住所有的命令,但对于工作中常用的命令应该熟记于心,最好的方式就是多多实践。 我们可以直接或者通过虚机的方式…

24 _ 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?

上一节我们学习了树、二叉树以及二叉树的遍历,今天我们再来学习一种特殊的二叉树,二叉查找树。二叉查找树最大的特点就是,支持动态数据集合的快速插入、删除、查找操作。 我们之前说过,散列表也是支持这些操作的,并且散列表的这些操作比二叉查找树更高效,时间复杂度是O(…

Leetcode-101 对称二叉树

递归:主要思想:对称二叉树是左子树的左孩子右子树的右孩子,左子树的右孩子右子树的左孩子,递归实现思路较为清晰 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* Tr…

同城跑腿服务预约小程序的作用如何

无论是互联网服务化加快还是前几年疫情冲击,在同城生活服务场景中出现了很多商机,如外卖跑腿、校园跑腿、代买代送等,无论公司还是个人都借势不断提升自己品牌的影响力,并且依赖朋友圈不断提升生意营收。 同城跑腿品牌不少&#…

跨域:利用iframe实现跨域DOM互访的四种方式

注:跨域的知识点详见:跨域相关知识点 目录 实验验证环境配置: 1、利用document.domain降域 方法1: 方法2: 2、利用location.hash 3、利用window.name 4、利用postMessage(最推荐) 使用postmessage实现跨域访问…

linux发展史(必看系列)

Linux介绍: Linux,Linux Is Not UniX 的首字母缩写。是一款开源的,能自由传播的类Unix的操作系统,其内核由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到…

表格图片太大怎么批量压缩?最简单的批量压缩图片

我们在给表格添加图片的时候,如果体积太大,就会导致图片导入不进去,所以在使用之前最好是选择将图片压缩,有的小伙伴会说几张图片处理起来比较方便,如果是大量的话,就比较废时间了;所以今天就特…

贪心

【深基12.例1】部分背包问题 题目描述 阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有 N ( N ≤ 100 ) N(N \le 100) N(N≤100) 堆金币,第 i i i 堆金币的总重量和总价值分别是 m i , v i ( 1 ≤ m i , v i ≤ 100 ) m_i,v_i(1\le m_i,v_i \le 100) mi​,vi​(…

HCIA-hybrid经典小实验

hybrid经典小实验 实验拓扑配置实现SW1SW2 配置验证PC1-PC3 不能通信PC1-PC2 正常通信其他自行测试 实验拓扑 配置实现 SW1 sysname SW1 # undo info-center enable # vlan batch 10 20 30 # interface Ethernet0/0/1 //接口发送该vlan-id的数据帧时,不剥离帧中的…

科研检测机构服务预约小程序的效果如何

科研检测机构涵盖的业务比较广,比如水质检测、农产品检测、食品检测等,对相关从业者来说,可能需要频繁使用这些业务,或者个人偶尔需要一些东西检测。 对用户和检测机构来说,由于行业的特殊性,在实际发展中…

网络安全基础之php开发文件上传的实现

前言 php是网络安全学习里必不可少的一环,简单理解php的开发环节能更好的帮助我们去学习php以及其他语言的web漏洞原理 正文 在正常的开发中,文件的功能是必不可少,比如我们在论坛的头像想更改时就涉及到文件的上传等等文件功能。但也会出…

山西电力市场日前价格预测【2023-11-12】

日前价格预测 预测说明: 如上图所示,预测明日(2023-11-12)山西电力市场全天平均日前电价为224.59元/MWh。其中,最高日前电价为434.30元/MWh,预计出现在18:00。最低日前电价为0.00元/MWh,预计出…

【代码随想录】算法训练计划17

1、 110.平衡二叉树 题目: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 思路: 经典后序遍历,感…

Ansible自动化运维工具及模块

目录 一、Ansible 1.ansible简介 2、ansible的特性 二、ansible的部署 1)管理端安装ansible 2)配置主机清单 3)配置密钥对验证 三、ansible命令块模块 1)command模块 2)shell模块 3)cron模块 4)…

软件测试之Web自动化测试,Web自动化测试的详细流程和步骤

一、什么是web自动化测试 自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目…

无缝集成GORM与Go Web框架

探索GORM与流行的Go Web框架之间的和谐集成,以实现高效的数据管理 高效的数据管理是每个成功的Web应用程序的基础。GORM,多才多艺的Go对象关系映射库,与流行的Go Web框架非常搭配,提供了无缝集成,简化了数据交互。本指…

C++使用线程池模拟异步事件处理机制

在C很多框架中都有异步事件处理机制,这导致我们在看源码时经常很疑惑,难以理解,而其中包含的编程套路可能是一些成熟的技术,只是我们不熟悉,比如WebRTC中类似于Qt的信号槽机制,线程事件处理, 或者使用系统异…

玩转Linux基本指令

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:牢记Linux的基本指令。 > 毒鸡汤:挫…

2023 年最好的 Android 系统修复/刷机应用程序和软件

任何 Android 设备要顺利运行,其操作系统必须运行良好。幸运的是,对于大多数 Android 用户来说,这是不间断的。设备运行良好,打电话、共享文档等都没有问题。尽管如此,Android 操作系统可能会停止运行。这可能是由于特…

Postman for Mac(HTTP请求发送调试工具)v10.18.10官方版

Postman for mac是一个提供在MAC设备上功能强大的开发,监控和测试API的绝佳工具。非常适合开发人员去使用。此版本通过Interceptor添加了对请求捕获的支持,修正了使用上下文菜单操作未复制响应正文的问题和预请求脚本的垂直滚动条与自动完成下拉列表重叠…