我们有
令人兴奋的
消息要宣布!
CLion 2019.3,今年的最后一次重大版本更新,已正式发布!
改善 IDE 性能和修复主要缺陷始终是我们团队的首要任务。
在此更新中,我们一直专注于提高特定方面的性能、消除 UI 冻结(不是全部,但很多已经消失了!),以及为我们的用户增强了编辑器和集成!
要更新到此版本,请使用 Toolbox App、快照包(在 Ubuntu 上)、我们的网站或 2019.2 最新版本的补丁更新。
立即下载 CLION
如果您只是想快速浏览主要要点,请查看下面的列表。
如果您对具体细节感兴趣,请继续阅读:
IDE 性能
调试器更新
CMake 中的更多机会
在头文件 / 源文件之间切换
代码覆盖率
C++20 概念
您还可以观看以下 Phil Nash 主讲的这个简短的 “最新功能” 视频,以全面了解此版本:
IDE 性能
此版本主要侧重于提高 IDE 性能,尤其是在 IntelliJ 平台 和 CLion 中。在 IntelliJ 平台方面,引入了许多重要的架构更改,以减少
IDE 启动时间
。
这些更改包括但不限于:
一些按顺序运行的进程的并行化。
以一种使初始类加载更快的方式重新组织类。
优化 macOS 上的字体加载。
在 CLion 方面,我们已经做出了巨大的努力,以消除
UI 冻结
。尽管仍然有一些冻结(主要是一些较复杂的 C++ 项目),但许多其他冻结已经消失了。我们计划在下一个版本中保持这种工作标准,我们保证您!
除此之外,我们还通过修改一些基础算法来优化了构建/更新符号步骤。根据我们的计算,取决于特定项目、CPU 和环境的不同,您现在会发现性能提高 10% 到 50% 之间。该团队还致力于通过重新设计 IDE 提供的一些核心功能来提高性能。
首先,
Rename 重构
现在具有一种模式,它首先询问您是否要重命名非代码引用(例如注释和字符串文字中的实例),然后才搜索所有实例。但是,这需要将 Rename 的就地模式设置为
off
(Settings/Preferences | Editor | General | Refactorings | Enable in-place mode)。
在任何 IDE 或智能文本编辑器中,最广泛使用的功能是什么?没错,就是
代码补全
!为了加快 CLion 中的代码补全速度,我们实施了一个额外的补全器。
它基于 Clangd, 而产生结果的速度比其他在大量使用情况下运用(例如 LLVM ,Boost ,Qt 或 Eigen )的补全器:
了解
有关测试的更多详细信息
。
调试器更新
CLion 与 GDB 和 LLDB 调试器集成在一起。在此发行版中,我们致力于这个集成,以使其更加用户友好和更高质量。对于LLDB,我们已将捆绑版本更新为 v9.0,并在捆绑的
pretty printers
中进行了重大清理。
因此,现在可以更精确地可视化标准容器。您可以期望在 macOS 上对
libc++
的支持比对
libstdcxx
更好(让我们知道您是否在 macOS 上使用后者,并指定使用的工具链,以便我们可以考虑进行改进)。
在 Ubuntu 上,唯一的区别在于无序关联容器(unordered associative containers)。在
此处
查看详细的比较。
对 GDB 和 LLDB 的项目也提供了在
根目录
读取
.gdbinit
/
.lldbinit
的支援(CLion 以前只能从用户的主目录读取这些文件)。这样,您就可以调整调试器的行为,而不会影响计算机上的所有项目。
请注意,要启用此行为,您必须在自己的主目录中明确允许
.gdbinit
/
.lldbinit
。
用于 GDB:
set auto-load local-gdbinit on
add-auto-load-safe-path /
set auto-load local-gdbinit on
add-auto-load-safe-path C:\work\myproject\.gdbinit
最后,添加了新的
远程 GDB 服务器
配置,这使得可以通过
ssh 启用远程调试
。
与以前添加的
远程 GDB 调试
配置相比,主要优点是 CLion 将可执行文件上传到远程主机,并在该主机的 gdbserver 下自动启动程序。
阅读我们网络帮助中的详细信息。
这意味着现在有 3 个可以从本地运行的 CLion 进行远程连接的选项 –
完全远程模式
(在远程构建、运行和执行时) 和 2 个用于远程调试的选项(当仅在远程主机上进行调试时)。
CMake 中的更多机会
CMake 是 CLion 中一个顶级的项目模型。许多 CLion 用户都依赖它,有些用户甚至将他们的项目转换为 CMake 即可在 CLion 中工作。非常感谢您的大力支持!在此版本中,我们解决了 CLion 中 CMake 集成的两个最大缺点。
解决这个问题的一种方法,当然是使用 Ninja 生成器!此外,现在可以在 CMake 中使用
任何生成器
。
只需将其传递给 CMake 配置文件设置中的 CMake 选项:
该实现基于 CMake File API,因此,当使用 CMake 3.15 或更高版本时可用。
我们要感谢在功能发布后不久就尝试了它的所有 EAP 用户。我们获得的反馈帮助我们在正式发布之前解决了许多问题。
我们要解决的另一个问题是缺少为 CLion 中新创建的项目全局配置某些 CMake 设置的功能。例如,用于生成路径或某些环境设置的模板。
现在,您可以使用
CMake Defaults
!使用 File | Other Settings | Preferences/Settings for New Projects…
最后,我们解决了此发行版中的另一个不愉快的问题 – 如果某些 CMake 配置无效且无法重新加载,CLion 现在不会失败,而是可以成功
重新加载所有有效配置
。这种情况的典型用例是当您未连接远程配置并且您要重新加载多个本地配置时。以前,整个重新加载过程只会失败,但是现在本地配置将成功重新加载。
在头文件 / 源文件之间切换
为了在头文件和源文件之间切换,CLion 现在提供了一种更有效、更准确启发操作,称为
Go to Header/Source
。
使用它代替更通用的 IntelliJ 平台 的
Go to Related Symbol
操作。
新操作将尝试查找单个目标文件,如果该文件在 500 毫秒内失败,它将显示一个交互式弹出窗口,其中会添加新项(更重要的是在后台计算,因此不会冻结 UI !)。然后,您可以选择要导航到的位置。
Go to Header/Source
搜索依赖于几种启发法,例如,最近切换的文件始终位于列表的顶部,并且具有相同目录中匹配名称的文件的优先级高。
您现在只需要记住一个限制 – 搜索仅限于直接包含者/被包含者,因为这避免来自不同目标的相同符号的干扰。
代码覆盖率
尽管此版本主要集中于错误、技术负债和性能挑战,但仍具有一些新功能。程式碼覆蓋率 –问题跟踪器中最常见的请求之一 – 通过整合
llvm-cov
/
gcov
工具来解决。
您可以使用 Coverage 运行单元测试和常规配置,只是不要忘记通过特殊的覆盖编译选项。这必须手动完成,因为 CLion 不会自动修改您的 CMake 文件和编译选项。
可以在单独的 Coverage 工具窗口中检查测量结果,也可以在编辑器中直接进行 – 覆盖范围在左间距中用颜色指示。
阅读我们网络帮助中的详细信息。
C++20 概念
在最后两个发布周期中,我们试验了基于 Clangd 的语言引擎。我们的想法是合并另一个实验分支 – Saar Raz 有 Concepts (概念)支持的 clang 分支 – 并在其之上构建一些独特功能。
这个概念最初是在我们于 2019 年 5 月在特拉维夫举行的
Core C++ 会议
上与 Saar讨论的,而现在与 CLion 2019.3,我们已准备好提供此次合作的结果。
在 CLion 中,基于 Clangd 的引擎现在可以帮助正确解析和高亮显示 C++20 Concepts。
还有来自 Clang 的一些代码检查,以及 CLion 团队实施的
Unused Concept
检查。
最令人印象深刻的工作还是代码补全,因为 CLion 现在可以完成受约束的模板类型参数,以及受
std::is_base_of<MyBase, T>
、
std::is_same<Other, T>
和
same_as<T, U>
约束的类型:
除此之外,还支持
Rename
重构,
Go to Definition
和
Find Usages
导航操作。您可以在我们的
详细博文
中找到更多示例,并了解如何在编译器中启用 C++20 Concepts 的支持。
我们要感谢 Saar Raz 在 Clang 所做的出色工作以及与我们团队富有成效的合作!
其他修复和改进
拼写检查器
是 IDE 的重要组成部分,它有助于使注释、字符串文字和代码内文档保持正确和更易读。
CLion 2019.3 版本可以拼写检查 CMake 文件和 Doxygen 注释:
除了 WSL,CLion 现在还支持
WSL2
。
IDE 中的
配置过程
保持不变,不过请记住,这两个子系统之间的
用户体验
有所不同。新版本添加了一个新的检查
从构造函数或析构函数调用的虚拟函数
,以捕获虚拟函数可能访问尚未初始化或已被破坏的资源的情况:
Microsoft
格式
和命名规则作为预定义的代码样式选项也被添加了,从而使用 Google、LLVM、Qt、GNU、Stroustrup 和其他样式增强了列表。由于 CLion 基于 IntelliJ 平台,因此还改善了 VCS ,并解决了许多 UI 问题。对于使用过 CLion 作为 Rust IDE 的用户,我们很高兴与您分享
IntelliJ Rust 插件
进行了重大更新(我们计划在其上发布单独的博客文章,因此敬请关注!)。
就是这样!
希望您不会因为阅读过多而感到疲倦,并很高兴现在能尝试一下新版本!
我们很高兴听到您对此版本的任何反馈!
立即下载 CLION
您的CLion团队
JetBrains
The Drive to Develop
2019.3
CLion
Share
Facebook
Twitter
程序员在写代码时往往追求”性能”,这性能可以分为两种:一种是代码运行时的性能好坏、一种则是程序员写代码时的速度及品质,换言之就是生产力的体现。而 IntelliJ IDEA 最为人所喜好的,就是在开发生产力上的提升。除了默认集成的特性外,JetBrains 的插件市场(Plugin Marketplace)上也提供了许多由官方或第三方开发者制作的插件,可以依不同需求场景扩充 IntelliJ IDEA 的功能。
在这篇文章里,我以几个常见的需求及场景做分类,介绍数个可以增强 IntelliJ IDEA 的插件(这些插件也可以适用在其他 JetBrains IDE 里),不仅能让您的 Intel…
三分钟让 IntelliJ IDEA 显示简体中文
JetBrains 作为一间跨国公司,我们非常重视每一位用户使用的语言。我们知道若用户能用自己习惯且熟悉的语言,将可以更好地理解我们的服务及产品功能。因此从去年开始,我们启动了本地化项目,开始着手进行网站及产品 UI 的本地化。在 2019 年 11 月正式推出支持 8 种不同语言的 JetBrains 官网后,我们的本地化团队紧接着进行 IntelliJ IDEA 的 UI 本地化工作。
JetBrains 官网目前已支持简体中文
目前 IntelliJ IDEA 的 UI 本地化工作已经有了初步的成果,并以 EAP(Early Access Program,早期试用计划)插件的形式发布…
PHP 25 周年: PHP 简史 以及 PhpStorm 5 折优惠
Rasmus Lerdorf 在 25 年前的今天向世界推出了 PHP。 JetBrains 团队想借此机会感谢大家多年来对 PHP 的持续支持,并邀请您一起加入这一周年庆。
备受期待的 PHP 8 版本计划于今年发布。 在等待的过程中,让我们深情回味一下,并通过 PHP 历史上最重要事件的时间轴来了解社区在过去 25 年中取得的成就。
经过多年的发展, PHP 社区已成为一个友好的全球开发者网络,并打造了一个奇妙而多样的工具、资源和活动生态系统。 它将继续演化,吸纳其他生态系统的最佳实践并适应新的挑战。
部署 Ktor 应用至云服务器
为了让 Kotlin 开发者可以更轻松、更快速地开发出 Web 应用,JetBrains 的技术团队用 Kotlin 打造了 Ktor 框架,只需要几行代码,就可以用简洁易懂的语法写出网站、API 或微服务。写代码是变轻松了,那要怎么部署呢?在这篇教程里就是要跟大家分享,如何将写好的 Ktor 应用以 fat-jar 的方式部署至云服务器。
先创建一个 API 应用
为求教程完整,先简单演示一下如何用 Ktor 创建一个 API 应用吧!先开启 IntelliJ IDEA,选择 Create New Project。