距上次更新 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”(新建项目)向导中。
生成相应的基于 PlatformIO CMake 的项目。
自动创建用于调试和上载的配置。
允许使用片上 CLion 的 PIO Unified Debugger(统一调试器)进行调试。
  还有更多新功能,请查看官方文档了解更多细节。
 
  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_executable 和 cuda_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(路径变量)和宏了。宏可以帮助你获取以下的值:
 
项目文件目录。
还有许多其他。
 
  FilePrompt/Prompt 宏可以用来在运行 / 调试配置时显示文件选择对话框或字符串输入对话框。
 
  Path Variable(路径变量)可以定义库的路径,该库在项目中广泛使用,但不在项目文件目录之中。
 
  输入重定向
 
  如果需要将输入从文件重定向到应用程序的 STDIN(标准串流),现在可以这样做了。在配置中使用名为 Redirect input from 的新字段。输入:
 
相对路径(CLion 将以 Working directory path(工作目录路径)为前缀)。
绝对路径(将为远程配置重新映射)。
或宏(如 FilePrompt)。
 
  5. Clang 工具
 
  Clangd 上的数据流分析
 
  CLion 的 Data Flow Analysis (DFA,数据流分析)能完成编译器通常不能做的事情:它分析数据如何流经代码,并根据结果检测潜在问题。它捕获的条件始终为 false/true、无限循环、缺少 return 语句、无限递归等等。在 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 字段提供了指定要在所有用法中使用的参数值的功能。保持为空,以便像以前一样使用默认值类型。
 
  相同的逻辑和新的默认值字段应用于 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(选择非默认主题的主题)来选择非默认主题。