(gersemi) CMake 格式化工具

文章目录

  • 🧮介绍
  • 🧮安装
  • 🧮使用
    • 🗳️模式 modes
    • 🗳️样式配置 config
  • ⭐END
    • 🌟help
    • 🌟交流方式

🧮介绍

BlankSpruce/gersemi: A formatter to make your CMake code the real treasure

A formatter to make your CMake code the real treasure.

一个格式化程序,使您的CMake代码真正的财富。

在这里插入图片描述

Gersemi - Wikipedia

Gersemi (Old Norse “treasure”) is the daughter of the fertility-goddess Freyja in Norse mythology.She could be the same figure as Hnoss, another daughter of Freyja.

Gersemi(古挪威语“宝藏”)是挪威神话中生育女神Freyja的女儿。她可能和弗雷娅的另一个女儿赫诺斯一样。

🧮安装

# 查询包
pip_search gersemi# 安装
pip install gersemi# 卸载
pip uninstall gersemi

贴图

在这里插入图片描述

🧮使用

最简单直接的使用

直接指定目标的 cmake 文件。

gersemi CMakeLists.txt

🗳️模式 modes

mode含义
-c, --check检查文件是否需要重新格式化。当没有重新格式化的时候返回0。当一些文件被重新格式化时返回1。
-i, --in-plac原地格式化文件。
–diff为每个格式化文件展示不同点。
–default-config生成默认的配置文件 名为.gersemirc 文件
–version展示版本
-h, --help展示帮助信息并退出
gersemi -i CMakeLists.txtgersemi CMakeLists.txt --diff

🗳️样式配置 config

.gersemirc 文件

# 查看默认配置
gersemi --default-config
# yaml-language-server: $schema=https://raw.githubusercontent.com/BlankSpruce/gersemi/master/gersemi/configuration.schema.jsoncache: true
color: false
definitions: []
indent: 4
line_length: 80
list_expansion: favour-inlining
quiet: false
unsafe: false
warn_about_unknown_commands: true
workers: max

这个部分 help 信息说明的不全,当然也可能是笔者没有找到对应的使用说明文档在哪。

属性可选项含义other
cachetrue false启用缓存已知格式化文件的数据,以加快执行速度。[default: cache enabled]
color如果-diff被选中,则显示diff被着色。
definitions包含自定义命令定义(函数或宏)的文件或目录。如果有自定义定义,则从stdin中获取。不需要提供未废弃的CMake原生模块的命令。https://cmake.org/cmake/help/latest/manual/cmake-modules.7.html
indentINTEGER tabs用于缩进的空格数或用于缩进制表符的“tabs”[default: 4]
line_lengthINTEGER以字符为单位的最大行长。[default: 80]
list_expansionfavour-inlining favour-expansion[default: favour-inlining]
quiettrue false跳过将非错误消息打印到stderr。[default: false]
unsafetrue false跳过默认的完整性检查。[default: false]
warn_about_unknown_commands当启用了未知自定义命令的文件时,将会发出警告,并且结果不会被缓存。请参见README中的"Let's make a deal"部分。[default: warnings enabled]
workersINTEGER max明确的worker数量或max用于给定机器上并行格式化多个文件的最大可能worker数量。[default: max]

注意:

color 经笔者测试无论 true | false 还是直接写颜色或者 rgb 君无效。

还有很多别的规则,还是参照 README.md 为好。

其实感觉很多功能都没实现。

⭐END

🌟help

