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

news/2024/11/7 12:30:37/

文章目录

    • 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 默认会安装扩展包, 扩展包目前只有一个, 就是 twxsCMake 插件。也就是说, 只要用户安装了名为 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:也还不错

http://www.ppmy.cn/news/357551.html

相关文章

EON SoftWare Vue 4 Professional v4.51 1CD

为什么80%的码农都做不了架构师?>>> EON SoftWare Vue 4 Professional v4.51 1CD EYEON产品: Eyeon Fusion v5.31.78 Final 1CD(专业级电影合成工具,具有真实的3D环境支持,是市场上最有效的3D粒子系统) Eyeon Fusion …

Formz.Renderzone.Plus.v6.5.4-ISO 1CD (建模软件)

4M S.A.产品: 4M.FineELEC.v9.NG.WiNNT2K 1CD(在集成和智能化环境中进行电力设置的安装的工具) 4M.FineHVAC.v9.NG.WiNNT2K 1CD(对加热,制冷,通风工程进行智能化施工的工具) 4M.FineLIFT.v9.NG.WiNNT2K 1CD…

计算机控制在数字化播控中心的应用

计算机控制在数字化播控中心的应用 [作者:湖北电视台刘羿 孙继业] 现在电视台硬盘播出系统得到广泛运用,计算机 自动控制成为播控的主流。视频设备的控制接口,以及状态监控接口有必要进行一下归纳,以下将对湖北电视台硬盘播出…

Manga Studio EX v3.0-ISO 3CD(行业领先的动画和漫画设计软件)

Vreel3D Translucent Pro v1.5 for Cinema 4D WinALL and MAC OSX Greenworks产品: Greenworks XFrog v3.5.051204 1CD(用于有机体建模及动画的3D软件) Greenworks XFrogTune v1.0.140302 1CD(适用于Cinema 4D的插件。用以制作生物…

串口通信中DB9和DB25的接法

这个串口线把一个25 针的串行口接到9 针的串行口上,PC 一端为9针的母插头: 连接到串行设备为25 针的公插头: 25针转9针串口线信号定义 9-Pin 25-Pin Carrier Detect 1 8 Receive Data 2 3 Transmit Data 3 2 Data Terminal Ready…

Eurosystems Eurocut Pro/EuroVECTOR 6.1.0.9 Multilingual-ISO 1CD(多用途的矢量设计软件)

OMEGA.v2.6-ISO 1CD(图像设计,多语言版) PMG产品: Messiah Animate v4.0e-ISO 1CD(弥赛亚超强渲染器) Messiah Studio v2.0B-ISO 1CD(完整的角色动画工具,STUDIO带材质和渲染,还有非常好的非线编) Eovia产品: Amapi.Pro.v7.5-ISO 1CD(一个3D NURBS建模工…

会声会演基础

视频制作基础入门教程会声会影篇 《视频制作基础 会声会影篇》 【会声会影】是由台湾友立公司出品的一款非线性视频编辑软件。它是一款面向非专业人士的非编软件,但对于刚步入视频编辑的人来说,它拥有的功能已经绝对够用了。 【会声会影】有着它自己的市…

新兴的多媒体格式——MXF 文件格式分析 和简介

1. 新兴的多媒体格式 MXF格式已经被推出几年了, 从当初一个陌生的不为人们 重视的格式 逐渐获得了业内人士的认知和认可, 现如今正被广泛应用于广播电视 与后期制作领域, 且有不断扩大之势, 松下公司推出的基于PII卡的 无磁带式…