【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

C/C++ 开发工具 CLion 新版发布,10 大新功能抢先看

  • 2020-04-16
  • 本文字数:4120 字

    阅读完需:约 14 分钟

C/C++开发工具CLion新版发布,10大新功能抢先看


距上次更新 1 年后,Jetbrains 旗下的 C/C++开发工具 CLion 迎来新版——CLion 2020.1 。


据官方介绍,CLion 2020.1 针对许多 IDE 功能带来诸多改进,比如语言支持、 the debugger(调试器)、the formatter(格式化器)和 refactorings(重构)等。


“除 Windows 开发人员,嵌入式和 CUDA 项目的开发人员也能体会到 CLion 为他们带来的好处。”Jetbrains 写道。


CLion(30 天免费试用版)的下载地址

1.嵌入式开发

IAR 工具链

如果你在嵌入式项目中使用 IAR 编译器/工具链,那现在,你在 CLion 中也可以这样做了。收集编译器信息不会再出现失败,这意味着使用 IAR 工具链的项目将会成功加载,并在 CLion 中运行。


这有几点事项要注意:


  • MinGW 是必需的。

  • 关于在 IAR Embedded Workbench 使用 CMake 的一些技巧


PlatformIO

PlatformIO 是正在迅速普及的新一代生态系统。要在你的嵌入式项目里从中受益,请利用新的 PlatformIO for CLion 插件,该插件具有以下新功能:


  • 将 PlatformIO 项目类型添加到“New Project”(新建项目)向导中。

  • 生成基于 CMake 的相应 PlatformIO 项目。

  • 自动创建用于调试和上载的配置。

  • 允许在线通过 PIO Unified Debugger(统一调试器)在 CLion 中进行调试。


还有更多新功能,请查看官方文档了解更多细节。

2.CUDA 支持


代码解析和代码辅助

在 CUDA C 和 C++ 中的代码,包括所有 CUDA 特定的扩展,现在可以正确地解析并高亮显示了。这意味着代码导航、软件文档和其他代码辅助操作在 CUDA 代码中都能正常工作。此外,CLion 还可以完成内核调用的尖括号。


让我们从 GitHub 克隆 ClaraGenomicsAnalysis 项目,看看 CLion 在 CUDA 支持方面的能力。


新建项目向导

CLion 中的“New Project”(新建项目)向导已经更新,增加了创建 CUDA 项目的新选项:Library (库) 或 Executable (可执行文件)。选中该选项后,它将生成示例 CMakeLists.txt 和 main.cu 文件。


文件扩展名和 CMake 目标

在 “New C/C++ Source File”(新建 C/C++源文件)对话框中新增了 CUDA 文件扩展名的支持:.cu.cuh。这个对话框要更新的可能目标列表包括常规 CMake 和 CUDA 特定目标(使用 cuda_add_executablecuda_add_library 命令创建)。


此处了解更多信息。

3.Windows 环境下的开发

Clang-cl

我们现在已经可以在 Windows 上使用 CLion 中的 Clang-cl,支持 8.0 及以后的版本。


你能从 LLVM 网站或与 Visual Studio 工具一起安装。安装完成后,在 CLion 中选择 Visual Studio 工具链,然后在工具链设置中指向 clang-cl.exe


Visual Studio C++ 工具链的调试器

JetBrains 为 Visual Studio C++ 工具链开发的基于 LLDB 的调试器,现在它已经是该工具链的默认调试器。因此你可以马上开始使用。


注意,要明确启用对原生可视化工具的捆绑支持,应该这样开启:Settings(设置)| Build(构建)、Execution(执行)、Deployment(部署)| Debugger Data Views(调试器数据视图)| Enable NatVis renderers for LLDB(启用 LLDB 的 NatVis 渲染器)。

4.运行和调试配置

远程和嵌入式 GDB 的自定义目标

Remote GDB Server(远程 GDB 服务器)和 Embedded GDB Server (嵌入式 GDB 服务器)配置现在可用于自定义目标了。这些配置以前只适用于 CMake 目标,让你能从本地计算机上运行的 CLion 实例中调试远程主机或微控制器上的应用程序。


如果你已经创建了这些配置,CLion 2020.1 将在项目文件夹中的 projectFilesBackup 目录中存储以前的 Run/Debug Configuration(运行/调试配置)设置,并将就此通知你。


支持在运行/调试配置中使用宏和路径变量

现在,你能在 CMake、Custom Build(自定义构建)和 Gradle Native Applications(Gradle 本地应用)配置中的 Program Arguments(程序参数)和 Working Directory(工作目录)字段中使用 Path Variables(路径变量)和宏了。宏可以帮助你获取以下对象的值:


  • 当前 CMake 运行配置的构建目录。

  • 当前 CMake 运行配置的生成目录。

  • 项目文件目录。

  • 还有许多其他。


FilePrompt/Prompt 宏可以用来在运行/调试配置时显示文件选择对话框或字符串输入对话框。


