哈Ha!
CLion团队有很多好消息-团队中的圣彼得堡部分与其他同事一起成功转移到了新办公室,新的优秀开发人员加入了我们,最重要的是,就在前几天,我们发布了今年的第一个重大更新
CLion 2019.1 !
新版本中的工作同时在多个方面进行:
- 对C ++语言支持的改进 :通过Clangd突出显示了代码,对提取和重命名重构进行了改进,对类的成员函数可以声明为静态的新检查。
- 设置代码编写样式的更多选项 :与ClangFormat集成,对C / C ++中的变量命名样式的支持,对标头保护符的不同样式的支持。
- 调试器的新功能和改进功能 :查看内存状态-内存视图-用于指针,在LLDB情况下查看反汇编的代码,从而加速了分步调试的工作。
- CLion用于微控制器的第一步。
- 能够在CLion中创建用于启动/调试的构建目标和配置,而这些目标和配置与项目模型无关。
- 与其他编程语言一起使用C / C ++中的字符串文字。
- 新的视觉主题和其他平台功能。

在下面阅读有关这些和其他创新的更多信息。 要尝试新功能和改进,请
从我们的网站下载30天免费版本的CLion。
C ++语言支持
lang
如您所知,在CLion中,有两种支持C ++语言的工具-一种完全是自己的,而另一种则基于Clangd。 他们一起工作,相辅相成,共享必要的信息。 同时,如果性能和功能完整性标准允许,我们现在正尝试将用于在CLion中使用C ++代码的智能工具转移到基于Clangd的工具。 我们还没有在谈论代码重构,但是2019.1中代码的突出显示已经在Clangd的基础上完成了。 这大大改善了编辑器的响应能力。
发行了一些版本,当在编辑器中显示错误时,我们将CLion切换为基于Clangd的工具。 现在,错误文本将更详细地显示。 例如,在调试与函数重载有关的错误时,这很有用:

此外,还可以通过Clangd计算可能的定位(快速定位)的位置。 该修复程序本身由CLion自己的工具直接提供。
我们工作的另一个有趣的领域是在Clangd代码解析工具上编写新的检查。 从CLion 2019.1开始,对C ++代码的新检查将告诉您何时可以将类的成员函数声明为静态:

