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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

400G OSFP SR8光模块最新解决方案

数字化时代,意味着网络速度、能效和成本成为数据中心和通信网络关注的焦点。为了满足这些需求不断催生和进化新的产品,因此在这一背景下400G OSFP SR8光模块最新解决方案成为了很好的助力。该方案不仅提高了网络速度,还实现了节能降耗&#x…

ARM 基础学习记录 / ARM 裸机编程

汇编程序调用 C 程序详情 在 C 程序和 ARM 汇编程序之间相互调用时必须遵守 ATPCS 规则,其是基于 ARM 指令集和 THUMB 指令集过程调用的规范,规定了调用函数如何传递参数,被调用函数如何获取参数,以何种方式传递函数返回值。 寄存…

95. 费解的开关

题目 思路 因为最优解是每个灯只操作一次所以顺序无所谓只要确定了第一行后&#xff0c;下面都可以确定当前灯不亮就操作它下面的格子即可点亮它我觉得这种方法是唯一不会互相干扰的方法还是不太理解… 代码 #include <cstdio> #include <cmath> #include <c…

2023最新版本 从零基础入门C++与QT(学习笔记) -1- C++输入与输出

&#x1f38f;说在前面 &#x1f388;我预计是使用两个月的时间玩转C与QT &#x1f388;所以这是一篇学习笔记 &#x1f388;根据学习的效率可能提前完成学习,加油&#xff01;&#xff01;&#xff01; 输入(代码如下方代码块) &#x1f384;分析一下构成 &#x1f388;…

Rocksdb LSM Tree Compaction策略

RocksDB读写简介 直接画图说明。这张图取自Flink PMC大佬Stefan Richter在Flink Forward 2018演讲的PPT&#xff0c;笔者重画了一下。 RocksDB的写缓存&#xff08;即LSM树的最低一级&#xff09;名为memtable&#xff0c;对应HBase的MemStore&#xff1b;读缓存名为block cac…

CV计算机视觉每日开源代码Paper with code速览-2023.11.8

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构】&#xff08;WACV2024&#xff09;SBCFo…

Vue3-ref函数、reactive函数的响应式

Vue3-ref函数、reactive函数的响应式 在这之前&#xff0c;先讲Vue2的响应式处理 Vue2原本使用的是Object.defineProperty的响应式处理方式 methods方法中的this.name指的是vm.namereturn的name属性在通过this.name的间接调用时&#xff0c;通过了Object.defineProperty响应式…

火山引擎公共云·城市分享会:共享云经验,一起向未来

数智化时代的来临&#xff0c;不仅激发了行业对云计算的资源需求&#xff0c;也重构了云计算的技术架构及产品布局&#xff0c;给业务场景带来更多可能性&#xff0c;让云计算成为企业走向高效治理的一剂“良方”。随着业务的多样化、复杂化&#xff0c;企业应该如何借助云计算…

极兔面试:微服务爆炸,如何解决?Uber 是怎么解决2200个微服务爆炸的?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 谈谈你的DDD落地经验&#xff1f; 谈谈你对DDD的理解&#x…

【ubuntu 快速熟悉】

ubuntu 快速熟悉 2.ubuntu桌面管理器3.ubuntu常见文件夹说明4.ubuntu任务管理器4.1 gnome桌面的任务管理器4.2 实时监控GPU4.3 top 命令 5.ubuntu必备命令5.1 .deb文件5.2 查找命令5.2.1 find文件搜索5.2.2 which查找可执行文件的路径5.2.3 which的进阶&#xff0c;whereis5.2.…

Linux学习教程(第一章 简介)2

第一章 Linux简介 四、类UNIX系统是什么鬼? 《三、UNIX和Linux的区别》中讲到了 UNIX 系统的历史,UNIX 是操作系统的开山鼻祖,是操作系统的发源地,后来的 Windows 和 Linux 都参考了 UNIX。 有人说,这个世界上只有两种操作系统: UNIX 和类 UNIX 操作系统;其它操作系统…

解决:Git报错same change IDs

当使用git review的时候&#xff0c;review失败&#xff0c;报错multi commit …same change ids。。 错误&#xff1a; same Change-Id in multiple changes 意思是说&#xff0c;有多个commit记录的change ids是相同的&#xff0c;这change id概念出现在gerrit&#xff0…

数电发票接口服务商怎么选择?

自2023年11月1日起&#xff0c;除了港澳台、西藏外&#xff0c;全国范围内都开展了数电票开票试点&#xff0c;对于那些已经习惯使用传统税控开票接口的企业&#xff0c;如今在数电发票的试点下&#xff0c;原本的税控开票接口如同老去的侠客&#xff0c;曾经的荣光已经不再。在…

Zynq-Linux移植学习笔记之65- 国产ZYNQ在linux下usleep时间精度不准问题解决

1、背景介绍 采用复旦微的ZYNQ&#xff0c;跑linux操作系统&#xff0c;在应用程序中使用usleep进行延时时&#xff0c;发现存在10ms以下采用usleep试验都为10ms的情况 2、解决办法 使能设备树中的PS TTC设备&#xff0c;默认不是打开的 timere0024000 {compatible "s…

Android—幸运抽奖火箭发射倒计时(第六次作业)

Android—幸运抽奖&&点火发射&#xff08;第六次作业&#xff09; 创建项目 准备工作 修改按钮的颜色&#xff0c;如果不修改这行代码&#xff0c;那么后期给按钮添加background属性的时候&#xff0c;按钮并不会发生变化。 设置按钮的样式文件btn_press_blue.xml&am…

【原创分享】Mentor PADS将PCB封装直接添加到PCB的教程

一般&#xff0c;批量添加封装到PCB板上有以下方法&#xff1a; 第一步&#xff1a;点击菜单栏“ECO模式--添加元器件”如图&#xff0c;点击以后弹出如图界面。 1&#xff09;元件类型 PCB封装必须得添加完元件类型&#xff0c;才能通过ECO模式添加到PCB界面里面&#xff0c…

北斗卫星为油气行业发展注入新动力

北斗卫星为油气行业发展注入新动力 北斗卫星是中国自主研发的卫星导航系统&#xff0c;在全球范围内具有广泛应用。随着科技的进步和社会的发展&#xff0c;北斗卫星的智慧应用也逐渐在各行各业中崭露头角。特别是在油气行业&#xff0c;北斗卫星的智慧应用发挥了非常重要的作用…

elemetui 解决同个页面,同时使用多个el-table表格组件导致的数据错乱

1、背景 在一个页面中&#xff0c;使用了饿了么框架的3个el-table表格&#xff0c;3个表格平级&#xff0c;只不过是根据条件判断渲染哪个表格。本来以为使用v-if就可以隔离&#xff0c;没想到还是出现了问题&#xff0c;因为3个表格中有几列绑定的字段一模一样&#xff0c;导…

Python编程必备:itertools库功能全解析!

大家好&#xff0c;我是涛哥&#xff0c;今天为大家分享itertools库常用功能&#xff0c;并且为大家提供示例&#xff0c;全文5000字&#xff0c;大约阅读15分钟。 什么是 itertools&#xff1f; itertools是Python的一个内置模块&#xff0c;它提供了一系列用于迭代的函数&…

动态规划:918. 环形子数组的最大和

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《算法》 文章目录 前言一、题目解析二、解题思路解题思路状态表示状态转移方程初始化填表顺序返回值 三、代码实现总结 前言 本篇文章仅是作为小白的我的一些理解&#xff0c;&#xff0c;…
最新文章