CLion新闻:2020.1版本,五年的IDE和在线问答

哈Ha!

今天我想告诉大家的是,甚至很难选择从哪里开始。因此,首先,我将简要介绍所有最重要的内容:

  1. CLion昨天5岁!为了纪念这个假期,我们发布了一个小视频故事,一段奇特的回忆以及一个关于这五年来一切发展的有趣故事。立即用英语警告这个故事:


  2. 昨天,该产品的第一个重大发布发生在今年-CLion 2020.1在其中,我们支持CUDA方言,将Dataflow Analysis重写为Clang,教导IDE与Clang-cl和IAR编译器一起使用,并且还进行了许多其他改进和更正。
  3. 在过去的几个月中,我们的团队感到非常难过,没有召开会议和相关的展览,在这里我们总是很高兴能成为公司的展台,并与我们的用户和整个社区进行很多交流。因此,我们决定与团队CLon一起组织在线问答环节-CLion Ask Me Anything(AMA)环节会议将于5月7日实时举行,需要预先预约。加入并询问有关产品的任何问题!

现在让我们更多地讨论所有这些事件。

CLion-五!


孩子长大总是令人惊讶,对于父母来说往往是出乎意料的。这个产品的故事也是如此-似乎就在昨天我们发布了早期版本,并且倒数了发布1.0,而今天我们已经在庆祝一个约会。现在,CLion每月有20万用户,其中包括来自宝马,NASA,腾讯,特斯拉等公司的团队,当然还有与Google和Android Studio的合作。

我们很高兴为世界各地的许多学生提供支持,他们与CLion一起迈出了软件开发的第一步。很高兴知道2019年末的三分之一ICPC团队也使用了CLion!

ICPC工具最终

每个新版本的激动人心,对广大用户的责任,出色工作的团队团结精神-淹没了我们,我们很高兴与整个Habr社区共享我们的第一个小周年纪念!希望您喜欢这部电影;)

CLion 2020.1


它可能不是过去五年中规模最大的,但我们昨天确实发布了重要的版本。让我们依次讨论最重要的变化:

  • CUDA方言支持。
  • 对于嵌入式开发人员,IAR编译器支持和用于与PlatformIO集成的插件。
  • 更新了与​​Clang工具的集成-将DFA迁移到Clangd,改进了自动完成功能,并与Clang-Tidy和ClangFormat紧密合作。
  • 对于Windows上的开发人员-支持Clang-cl编译器和默认调试器。
  • 更改签名重构中的默认参数值。
  • 更方便的启动和调试配置,包括输入重定向和IDE宏支持。
  • 格式化程序更新,编辑器改进等。

库达


CLion现在支持CUDA C / C ++方言。支持包括:

  • 正确的代码解析器(排除“红色”代码和代码分析器的错误操作);
  • 突出显示和各种智能操作,例如导航和查看文档;
    CUDA快速文档
  • 更新了用于创建新项目的向导-现在它包括CUDA项目的模板;

    CUDA新项目
  • 支持CUDA文件扩展名(.cu / .cuh);
  • CUDA的特殊CMake目标-添加新文件的对话框现在不仅可以将其添加到由常规CMake命令创建的合适目标,而且还可以将其添加到CUDA(cuda_add_executable/ cuda_add_library);

    CUDA添加到目标
  • 甚至自动完成内核调用的尖括号:

    CUDA完成

注意:对于测试和屏幕截图,此CUDA项目与GitHub:ClaraGenomicsAnalysis一起使用

我们被问到为什么我们如此专注于CUDA,而不是Qt等其他特定领域。简而言之,当然,我们希望在我们的IDE中支持所有类型的C / C ++项目。但是在资源有限的情况下,您必须做出选择,而要专注于支持最通用的功能。方言(例如CUDA),如果不“开箱即用”,则会导致红色代码,代码分析器错误以及IDE基本功能的其他问题。与Qt不同,Qt的通用解析器处理代码,但缺少一些特定功能。

对于嵌入式开发人员


我们将继续支持嵌入式系统开发人员。通过与IAR Systems AB的合作,我们能够获得合作伙伴许可,并将IAR编译器支持添加到CLion。以前,我们无法从编译器正确读取信息,并且此类项目无法在CLion中正确加载。现在一切正常!

Iar编译器

值得注意的是,要使用编译器,您需要使用MinGW工具链。在这里,你可以找到关于如何使用CMake的与IAR嵌入式平台的一些技巧。

我们将继续与IAR Systems AB合作,希望有一天CLion也将为其调试器提供支持。

从第一个CLion版本开始,我们就与PlatformIO的创建者进行了交谈,一个用于快速启动嵌入式系统项目的独特生态系统。例如,她帮助许多人在Arduino上启动了第一个项目。对于2020.1版本,我们收集了一个非常基本但有用的CLion插件PlatformIO。他最重要的机会是为基于CMake的PlatformIO创建一个项目,只需在“创建新项目”向导中选择这种类型的项目:

PlatformIO插件

该插件会自动创建特定于PlatformIO的启动和调试配置,还允许您直接从PIO Unified Debugger进行调试里昂可以在官方文档中找到更多信息。尝试并写下您进一步开发的愿望-我们现在想知道在哪里以及如何进一步开发此插件。

更新了Clang工具集成


如您所知,我们正在积极地将越来越多的功能移植到基于Clangd的语言引擎中。首先,要快速获得对新语言功能的支持并为其调整IDE操作,其次,在某些情况下要提高编辑器的性能(不幸的是,Clangd并非如此,它是一种通用工具)。