顺便说一句,可以在“设置” /“首选项” |“管理”中找到在Clangd上管理此替代工具的设置。 语言和框架| C / C ++ | lang
自定义代码解析工具
编辑效率是我们的首要任务之一。 除了许多小的改进之外,在此版本中,值得注意的是项目的初始索引时间也有了显着改进。 它并不总是发生,但是在您为项目使用相同的库的情况下:CLion可以自动注意到这一点,并将这些库的符号重用于使用它们的新打开项目。 对于STL或Boost,改进非常明显!
我们今年的计划是提高C ++重构的准确性和准确性。 我们从最基本的两个开始-重命名和提取。 对于Extract,我们修复了许多情况,这些情况由于名称空间限定符(例如
std::
使用不正确,模板的特殊化和类型名(类型别名)而导致重构结果不正确。
关于重命名,当有一个重命名的类或结构与它们所在文件的名称相匹配时,我们注意了这种情况。 以前,我们也总是重命名文件,但是现在CLion会询问您重构期间的首选结果。 您可以重命名,也可以保留旧文件名。 反之亦然-重命名文件不会导致无条件重命名该类。 (在这里的某个地方应该听到观众的尖叫声:“最后!”)

顺便说一句,稍后我将讨论设置页眉防护样式的功能。 因此,如果文件中使用的标题保护遵循指定的样式模板,并且同时在其名称中包含重命名文件的名称,则CLion还将更新标题保护!
编码风格
在版本2019.1中,我们添加了切换到ClangFormat以在CLion中格式化代码的功能。 这不仅包括格式化操作本身(在Windows / Linux中为
Ctrl+Alt+L
,在macOS中为
⌥⌘L
)或在打印代码时自动格式化,还包括在使用CLion工具生成代码时进行预提交格式,重构和应用修复程序(快速修复程序)时。 通常,无论IDE在哪里格式化代码,都将调用ClangFormat。
您可以全局切换到ClangFormat-在“设置” /“首选项” |“设置”中。 编辑器 代码样式。 而且您只能针对特定项目。 此外,如果在项目中找到
.clang格式的配置文件,CLion将提供使用以下配置文件切换到ClangFormat的功能:

可以
在我们的博客上找到更多详细信息(英文)。
在代码中命名变量,类型和其他字符是一个复杂的问题,有时甚至是哲学上的问题。 但是在编程世界(为了提高代码的可读性)中,人们早已发明了命名方式。 有LLVM样式,有Qt,有Google。 因此,在设置“ CLion设置/首选项| 编辑器 代码样式| C / C ++现在有了一个新选项卡-命名约定,您可以在其中选择一种预定义样式或通过为各种类型的字符(宏,全局函数,类成员,参数,局部变量等)设置命名样式来自定义样式。 所选约定将在所有IDE操作中使用-代码生成,重构,自动更正等。此外,如果您想更准确地监视命名规则的实现,则可以启用新的不一致命名检查,该检查将显示与规则不匹配的名称,以及将建议重命名选项:

在同一标签中,您可以找到我上面提到的标题保护样式设置:

顺便说一句,如果您更喜欢使用
#pragma
,则只需在“设置” /“首选项” |“设置”中调整新头文件的模板。 编辑器 文件和代码模板。
调试器
查看内存视图
我们终于可以在调试器中查看内存了。 在当前版本中,您可以通过指针查看内存:在调试过程中,只需单击“变量”面板中的任何点,然后请求“内存视图”(在Windows / Linux上为
Ctrl+Enter
,在macOS上为
⌘Enter
)。 而且,如果在逐步调试过程中打开了“内存视图”选项卡,则可以在其中查看突出显示的内存更改:

UI / UX的更改已计划在下一个版本中使用,但首先我想从用户那里收集反馈。 写吧!
LLDB的情况下拆卸
现在,汇编程序代码按功能进行了划分,最重要的是,不仅在GDB中,而且在LLDB中也显示了该代码!

但是,值得注意的是,仅在该函数没有源代码的情况下仍显示汇编代码。 尚不支持所谓的
按需拆卸模式。
分步调试性能
有时,由于在每个步骤中都要计算很长的变量,因此逐步调试会延迟。 但毕竟,有时任何人都不需要进行这些计算-我想分步快速浏览代码的某些区域,偶尔查看一对变量的值! 现在在CLion中,有机会在逐步调试过程中禁用变量重新计数-调试器上下文菜单中的“将
变量静音”可以完全做到这一点。 当需要计算和显示值时,可以单击变量上的
Load :

微控制器CLion
Ilya Motor(
elmot )已经
在Habré上写
了关于他的CLion与STM32CubeMX集成以及OpenOCD调试器支持的插件。 去年年底,Ilya加入了我们的团队,并且已经设法对插件进行重大更新并将其移至CLion中。

在
我们的博客上可以找到有关已更新插件的相当大且详细的博客文章。 在这里,我将描述现在可以完成的最重要的事情:
- 在“新建项目”对话框中,您可以创建STM32CubeMX项目( .ioc )。
- 直接从CLion运行该项目的STM32CubeMX,以更新微控制器的设置并生成该项目的代码。
- CLion将为该项目生成正确的CMake文件。
- CLion将建议选择硬件的配置文件(板配置)。
- 要使用OpenOCD进行调试,您需要创建特殊类型“ OpenOCD下载并运行”的配置。 对于STM32CubeMX项目,CLion将自己创建一个。 指定所有设置后,您可以直接从CLion在微控制器上调试!
Ilya有许多雄心勃勃的计划,因此您的反馈对我们非常重要。 因此,如果您有兴趣在CLion中开发嵌入式系统,我们将在评论中恭候您的光临!
设计独立的目标和配置
前一段时间,Gradle C ++和编译数据库扩展了CLion中受支持的设计模型的列表。 后者存在问题,因为格式不包含有关整个项目的汇编的信息,因此在编译数据库的情况下,汇编,启动或调试项目都是不可能的。 是的,就著名的CLion项目模型而言,有时您希望拥有一个由终端中的某些团队简单组装的目标。
现在,对于这种情况,有自定义目标(设置/首选项|构建,执行,部署|自定义构建目标)和自定义运行/调试配置(运行|编辑配置...)。 对于目标,您需要设置外部工具(外部工具)的参数,这些参数将在组装和清洁项目时使用:

对于与项目无关的配置,对于启动和调试,您需要指定目标,可执行文件和所需的参数以运行:

注入语言
您的代码中是否包含包含SQL查询,HTML代码或正则表达式的字符串文字? 如果是这样,那么您肯定希望至少根据原语突出显示文字中的代码。 现在有可能! 您只需按
Alt+Enter
并选择“注入语言或参考”选项,即可在字符串文字中暂时包含另一种语言。 现在,我们选择所需的语言,最近,在通常的字符串文字中,显示了所选语言的突出显示以及所有特殊操作。 最引人注目的示例是正则表达式,并具有在IDE中直接检查字符串是否符合要求的能力:

还有更多
JetBrains的产品通常不是由一个小团队创建,而是由整个相关平台的团队创建。 因此,CLion从IntelliJ IDEA,WebStorm,AppCode,DataGrip,PyCharm等获得了功能。在此版本中,这些改进包括以下内容:
- 查看项目代码中开发人员进行了一些更改或仅阅读代码的所有位置-最近位置弹出窗口(在Win / Lin上为
Shift+Ctrl+E
,在macOS上为⇧⌘E
)。 - 除了标准的明,暗(Darcula)和对比度(High-Contrast)之外,还为IDE创建了新主题。 可以在我们的文档中找到此类插件的示例和分步教程。
- 说到插件。 如果您使用Rust编写,您可能知道有一个IntelliJ Rust插件。 在CLion中,其版本包括货运支持和调试器。 在新版本中,该插件具有用于在Linux和macOS上对代码进行性能分析的工具,能够自动完成尚未导入的字符的功能以及其他改进功能。
现在就这些了。 谢谢,如果您读完了!
演示版
好吧,还有关于CLion 2019.1新功能的传统视频(英语):
问题,愿望,错误报告和想法仅在评论中表达! 我们很乐意回答。
您的JetBrains CLion团队发展动力