usage: gersemi [-c] [-i] [--diff] [--default-config] [--version] [-h][-l INTEGER] [--indent (INTEGER | tabs)] [--unsafe] [-q][--color] [--definitions src [src ...]][--list-expansion {favour-inlining,favour-expansion}][-w (INTEGER | max)] [--cache] [--warn-about-unknown-commands][src ...]A formatter to make your CMake code the real treasure.positional arguments:src                   File or directory to format. If only `-` is provided,input is taken from stdin instead.modes:-c, --check           Check if files require reformatting. Return 0 whenthere's nothing to reformat. Return 1 when some fileswould be reformatted.-i, --in-place        Format files in-place.--diff                Show diff on stdout for each formatted file instead.--default-config      Generate default .gersemirc configuration file.--version             Show version.-h, --help            Show this help message and exit.configuration:By default configuration is loaded from YAML formatted .gersemirc file ifit's available. This file should be placed in one of the common parentdirectories of source files. Arguments from command line can be used tooverride parts of that configuration or supply them in absence ofconfiguration file.-l INTEGER, --line-length INTEGERMaximum line length in characters. [default: 80]--indent (INTEGER | tabs)Number of spaces used to indent or 'tabs' forindenting with tabs [default: 4]--unsafe              Skip default sanity checks.-q, --quiet           Skip printing non-error messages to stderr.--color               If --diff is selected showed diff is colorized.--definitions src [src ...]Files or directories containing custom commanddefinitions (functions or macros). If only - isprovided custom definitions, if there are any, aretaken from stdin instead. Commands from not deprecatedCMake native modules don't have to be provided. See:https://cmake.org/cmake/help/latest/manual/cmake-modules.7.html--list-expansion {favour-inlining,favour-expansion}Switch controls how code is expanded into multiplelines when it's not possible to keep it formatted inone line. With "favour-inlining" the list of entitieswill be formatted in such way that sublists mightstill be formatted into single line as long as it'spossible or as long as it doesn't break the "more thanfour standalone arguments" heuristic that's mostlyfocused on commands like `set` or `list(APPEND)`. With"favour-expansion" the list of entities will beformatted in such way that sublists will be completelyexpanded once expansion becomes necessary at all.[default: favour-inlining]-w (INTEGER | max), --workers (INTEGER | max)Explicit number of workers or 'max' for maximumpossible number of workers on given machine used toformat multiple files in parallel. [default: max]--cache, --no-cache   Enables cache with data about files that are known tobe formatted to speed up execution. [default: cacheenabled]--warn-about-unknown-commands, --no-warn-about-unknown-commandsWhen enabled file which has unknown custom commandswill have warnings issued about that and result won'tbe cached. See: "Let's make a deal" section in README.[default: warnings enabled]

🌟交流方式

⭐交流方式⭐ |C/C++|算法|设计模式|软件架构-CSDN社区

关注我,学习更多C/C++,python,算法,软件工程,计算机知识

B站:

👨‍💻主页:天赐细莲 bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/455788.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关闭或开启Win11系统的自动更新

Win11系统老是自动更新,每次更新后不仅拖慢计算机的运行速度,甚至打印机都无法使用了,给我们带来了很多困扰。 那么我们该如何彻底关闭Win11系统的自动更新呢?关闭Win11系统自动更新会有什么弊端呢? 下面就分享几个小方…

NVIDIA 发布适用于网络安全的 NIM Blueprint

德勤使用适用于容器安全的 NVIDIA NIM Agent Blueprint 帮助企业利用开源软件构建安全的 AI。 文章目录 🙊 德勤使用 NVIDIA AI 保障软件安全🙊 通过生成式 AI 保障软件安全🙊 适用于网络安全成功的蓝图🎠 什么是 NVIDIA NIM Agen…

ESP32移植Openharmony外设篇(3)OLED屏

模块简介 产品介绍 OLED (Organic Light-Emitting Diode):有机发光二极管又称为有机电激光显示,OLED显示技术具有自发光的特性,采用薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且…

数组中的算法

目录 1.什么是数组 2.数组上的算法 2.1二分查找算法 什么是二分查找算法? 算法步骤 算法时间复杂度 一个问题 例题 题目分析 解题代码 2.2双指针法 什么是双指针法? 例题 题目分析 解题代码 1.什么是数组 数组是在一块连续的内存空间…

【vuejs】富文本框输入的字符串按规则解析填充表单