在2020.1版本中,我们将大量时间用于基于Clangd的自动完成修复程序(它出现在版本2019.3中)。并且,在确定此方法的效果很好之后,他们打开了默认模式,在该模式下,自动完成选项完全取自Clangd。您可以在设置中启用混合操作模式:

lang完成

但是,我们不建议您在没有充分理由的情况下执行此操作,因为将两个不同提供程序的结果相结合会导致优先级问题。此外,从我们的测量来看,基于Clangd的新自动完成功能并不慢,但通常比内置功能快。

Clangd在此版本中还移动了数据流分析(DFA)。该分析器值得单独写一篇文章,因为它可以并且可以执行编译器通常不做的事情(主要是因为他们不需要它,尽管理论上可以在其一边进行复制)-分析数据如何沿着控制流程图移动,基于此知识,查找潜在的错误。例如,始终为真或假的条件,无限递归和循环,缺少返回表达式,未使用的值,参数和局部变量:

DFA始终为真

现在,这一切都适用于Clangd。我们希望这将改善您项目上代码分析的性能。不幸的是,以前,我们经常不得不建议用户关闭DFA分析,以专门提高编辑器性能。如果是这种情况,建议您重新打开分析仪。我们将在我们的技术支持和跟踪器中等待您的反馈

最重要的是,Clang工具应注意对Clang-Tidy和ClangFormat的支持方面的改进:

  • 在项目中找到.clang-tidy配置文件时,CLion会自动禁用IDE中的Clang-Tidy设置,并切换为使用此配置文件。该行为由定制驱动。
  • .clang-format CLion ClangFormat . ClangFormat, , CLion , .

Windows


如果在Linux和macOS上选择CLion工具链非常简单(我们采用GCC或Clang),那么在Windows上有很多不容易弄清的选项:Cygwin,MinGW / Mingw-w64,WSL,Visual Studio。同时,每个工具链中通常使用不同的编译器。关于Windows在Windows上使用Clang的可能性,我们已经问了很长时间。在CLion 2020.1中,可以使用Clang-cl(从LLVM官方网站或与Visual Studio工具一起使用)并在Visual Studio工具链中使用它:

lang

顺便说一句,您是否注意到此对话框中默认选择的调试器?默认情况下,新版本中包含我们团队正在开发并于去年推出的基于LLDB的Microsoft Visual C ++工具链调试器!但是,如果您还想使用本机可视化工具的支持,则仍需要在以下设置中显式启用它:构建,执行,部署| 调试器数据视图| 为LLDB启用NatVis渲染器。

重构变更签名


在CLion的许多重构中,“ 更改签名”非常突出(在Windows和Linux上为Ctrl + F6,在macOS上为⌘F6)。它允许您更改函数名称,返回类型,参数列表。同时,IDE会更新该函数的所有用法,以保留代码的正确性。但是,如果您添加新参数怎么办?以前,CLion在所有用途(如果有)中都使用type的默认值- 0数字,nullptr指针。现在,从版本2020.1开始,可以在重构对话框中指定CLion替换为直接使用该函数的值:

变更签名
如果不指定任何内容,则行为将与以前相同。

启动和调试配置


CLion中启动和调试配置的许多小改进使它们更加可用。

首先,远程GDB服务器嵌入式GDB服务器配置现在可用于自定义目标,而不仅仅是CMake目标。因此,现在不仅在基于CMake的项目中,而且在配置了自定义目标的任何其他类型的项目中,都可以在远程机器或微控制器上进行调试(通过为项目指定构建和清除命令)。

其次,对于CMake,自定义构建和Gradle本机应用程序等配置,现在可以使用宏和路径变量。在他们的帮助下,您可以访问许多有用的值:

IDE宏

最后,重定向程序输入的选项已出现在这些类型的配置中。与Prompt / FilePrompt宏结合使用,它不仅允许将输入从文件重定向到程序,而且还允许在配置开始时显示一个对话框,用于选择要输入的文件:

输入重定向

格式化程序更新,编辑器改进等


值得一提的是,在不同子系统中还有一些小改进:

  • 结构字段和类字段的单独命名设置。
  • 能够折叠用#pragma region/ 突出显示的代码块#pragma endregion
  • 现在,不仅可以通过快捷方式调用文档查看窗口,还可以通过将鼠标悬停在感兴趣的符号上来轻松查看。
  • IDE中的默认字体现在为JetBrains Mono,这JetBrains的一种新的等宽字体,专门为开发人员设计,以帮助优化代码的可读性。
  • 现在,所有三个平台上的默认light主题都相同-IntelliJ Light。
  • 终端会话可以分为水平或垂直几个部分。因此,可以在一个选项卡中同时看到多个会话。
  • 从IntelliJ平台开始,与版本控制系统的集成也得到了改进

CLion询问我任何事情


计划于5月7日与CLion团队的开发人员进行在线问答环节负责以下子系统的团队成员将出席会议:

  • C C++, Clangd, C++ CLion.
  • .
  • .
  • ( , ClangFormat).
  • .
  • .
  • .

该会话是免费的,但需要预先注册我们还请您事先考虑,并在可能的情况下在注册表中为团队保留问题。在会议期间,将有机会通过特殊形式提出问题(我将主持会议并向同事提出问题),但是预先提出的问题更有可能在会议开始时得到详细的答案。

今天就这些。看完了吗?非常感谢您的关注!在评论中写下问题,建议,感叹号-我们始终乐于阅读并回答!

CLion
发展动力

All Articles