VSCode 配置自动生成头文件

news2024/9/23 15:33:24

相关文章
VSCode 开发C/C++实用插件分享——codegeex
VSCode 开发C/C++实用插件分享——koroFileHeader

VSCode 配置自动生成头文件

  • 一、snippets
  • 二、配置步骤
  • 三、效果展示


一、snippets

 相信大家对C、C++都头文件都不陌生,都会发现每个头文件都会包括下面的这些格式,要是需要自己创建多个头文件,每个都需要修改名字就很麻烦。这时候我们就可以通过配置全局用户代码片段(snippets)来解决这个问题。
在这里插入图片描述

二、配置步骤

  • 打开命令面板(ctrl+shift+p)
    在这里插入图片描述
  • 输入snippets 选择配置用户代码片段
  • 在这里插入图片描述
  • 输入文件名(随便定义都行)
    在这里插入图片描述
    在这里插入图片描述
  • 就会得到下面这个文件

在这里插入图片描述

  • 增加配置文件
    将下面代码复制到文件中,注释已经写的很清楚了,这就不细说
	"C C++ Header": {
		"scope": "c, cpp", //代码片段的作用范围
		"prefix": "header",//代码片段的前缀,当您在编辑器中输入这个前缀并按下 Tab 键时,代码片段将被激活并生成相应的代码
		"description": "Add header defind", // 功能描述
	
		"body": [
			// 防止头文件被多次包含的预处理指令 ,${TM_FILENAME_BASE},它代表当前文件的基本文件名
			"#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			
			// 定义一个唯一的宏,标记当前文件的开始
			"#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			
			// 空行,增加可读性
			"",
			
			// 光标停留位置,开始编写实际代码
			"$0",
			
			// 空行,增加可读性
			"",
			
			// 结束预处理指令,使用与上面相同的宏名称
			"#endif // ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H"
		]
	}
  • 整个文件
{
	// Place your 全局 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and 
	// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope 
	// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is 
	// used to trigger the snippet and the body will be expanded and inserted. Possible variables are: 
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. 
	// Placeholders with the same ids are connected.
	// Example:
	// "Print to console": {
	// 	"scope": "javascript,typescript",
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }
	"C C++ Header": {
		"scope": "c, cpp", //代码片段的作用范围
		"prefix": "header",//代码片段的前缀,当您在编辑器中输入这个前缀并按下 Tab 键时,代码片段将被激活并生成相应的代码
		"description": "Add header defind", // 功能描述
	
		"body": [
			// 防止头文件被多次包含的预处理指令 ,${TM_FILENAME_BASE},它代表当前文件的基本文件名
			"#ifndef ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			
			// 定义一个唯一的宏,标记当前文件的开始
			"#define ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
			
			// 空行,增加可读性
			"",
			
			// 光标停留位置,开始编写实际代码
			"$0",
			
			// 空行,增加可读性
			"",
			
			// 结束预处理指令,使用与上面相同的宏名称
			"#endif // ${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H"
		]
	}
	
}

三、效果展示

 新建一个h文件,然后输入header,当vscode中显示header悬浮文字的时候,按一下tab键就可以生成了。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

引迈信息-JNPF平台怎么样?值得入手吗?

目录 1.前言 2.引迈低代码怎么样? 3.平台亮点展示 4.引迈产品特点 5.引迈产品技术栈: 1.前言 低代码是近几年比较火的一种应用程序快速开发方式,它能帮助用户在开发软件的过程中大幅减少手工编码量,并通过可视化组件加速应用…

【基于卷积神经网络的疲劳检测与预警系统的设计与实现】

基于卷积神经网络的疲劳检测与预警系统的设计与实现 引言数据集介绍技术与工具1. OpenCV2. TensorFlow3. 卷积神经网络(CNN) 系统功能模块1. 视频采集模块2. 图像预处理模块3. 人脸识别模块4. 疲劳程度判别模块5. 报警模块 系统设计创新点1. 实时监测与预…

GAN的原理分析与实例

为了便于理解,可以先玩一玩这个网站:GAN Lab: Play with Generative Adversarial Networks in Your Browser! GAN的本质:枯叶蝶和鸟。生成器的目标:让枯叶蝶进化,变得像枯叶,不被鸟准确识别。判别器的目标&…

Spring Boot之自定义starter

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Spring Boot的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. starter是什么 二.为什么要使…

什么是 API 代理?

API 代理就像您的计算机和互联网上的特殊服务之间的有用中间人。这有点像将翻译、保安和信使合而为一。 什么是 API 代理? API 代理就像您和在线服务之间的有用中间人。当您的计算机需要从特殊在线服务(API)获取某些内容时,API 代…

计算机网络:物理层(奈氏准则和香农定理,含例题)

带你速通计算机网络期末 文章目录 一、码元和带宽 1、什么是码元 2、数字通信系统数据传输速率的两种表示方法 2.1、码元传输速率 2.2、信息传输速率 3、例题 3.1、例题1 3.2、例题2 4、带宽 二、奈氏准则(奈奎斯特定理) 1、奈氏准则简介 2、…