今天遇到一个批量添加信息的需求,按照格式要求解析后填充到表单中,不符合规则的直接过滤掉 注:添加的信息都是随机生成,不用于实际用途 这是弹框输入的文本解析代码 export const editValToArr (value, bankArr) > {return n…

vue2-render:vue2项目使用render / 基础使用

一、本文内容 本文内容记录render常用的一些属性和方法的配置,以作参考 export default { data() {return { modelValue: ,key: 0,}; }, render(h) { return h(div, [ h(input, {class: input,attrs: { type: text }, key: this.key,props: { value: thi…

【mysql进阶】2-4. mysql 系统库

mysql System Schema (mysql系统库) Mysql Schema是⼀个系统库,表中存储了MySQL服务器运⾏时所需的信息。⼴义上,mysqlschema包含存储数据库对象元数据的数据字典和⽤于其他操作⽬的的系统表。数据字典表和系统表位于数据⽬录下⼀个名为 mysql.ibd 的表…

“声音”音源设置和音效播放

学习如何使用音效系统,背景音乐和其他特别的音效,跳跃攻击等等 学习如何在unity当中使用整套的音效系统,使用之前,我们先来确定一下我们要使用的音乐和音效,在Unity Asset Store当中搜索,添加到我们的unit…

详解Oracle审计(二)

题记: 本文将承接上篇详细介绍oracle的审计功能,基于11g版本,但对12c,19c也同样适用。 1. 语句审计实操演示实例 sqlplus / as sysdba show parameter audit_trail alter system set audit_traildb_extended scopespfile; star…

OpenCV和HALCON

OpenCV和HALCON是两种广泛用于图像处理和计算机视觉的开发库,它们各有优缺点,适合不同的应用场景。以下是两者的比较: 1. 开发背景与定位 OpenCV (Open Source Computer Vision Library): 开源库,最初由Intel开发&…

Gitlab 完全卸载–亲测可行

1、停止gitlab gitlab-ctl stop2.卸载gitlab(注意这里写的是gitlab-ce) rpm -e gitlab-ce 3、查看gitlab进程 ps aux | grep gitlab 4、杀掉第一个进程(就是带有好多.............的进程) 5、删除所有包含gitlab文件 find / …

【计网】深入理解网络通信:端口号、Socket编程及编程接口

目录 1.端口号 1.1.理解源 IP 地址和目的 IP 地址 1.2.认识端口号 1.3.端口号范围划分 1.4理解 "端口号" 和 "进程 ID" 2.socket编程 2.1.理解 socket 2.2.socket编程的概念 2.3. 传输层的典型代表 认识 TCP 协议 认识 UDP 协议 2.3 网络字节序…

基于Multisim的水位测量电路设计与仿真

1.利用LED指示灯显示水位(最低水位、1/4、1/2、3/4、最高水位)。 2.达到最高水位时,自动报警。

探索Python与Excel的无缝对接:xlwings库的神秘面纱

文章目录 探索Python与Excel的无缝对接:xlwings库的神秘面纱1. 背景介绍:为何选择xlwings?2. xlwings是什么?3. 如何安装xlwings?4. 简单的库函数使用方法打开工作簿创建工作簿读取单元格数据写入单元格数据保存并关闭…

消息会话—发送消息自动滚动到最底部

背景 在项目开发中,实现用户友好的输入交互是提升用户体验的关键之一。例如,在消息会话页面中,为了确保用户在发送新消息后页面能自动滚动到最底部,从而始终保持最新消息的可见性,需要实现自动滚动功能。这不仅提升了…

Spring Boot集成:高效论坛网站的构建

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理论坛网站的相关信息成为必然。开发合适的论…

【GISBox使用指南】免费实现影像切片的工具,还支持多种格式服务发布!

一、什么是影像数据? 在地理信息系统中,影像数据是指通过遥感技术、摄影测量或其他成像手段获取的,以数字形式存储的地理空间图像信息。这些数据涵盖了从卫星遥感影像、航空摄影影像到地面摄影影像等多种类型,在GIS中的应用广泛而…

知乎付费投流怎么做?如何投放知乎广告?

知识经济背景下,知乎凭借其高质量的内容和精准的用户群体,成为了品牌营销的新蓝海。作为国内领先的知识分享平台,知乎汇聚了大量高学历、高收入、高消费能力的用户,他们对新知识、新产品有着强烈的好奇心和探索欲,是品…

成功解决pycharm软件中按住Ctrl+点击指定函数却不能跳转到对应库中的源代码

成功解决pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 目录 解决问题 解决方法 解决问题 在pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 解决方法

github pages + hugo 搭建静态博客网站

体验地址 1. 起因, 目的: 其实6年前,我就写过这个。 项目代码 博客地址 最近想改写一下。 github 推荐的主题是 Jekyll, 我当时用的就是这个,感觉很麻烦。尤其是文章命名。 新的主题 hugo 用起来还行。 2.过程: 过程记录&am…