文章目录
- 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 年。
好奇, 一个2017年的插件,为啥下载量持续第一, 比排名第二的微软官方出品(其实是收编了 vector-of-bool 的插件)还要多?因为 CMake Tools
默认会安装扩展包, 扩展包目前只有一个, 就是 twxs
的 CMake
插件。也就是说, 只要用户安装了名为 CMake Tools 插件, 就会安装 名为 CMake 的插件。颇有一种防止自己被判为垄断的感觉:
如果你删除了 CMake
插件, 就没有代码高亮了。我们以开源 C++ 项目 doxygen 为例:
CMake Language Support
接下来尝试排名第三的 CMake Language Support
:
它的语法高亮做的比较好, 至少第一眼看到 cmake_minimum_required(VERSION 3.20)
里面的 VERSION
被高亮了:
而相应的, 需要安装 .NET 6, 如果网络不好需要手动安装下:
CMake Lanauge Support
插件还支持跳转。啥意思呢?普通用户可以不写 cmake 函数, 但包含某个 cmake 文件, 还是挺常见的操作;这个插件允许你跳转到包含的文件:
函数跳转: 我们从 doxygen 的 cmake/git_watcher.cmake
文件147行,找到调用的 GetGitState()
函数,光标放到函数名称中间,按下ctrl键, 可以看到出现了超链接下划线,点击鼠标可以跳转到定义。
代码折叠,不在话下:
CMake Highlights
这是本人基于 twxs 插件的魔改版本,本来想着自己用为主, 考虑到电脑比较多,不如直接发布到 marketplace, 结果现在下载量超过7000了。主要修改是增加了一些关键字的高亮。
3. JetBrains 系列
3.1 CLion
语法高亮相当不错,并且也可以跳转到函数定义
3.2 Fleet
语法高亮颜色的主题和 Clion 还不一样的, 不过 VERSION
没有高亮:
函数定义无法跳转,有点失望的
4. Kate
Kate 编辑器是 KDE 系列的编辑器,可以在 Linux 下很好的使用。此外还提供了 MacOSX、 Windows 的版本, 跨平台使用业务压力,著名开源项目 ncnn 的作者 NiHui 就是用 Kate 编辑器写出了 ncnn。
Kate 对于 CMake 的语法高亮相当不错,option 的 ON/OFF 都贴心的给了不同颜色:
不过 Kate 的颜色似乎偏向亮度较高的颜色,看起来略有不舒服,其实本人更希望看到一些浅色系的
5. Sublime Text
用到的插件是 github.com/zyxar/Sublime-CMakeLists 的 CMake 插件
解析出的 AST 还是可以的, 至少 VERSION
识别并高亮了。而且变量名字以及取值 OFF/ON 都是不那么晃眼的白色,option()
是淡雅的黄色, 还是比较舒服的:
6. 总结
这里仅仅列出跨平台的、本人常用的几个编辑器/IDE里的CMake高亮情况, 不是很全, 但是跨平台效果能保持一致。
首先推荐 VSCode,不管是新人还是老手
- 建议直接无脑用
CMake Language Support
; - 如果你确实发现微软的 CMake Tools 还不错(我没关注它在语法高亮之外的功能),建议删掉
twxs
的 CMake 插件, 可以安装我写的CMake Highlights
作为替代 - 其他 CMake 插件,在高亮方面,不推荐
对于其他编辑器 / IDE:
- CLion 的 CMake 支持相当用心,不过,建立索引特别容易让电脑风扇吵起来
- Kate 的高亮, 颜色纯度太高了, 淡一点就好了
- SublimeText:也还不错