Cracking C++(11): CMake代码高亮调研

文章目录

    • 1. 目的
    • 2. VSCode 插件
      • CMake 和 CMake Tools
      • CMake Language Support
      • CMake Highlights
    • 3. JetBrains 系列
      • 3.1 CLion
      • 3.2 Fleet
    • 4. Kate
    • 5. Sublime Text
    • 6. 总结

1. 目的

CMake 已经是开源 C++ 项目的主流 building system, 这里简单调研关注的编辑器 / IDE 下, CMake 语法高亮情况。如果你写C++, 那你很大概率会接触到基于 CMake 构建的 C++ 工程,而阅读和编写 CMake 代码其实已经是 C++ 工程师的必备技能之一了。本文带你了解主流的跨平台编辑器/IDE的CMake颜色高亮情况。

2. VSCode 插件

CMake 和 CMake Tools

搜索到第一个 cmake 插件,名字就叫 CMake, 作者 twxs, 最后一次更新是 2017 年。
Cracking C++(11): CMake代码高亮调研_第1张图片
好奇, 一个2017年的插件,为啥下载量持续第一, 比排名第二的微软官方出品(其实是收编了 vector-of-bool 的插件)还要多?因为 CMake Tools 默认会安装扩展包, 扩展包目前只有一个, 就是 twxsCMake 插件。也就是说, 只要用户安装了名为 CMake Tools 插件, 就会安装 名为 CMake 的插件。颇有一种防止自己被判为垄断的感觉:
Cracking C++(11): CMake代码高亮调研_第2张图片

如果你删除了 CMake 插件, 就没有代码高亮了。我们以开源 C++ 项目 doxygen 为例:

Cracking C++(11): CMake代码高亮调研_第3张图片

CMake Language Support

接下来尝试排名第三的 CMake Language Support:
Cracking C++(11): CMake代码高亮调研_第4张图片
它的语法高亮做的比较好, 至少第一眼看到 cmake_minimum_required(VERSION 3.20) 里面的 VERSION 被高亮了:

Cracking C++(11): CMake代码高亮调研_第5张图片
而相应的, 需要安装 .NET 6, 如果网络不好需要手动安装下:
Cracking C++(11): CMake代码高亮调研_第6张图片
CMake Lanauge Support 插件还支持跳转。啥意思呢?普通用户可以不写 cmake 函数, 但包含某个 cmake 文件, 还是挺常见的操作;这个插件允许你跳转到包含的文件
Cracking C++(11): CMake代码高亮调研_第7张图片
函数跳转: 我们从 doxygen 的 cmake/git_watcher.cmake 文件147行,找到调用的 GetGitState() 函数,光标放到函数名称中间,按下ctrl键, 可以看到出现了超链接下划线,点击鼠标可以跳转到定义。
Cracking C++(11): CMake代码高亮调研_第8张图片
代码折叠,不在话下:
Cracking C++(11): CMake代码高亮调研_第9张图片

CMake Highlights

这是本人基于 twxs 插件的魔改版本,本来想着自己用为主, 考虑到电脑比较多,不如直接发布到 marketplace, 结果现在下载量超过7000了。主要修改是增加了一些关键字的高亮。
Cracking C++(11): CMake代码高亮调研_第10张图片

3. JetBrains 系列

3.1 CLion

语法高亮相当不错,并且也可以跳转到函数定义
Cracking C++(11): CMake代码高亮调研_第11张图片

3.2 Fleet

语法高亮颜色的主题和 Clion 还不一样的, 不过 VERSION 没有高亮:
Cracking C++(11): CMake代码高亮调研_第12张图片

函数定义无法跳转,有点失望的
Cracking C++(11): CMake代码高亮调研_第13张图片

4. Kate

Kate 编辑器是 KDE 系列的编辑器,可以在 Linux 下很好的使用。此外还提供了 MacOSX、 Windows 的版本, 跨平台使用业务压力,著名开源项目 ncnn 的作者 NiHui 就是用 Kate 编辑器写出了 ncnn。

Kate 对于 CMake 的语法高亮相当不错,option 的 ON/OFF 都贴心的给了不同颜色:
Cracking C++(11): CMake代码高亮调研_第14张图片
不过 Kate 的颜色似乎偏向亮度较高的颜色,看起来略有不舒服,其实本人更希望看到一些浅色系的
Cracking C++(11): CMake代码高亮调研_第15张图片

5. Sublime Text

用到的插件是 github.com/zyxar/Sublime-CMakeLists 的 CMake 插件
Cracking C++(11): CMake代码高亮调研_第16张图片
解析出的 AST 还是可以的, 至少 VERSION 识别并高亮了。而且变量名字以及取值 OFF/ON 都是不那么晃眼的白色,option() 是淡雅的黄色, 还是比较舒服的:
Cracking C++(11): CMake代码高亮调研_第17张图片

6. 总结

这里仅仅列出跨平台的、本人常用的几个编辑器/IDE里的CMake高亮情况, 不是很全, 但是跨平台效果能保持一致。

首先推荐 VSCode,不管是新人还是老手

  • 建议直接无脑用 CMake Language Support
  • 如果你确实发现微软的 CMake Tools 还不错(我没关注它在语法高亮之外的功能),建议删掉 twxs 的 CMake 插件, 可以安装我写的 CMake Highlights 作为替代
  • 其他 CMake 插件,在高亮方面,不推荐

对于其他编辑器 / IDE:

  • CLion 的 CMake 支持相当用心,不过,建立索引特别容易让电脑风扇吵起来
  • Kate 的高亮, 颜色纯度太高了, 淡一点就好了
  • SublimeText:也还不错

你可能感兴趣的:(C/C++,c++,开发语言,CMake,VSCode,高亮)