当前位置: 首页 > news >正文

在Visual Studio Code和Visual Studio 2022下配置Clang-Format,格式化成Google C++ Style

项目开发要求好的编写代码格式规范,常用的是根据Google C++ Style Guide
网上查了很多博文,都不太一样有的也跑不起来,通过尝试之后,自己可算折腾好了,整理一下过程

背景:
编译器主要有三部分:前端(frontEnd)、优化器(Optimizer)、后端(backEnd)
前端:负责对代码语法进行分析,将源码转换为抽象语法树
优化器:在前端的基础上对得到的中间代码进行优化,提高效率
后端:在优化过的中间代码的基础上转化为各个不同平台的机器代码

Clang是LLVM的前端,可以按照Google的C++风格规范进行配置

一、下载安装LLVM

我下载的是LLVM-12.0.0,其他版本下载网上都有资源

安装的时候直接next就行,需要注意的是
①安装路径
②path最好勾选直接加入到系统环境变量里面
手动配置环境变量:E:\soft\LLVM\bin具体情况具体分析

二、找到clang-format.exe路径

我这里是:E:\soft\LLVM\bin\clang-format.exe,路径后续会用到
在这里插入图片描述

三、配置Visual Studio Code

Ⅰ,下载安装插件Clang-Format

在这里插入图片描述

Ⅱ,配置Clang

打开设置
在这里插入图片描述

1,Clang-format: Executable

在这里插入图片描述

2,Clang-format: Fallback Style

设置为Google
在这里插入图片描述

3,Clang-format: Style

设置为Google
在这里插入图片描述

四、重启Visual Studio Code测试

随便整个头文件
在这里插入图片描述
可以看到Google C++ Style Guide是有头文件导入先后顺序的
在这里插入图片描述

格式化文档
快捷键Shift + Alt + F
在这里插入图片描述
按照Google C++ Style Guide进行格式化文档
在这里插入图片描述

五、配置Visual Studio 2022

工具——>选项——>文本编辑器——>C/C++——>代码样式——格式设置——>常规
在这里插入图片描述
在这里插入图片描述

六、重启Visual Studio 2022

还是用头文件进行测试

原始的头文件
在这里插入图片描述
Google C++ Style Guide有头文件导入先后顺序
在这里插入图片描述

编辑——>高级——>设置文档的格式
快捷键Ctrl + K + D
在这里插入图片描述

格式化后效果
在这里插入图片描述

完美谢幕

相关文章:

  • linux的用户管理
  • 前端 MVC 分层的实践
  • 公司废弃的2014年群晖 DS215J 被我打包回家了,试玩一下
  • 世界上首位AI程序员诞生,AI将成为人类的对手吗?
  • Vue.js - Vue 的安装 以及 常用的 Vue 指令 【0基础向 Vue 基础学习】
  • Pytorch-08 实战:手写数字识别
  • 力扣刷题---3146. 两个字符串的排列差
  • 开源内网穿透神器:中微子代理(neutrino-proxy)实现内网穿刺
  • python毕设项目选题汇总(全)
  • 27寸2K显示器 - HKC G27H2
  • ELK 日志监控平台(一)- 快速搭建
  • springboot 两个相同类型的Bean使用@Resouce加载
  • 数据库工具类
  • CHI dataless 传输——CHI(4)
  • 【图像超分】论文精读:Residual Non-local Attention Networks for Image Restoration(RNAN)
  • 【Linux系统编程】快速查找errno错误码信息
  • ES6 学习笔记(一)let,const和解构赋值
  • mockjs让前端开发独立于后端
  • Spring Cloud中负载均衡器概览
  • SQLServer之创建数据库快照
  • Sublime text 3 3103 注册码
  • Vue官网教程学习过程中值得记录的一些事情
  • vue--为什么data属性必须是一个函数
  • 嵌入式文件系统
  • 微信支付JSAPI,实测!终极方案
  • 一道闭包题引发的思考
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • Nginx实现动静分离
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #pragma pack(1)
  • (3)nginx 配置(nginx.conf)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (CPU/GPU)粒子继承贴图颜色发射
  • (C语言)fgets与fputs函数详解
  • (floyd+补集) poj 3275
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (web自动化测试+python)1
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (每日一问)基础知识:堆与栈的区别
  • (三)elasticsearch 源码之启动流程分析
  • (三)模仿学习-Action数据的模仿
  • (十八)SpringBoot之发送QQ邮件
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)树状数组
  • (自用)仿写程序
  • (自用)网络编程
  • .gitignore文件使用
  • .java 9 找不到符号_java找不到符号
  • .Net CF下精确的计时器
  • .net 获取url的方法
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .Net6 Api Swagger配置
  • .NET程序集编辑器/调试器 dnSpy 使用介绍
  • ;号自动换行