Path Variable(路径变量)可以定义库的路径,该库在项目中广泛使用,但不在项目文件目录之中。


输入重定向

如果需要将输入从文件重定向到应用程序的 STDIN,现在可以这样做了。在配置中使用名为 Redirect input from 的新字段。输入:


  • 相对路径(CLion 将以 Working directory path(工作目录路径)为前缀)。

  • 绝对路径(将为远程配置重新映射)。

  • 或宏(如 FilePrompt)。

5.Clang 工具

Clangd 上的数据流分析

CLion 的Data Flow Analysis(DFA,数据流分析)能完成编译器通常不能做的事情:它分析数据如何流经代码,并根据结果检测潜在问题。它可以捕获始终为 false/true 的条件、无限循环、缺失的返回声明、无限递归,等等。在 2020.1 版本中,DFA 已经转移到基于 Clangd 的语言引擎上,在性能上变得更加准确,也更加精简。尽管这项工作仍在进展之中,但已经取得了一些好成果!


仅靠 Clangd 即可实现代码补全

默认情况下开启了一种新的模式,在这种模式下,基于 Clangd 的语言引擎完全提供完整结果。这种模式解决了当多个引擎的代码完成结果混合在一起时出现的优先级和排序问题。这种行为是由 Settings(设置)|Languages & Frameworks(语言和框架)|C/C++|Clangd 中的 Code Completion(代码完成)设置控制的。


这个新模式因几十种不同的修复和增强功能更准确、更强大。


此处了解更多信息。


ClangFormat

现在,当你第一次打开项目根目录中包含 .clang-format 的配置文件的项目时,CLion 将检测到该项目并自动切换到 ClangFormat。


如果你在没有 .clang-format 配置文件的项目上启用了 ClangFormat,CLion 会建议为你创建一个。


Clang-Tidy

当在项目中检测到 .clang-tidy 配置文件时,CLion 现在会自动关闭 Clang-Tidy 的 IDE 设置的使用。这一行为是由 Prefer.clang-tidy 文件控制的,而不是通过 IDE 设置中的 Settings(设置)|Editor(编辑器)|Inspections(检查)|C/C++|General(通用)|Clang-Tidy 控制。

6.代码格式化器和代码折叠

新的命名设置

结构成员字段和类成员字段现在有了单独的命名设置。在 Settings(设置)|Editor(编辑器)|Code Style(代码风格)|C/C++|Naming Convention (命名约定)中查看。


代码折叠

#pragma region#pragma endregion 可用于 CLion 的代码折叠。

7.重构更新


在调用 Change Signature 进行重构(Ctrl+F6)时,CLion 将会更新该函数的所有用法。Change Signature 对话框中的一个新的 Default value 字段提供了指定要在所有用法中使用的参数值的功能。保持为空,以便像以前一样使用默认值类型。


相同的逻辑和新的 Default value (默认值)字段应用于 Create Parameter From Usage(根据使用情况创建参数)的快速解决和 Add Parameter to Constructor(向构造函数中添加参数)的意图。

8.编辑器

快速文档

Quick Documentation(快速文档)——一种通用的工具,可以预览文档,并获取有关函数签名、推断类型和宏替换的信息。它可以通过 Settings(设置)|Editor(编辑器)|Code Editing(代码编辑)中的“Show quick documentation on mouse move”(鼠标悬停显示快速文档)的设置进行控制。


JetBrains Mono 和 IntelliJ Light

编辑器中的默认字体已更改为 JetBrains Mono,这是 JetBrains 创建的一种新的开源字体。它的设计是为了让阅读代码更容易。


IntelliJ Light,一种新的默认 light 主题,现在是所有不同操作系统的标准主题。如果你想选择一个非默认的主题,请使用 View(视图)|Quick Switch Scheme(快速切换组合)|Theme to select a non-default theme(选择非默认主题的主题)来选择非默认主题。

拆分终端会话

使用 CLion 2020.1,你可以垂直或水平拆分终端会话,这样就可以并排运行这些终端会话。你可以从终端调用上下文菜单来创建、导航和关闭拆分的终端会话。

9.版本控制

新建提交工具窗口

更新后的工具窗口为修改后的文件列表和差异提供了更多的空间,还允许你在提交准备就绪时,将更改添加到提交中,迭代地编写提交消息,并选择将哪些分段更改进入哪个提交中。


新用户默认启用的是新的用户界面;而现有用户可以在 Settings(设置)|Version Control(版本控制)|Commit(提交)中切换到新的用户界面。

从此处以交互方式进行变基(rebase)提交

一个更新的、真正的交互式对话框使以下操作成为可能:


  • 选择要对分支中的每个提交执行的操作。

  • 检查显示已应用哪些操作的图表。

  • 查看提交详细信息。

  • 查看差异列表,并在必要时检查或重置更改。

从 IDE 中安装 Git

Version Control(版本控制)工具窗口现在称为 Git 工具窗口,或者 Subversion/Mercurial/Perforce(如果你使用这些窗口中任何一种而不是 Git 的话)。