leetcode做题笔记2132. 用邮票贴满网格图

给你一个 m x n 的二进制矩阵 grid ,每个格子要么为 0 (空)要么为 1 (被占据)。 给你邮票的尺寸为 stampHeight x stampWidth 。我们想将邮票贴进二进制矩阵中,且满足以下 限制 和 要求 : 覆盖…

VUE中如果让全局组件在某一页面不显示

目录 前言 方法一 1.在全局组件中添加一个变量用于控制显示与隐藏。 2.在全局组件的模板中使用 v-if 条件来决定是否显示该组件 3.在不需要显示全局组件的页面中,修改 showGlobalComponent 变量的值为 false,以隐藏全局组件。 4.在需要隐藏全局组…

dockerfile---创建镜像

dockerfile创建镜像:创建自定义镜像。 包扩配置文件的创建,挂载点,对外暴露的端口。设置环境变量。 docker镜像的方式: 1、基于官方源进行创建 根据官方提供的镜像源,创建镜像,然后拉起容器。是一个白板&#xff0c…

国产猫粮推荐排行榜有哪些牌子?国产主食冻干猫粮品牌十大排行

近年来,冻干猫粮作为热门的高品质猫粮,受到了许多追求纯天然、健康食品的铲屎官的关注。萌新铲屎官就很疑惑了冻干猫粮可以代替猫粮作为主食吗?冻干猫粮真就那么好吗? 作为一个猫咖店长,这几年我至少给猫挑选了20几款…

智能故障诊断期刊推荐【中文期刊】

控制与决策 http://kzyjc.alljournals.cn/kzyjc/home 兵工学报 http://www.co-journal.com/CN/1000-1093/home.shtml 计算机集成制造系统 http://jsjjc.soripan.net/ 机械工程学报 http://www.cjmenet.com.cn/CN/0577-6686/home.shtml 太阳能学报 https://www.tynxb.org.c…

Windows ❀ 关闭Google的自动更新功能

文章目录 1. 故障问题2. 解决方法 1. 故障问题 如何关闭掉Google的自动更新功能? 2. 解决方法 修改更新域名本地hosts为环回地址即可。 # 禁止google自动更新 127.0.0.1 update.googleapis.com备注: mac路径:/etc/hostswindows路径&…

SpringBoot之数组,集合,日期参数的详细解析

1.4 数组集合参数 数组集合参数的使用场景:在HTML的表单中,有一个表单项是支持多选的(复选框),可以提交选择的多个值。 多个值是怎么提交的呢?其实多个值也是一个一个的提交。 后端程序接收上述多个值的方式有两种: 数…

EM的理论基础

1 EM定义​ 电迁移(Electro-Migration)是指在外加电场下,电子和金属原子之间的动量转移导致材料的运动。这种动量传递导致金属原子(比如Cu原子)从其原始位置移位,如图7-1。这种效应随着导线中电流密度的增加而增加,并且在更高的温度下,动量传递变得更加严重。因此,在先…

2023全球开发者生态调研:84%的开发者表示他们在工作中正积极使用生成式AI工具

今年JetBrains首次在一年一度的开发者生态调研中,增加了人工智能方向的问题。在全球26348名开发者参与的调研中,总体对人工智能的发展持乐观态度。特别是生成式AI在软件开发和编程环节中的应用,84%的开发者表示他们在工作中正在积极使用生成式…

【STM32CubeMX】F103 BxCAN

F103&BxCAN bxCAN总体描述 有一个增强的过滤机制来处理各种类型的报文此外,应用层任务需要更多CPU时间,因此报文接收所需的实时响应程度需要减轻。 接收FIFO的方案允许,CPU花很长时间处理应用层任务而不会丢失报文。 构筑在底层CAN驱动程…

MySQL增量备份与恢复

实验环境 某学校近期在进行期中考试,要求数据库管理员负责一班,二班学生的考试成绩录入,为保证数据的可靠性,数据库管理员在录入学生成绩后均要做数据库备份,并且为了测试备份数据是否可 用,模拟数据丢失故…

柯桥日常英语口语,外贸英语商务英语|英文打电话的常用语

日常生活中,我们常常需要打电话交流。在打电话时说话清楚,使用适当的礼节是很重要的。 如果你太正式,人们在和你说话时,可能会很难感到舒适。如果你太随便,他们可能会认为你很粗鲁! 所以,说话的…

Jmeter,提取响应体中的数据:正则表达式、Json提取器

一、正则表达式 1、线程组--创建线程组; 2、线程组--添加--取样器--HTTP请求; 3、Http请求--添加--后置处理器--正则表达式提取器; 4、线程组--添加--监听器--查看结果树; 5、线程组--添加--取样器--调试取样器。 响应体数据…

Disruptor详解,Java高性能内存队列最优解

文章目录 一、Disruptor介绍1、为什么要有Disruptor2、Disruptor介绍3、Disruptor的高性能设计4、RingBuffer数据结构5、等待策略6、Disruptor在日志框架中的应用7、术语 二、Disruptor实战1、引入依赖2、Disruptor构造器3、入门实例(1)Hello World&…