你不再需要手动预装 Git 了!当你使用 Git 打开一个项目或从 VCS 导入一个项目时,如果你的机器上没有 Git 的话,CLion 会提供下载并安装 Git。

10.Rust 插件更新


通过对 LLDB 支持的改进, IntelliJ Rust 现在可以正确地渲染枚举类型和原始类型(primitive types),它还可以在调用堆栈中显示符号重组(demangle)的函数名。


该插件的另一个主要更新是 REPL 集成。从 Tools(工具)|Rust REPL调用控制台,并将其用于原型设计和逐行检查代码。该集成提供了语法高亮显示和代码完成功能,以及一些方面的控制台操作:命令历史记录、软换行、快速滚动到末尾等等。


在语言支持方面,IntelliJ Rust 现在可以处理类型别名的 impl 块。考虑到性能,我们只对别名数量有限的类型启用了这个功能。


其他增强功能还包括高亮显示未使用的本地变量、cfg 属性注重中的修复以及新的 Lift 返回检查。

其他改进

  • 现在,所有远程配置都可以使用通用和统一的 SSH Configurations(SSH 配置)用户界面了。无论新的 SSH 配置文件源自何处(远程工具链设置或远程 GDB 服务器配置),它都会在 Settings(设置)|Tools(工具)|SSH Configurations(SSH 配置) 有一个条目。

  • 如果你只想专注于源代码,你可以选择一种新的 Zen(禅宗)模式,它将无干扰模式与全屏模式结合在一起。要启用这个模式,请使用 View(视图)|Appearance(外观)|Enter Zen Mode(进入禅宗模式)。


英文原文:


What’s New in CLion


2020-04-16 22:157160
用户头像

发布了 366 篇内容, 共 167.4 次阅读, 收获喜欢 936 次。

关注

评论 1 条评论

发布
用户头像
点赞
2020-04-22 12:33
回复
没有更多了
发现更多内容

2023年中国数字化活动行业专题报告

易观分析

数字经济 产业数字化

信息论绪论

timerring

信息论 信息论与编码

2023年1月国产数据库大事记-墨天轮

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

Innodb 的幻读问题

想要飞的猪

innodb 隔离级别 幻读

一文盘点,ZBC的应用场景与通缩场景

西柚子

线下java培训机构哪个比较好

小谷哥

“唤醒”闲物、“童”心共享

最新动态

StarRocks技术内幕 | 资源隔离原理解析

StarRocks

数据库 开源 资源隔离

前端培训机构怎么选择

小谷哥

提速还能不掉点!深度解析 MegEngine 4 bits 量化开源实现

MegEngineBot

深度学习 开源 MegEngine CUDA int4

java技术培训机构哪里好

小谷哥

【漏洞真实影响分析】Apache Kafka Connect 模块JNDI注入(CVE-2023-25194)

墨菲安全

SCA 代码安全检测 软件供应安全

前端培训机构哪家比较适合学习

小谷哥

物联网首选协议,关于MQTT你需要了解这些

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 消息传输

一图读懂 | 2023年中国产业数字化十大趋势

易观分析

数字经济 产业数字化

前端开发如何选择培训机构

小谷哥

文盘Rust -- 领域交互模式如何实现

京东科技开发者

rust 逻辑 交互 企业号 2 月 PK 榜 interactcli-rs

日日顺供应链|想要看清供应链发展趋势,先回答这三个问题!

联营汇聚

低代码开发平台 让数据应用不再复杂

力软低代码开发平台

MQTT X 1.9.1发布:资源消耗降低80%,稳定性大幅提升

EMQ映云科技

物联网 IoT mqtt 版本发布 企业号 2 月 PK 榜

GPT发展史

鼎道智联

openai

ChatGPT是什么?怎么用?如何提效?怎么赚钱变现?

王中阳Go

深度思考 高效工作 学习方法 AI ChatGPT

ChatGPT:“Hello Alluxio,我为你写了一首诗!”

Alluxio

presto 分布式, Alluxio 大数据 开源 ChatGPT

促进关键软件高层次人才培养:平凯星辰与华东师范大学签订联合博士培养合作协议

PingCAP

教育

什么是极速文件传输,极速文件传输如何进行大文件传输

镭速

瓴羊Quick BI报表分析工具,专业数据分析人员的“神辅助”

对不起该用户已成仙‖

Multicoin Capital资本2023展望

股市老人

flutter系列之:使用SliverList和SliverGird

程序那些事

flutter 架构 大前端 程序那些事

MQTT协议快速体验

EMQ映云科技

开发 物联网 IoT mqtt 企业号 2 月 PK 榜

某财税集团:使用进步的技术,对业务降本提效

OceanBase 数据库

数据库 oceanbase

BATMAN:将双边注意力用于视频对象分割

Zilliz

计算机视觉

C/C++开发工具CLion新版发布,10大新功能抢先看_文化 & 方法_Jetbrains官方博客_InfoQ精选文章