使用 vscode 安装配置 clang-format(代码格式化)
目前,网上能找到的配置教程都是乱教的。他们以C++为语言讲配置,其实clang-format默认就是C++.所以他们在配置时,即是错了。也会以默认C++格式化,也不会提示配置错误。结果他们还不知道他们错在哪?如果让他们配置.CS, .json,估计就不会了。
这里我给个正确的完整配置教程:
- 首先安装中间件。在vscode扩展商店里搜索 clang-format ,安装排名第一个。xaver.clang-format.
- 用eveythings查找一下 clang-format.exe, 发现最新的扩展 c/c++ 里集成了 clang-format。 这是我电脑上搜索到的目录:
“D:\Program Files.vscode\extensions\ms-vscode.cpptools-1.12.4-win32-x64\LLVM\bin\clang-format.exe”.
如果你没找到这个程序,那走第三步。如果有,走第四步。 - 其次还要安装真正的格式化工具clang-format.exe。这个工具集成在工具包 LLVM里,下载地址:
https://github.com/llvm/llvm-project/releases
这里我选择最新的 “LLVM-14.0.6-win64.exe”. 安装后居然有 2G! 在安装目录里找到 clang-format.exe。提取出来一般能用,不能就把附加的DLL一并提出来。其它可以卸载了。 - 把可执行程序的路径添加到 settings.json 文件里。不是工作目录里的,是vscode 的用户目录里。比如我电脑上的目录是:
“C:\Users\tiandyoin\.vscode\User\settings.json” - 在这个配置文件里添加配置如下:
"files.associations": {"*clang-format*": "yaml",},// clang-format 扩展的配置"clang-format.executable": "D:/Program Files/.vscode/extensions/ms-vscode.cpptools-1.12.4-win32-x64/LLVM/bin/clang-format.exe","clang-format.style" : "file:./.Google.cpp.clang-format", // 从指定配置文件读取格式化风格。// "clang-format.style" : "file", // 从(当前目录->工作目录->path变量)查找默认配置文件(.clang-format)并读取格式化风格。找不到则使用fallbackStyle, 没有fallbackStyle则默认LLVM,C++.// "clang-format.assumeFilename": ".cs", //经测试,assumeFilename 该项有两个作用://(1)在输出配置文件时,给合本选项,确定输出配置文件的language.//(2)在读取配置文件时,按后缀名分析取出相应的语言的配置部分来格式化代码。// 如 ".cs" 表示使用 language:CSharp 的部分来格式化代码。如果找不到 CSharp部分会报错。默认c++。"clang-format.fallbackStyle": "Google","editor.defaultFormatter": "xaver.clang-format",// "[cpp]": {// "editor.defaultFormatter": "xaver.clang-format"// },// C/C++ 扩展的配置"C_Cpp.formatting": "Default",
.Google.cpp.clang-format 的代码如下:
---
Language: Cpp
BasedOnStyle: Google
Standard: Auto
ColumnLimit: 80
...
- 生成.clang-format 配置文件的命令是:
D:\Program Files\.vscode\extensions\ms-vscode.cpptools-1.12.4-win32-x64\LLVM\bin> clang-format --style=Google --dump-config > ./.clang-format
// 输出 .json 语言的格式化配置文件
D:\Program Files\.vscode\extensions\ms-vscode.cpptools-1.12.4-win32-x64\LLVM\bin> clang-format --style=Google --dump-config --assume-filename=.json > ./.clang-format
输出格式化后文件的命令是:
clang-format --style=file:${workspaceRoot}/xxx.clang-format --assume-filename=.cpp xxx.cqq > xxx2.cqq
// 要自行替换${workspaceRoot}
这里因为程序不认识 .cqq 文件,使用 --assume-filename=.cpp 表示以C++语言格式化 .cqq 文件。
7. 在代码里按ctrl+shift+F 或
全选代码-鼠标右键-使用…格式化代码-选择"Clang-Format"。
8. 测试一下效果
格式化前:
// #include <stdlib.h>
#include <stdio.h>#define MACRO1(x) (++(x)) //fgfg
#define MACRO2(x) (MACRO1(x)+100) //efee
#define MACRO3(x) (MACRO2(x)+200)class cman{public:int i;
};int main(void)
{int a = 0; // a
int b = 0; //b//b = MACRO3(a);// cprintf("%d\n", b);return 0;
}
格式化后:
// #include <stdlib.h>
#include <stdio.h>#define MACRO1(x) (++(x)) // fgfg
#define MACRO2(x) (MACRO1(x) + 100) // efee
#define MACRO3(x) (MACRO2(x) + 200)class cman {public:int i;
};int main(void) {int a = 0; // aint b = 0; // b//b = MACRO3(a); // cprintf("%d\n", b);return 0;
}
Ok.本文到此结束。
Tips:
另外有个类似智能提示的扩展:
Clang-Format-Check.
可以自己试试。
第5步是以C++为例子,因为默认是C++,无法测出“配置语言不正确”。下面我换成CSharp的例子。
(1) 安装扩展 mjohns.clang-format. xaver.clang-format 1.9 当前版本没有支持CSharp.
禁用它,避免冲突麻烦。
(2) 安装配置clang-format.exe 同上。
(3) settings.json 里的配置如下:
// clang-format 扩展的配置"editor.defaultFormatter": "mjohns.clang-format",// "[cpp]": {// "editor.defaultFormatter": "mjohns.clang-format",// },// "clang-format.executable": "D:/Program Files/.vscode/extensions/ms-vscode.cpptools-1.12.4-win32-x64/LLVM/bin/clang-format.exe","clang-format.executable": "D:/Program Files/LLVM/bin/clang-format.exe", "clang-format.style" : "file:./.Google.cs.clang-format", // 从指定配置文件读取格式化风格。找不到文件会报错。// "clang-format.style" : "file", // 从(当前目录->工作目录->path变量)查找配置文件并读取格式化风格。找不到则默认LLVM,C++.//经测试,assumeFilename 有两个作用://(1)用于读入配置文件。是在输出配置文件时,给合本选项,确定输出配置文件的language.//(2)在读取配置文件里时,按后缀名分析取出相应的语言的配置部分来格式化代码。如 ".cs" 表示使用 language:CSharp 的部分来格式化代码。如果找不到 CSharp部分会报错。默认c++。"clang-format.assumeFilename": ".cs", //在vscode里,即使文件后缀名为.cs,也得指定该项。估计是中间件或exe不够完善。指定了该项,其它后缀名文件统统按csharp语言来格式化。"clang-format.fallbackStyle": "Google","clang-format.language.csharp.enable": true,// C/C++ 扩展的配置"csharp.format.enable": true,"C_Cpp.formatting": "Default",
./.Google.cs.clang-format 代码如下:
---
Language: CSharp
BasedOnStyle: Google
Standard: Auto
ColumnLimit: 50
...
(4) 格式化代码
为是突出assumeFilename的效果,我把要格式的文件名,改成 Command.cqq.
vscode会认为是纯文本
点击它让vscode 认定它是CSharp. 这样才能使用格式化命令。
这里把列数限制了
ColumnLimit: 50
按 ctrl+a, ctrl+k,ctrl+f 执行一下试试
得到效果图如下:
成功按50列换行。
如果有什么不明白的地方,请留言讨论。
使用 vscode 安装配置 clang-format(代码格式化)相关推荐
- vscode安装配置与应用技巧总结
vscode安装配置与应用技巧总结 安装vscode VSCode下载链接: https://code.visualstudio.com/download/ 比如 version=1.68.0 Win ...
- 初用VScode并配置,自定义代码片段(快捷键),自动格式化代码快捷键,保存格式化代码快捷键
一.VScode 介绍.下载.安装. 一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器. 免费,可以直接去微软官网去下载.htt ...
- VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了
前言 Visual Studio Code 是一个轻量级功能强大的源代码编辑器,支持语法高亮.代码自动补全(又称 IntelliSense).代码重构.查看定义功能,并且内置了命令行工具和 Git 版 ...
- vscode怎么运行android项目,windows + flutter +android+ vscode 安装配置运行流程(详细版本)...
flutter 是由谷歌发布的一个全新的响应式.跨平台.高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面. 框架特点 快速开发:Flutter的热重载可以快速地进行测试 ...
- VsCode 安装配置 Rust
下载 rustup-init 配置环境变量 CARGO_HOME = E:\Soft\Rust\.cargo RUSTUP_HOME = E:\Soft\Rust\.rustup RUSTUP_UPD ...
- VScode github配置及github代码管理
今天记录一下我配置VScode中用github来管理自己代码的经验,供有需要的人参考 1.下载git客户端(vscode依赖你本地电脑安装git的能力来管理代码) 地址:https://git-scm ...
- vscode怎么对选定的代码格式化?ctrl+k,ctrl+f(格式化代码)
先选中代码: 然后按CTRL + K 再按CTRL+F 也可以先选择要格式化的代码块,ctrl+shift+p,搜索format,然后第二个就是:
- 如何用atom编辑python_Atom运行Python的安装配置步骤和代码范例详解
#coding=utf-8 """@author:nickhuang1996""" importreimportsysimporturlli ...
- SpaceVim踩坑之java代码格式化
个人理解:SpaceVim是一套不错的vim插件集合. 也是因为有SpaceVim才让我入门vim,爱上vim. 一直想实现ssh远程服务做开发调试这件事情,SpaceVim让我看到了这个想法的可行性 ...
最新文章
- CTFshow 命令执行 web50
- 1、vue 笔记之 组件
- Socket网络编程【获取本机IP】
- 关于freemarker的classic_compatible属性的使用场景和解决
- Exchange2010安装过程中先决条件报错得处理方法
- 题解 LGOJ P4168 【[Violet]蒲公英】
- ASP.NET MVC 5 ABP DataTables (二)
- /usr/bin/ld: cannot find -lstdc++ -lz问题
- 基于mysql学生成绩管理论文_基于SQL Server的学生成绩管理系统设计论文
- python强度公式计算_python – 黑体谱的普朗克斯公式
- Received status code 409 from server: Conflict
- H77、Z75、Z77主板有什么区别?
- 手把手教会你视频转文字怎么操作,快来get
- mac 安装selenium 教程
- 在matlab中如何把两个txt文件合并到一起
- 电脑回收站里不小心清理删除的文件怎么恢复?
- https://www.toutiao.com/a6457425756212429325/?tt_from=mobile_qqutm_campaign=client_shareapp=news_a
- TWaver 3D作品Viewer查看器
- 物联网毕设 -- 人脸识别门禁系统(K210--HEX协议版本)
- java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署
热门文章
- [财务]暂估业务处理流程
- foreach - gt 写法java_java map在JSTL EL中的小应用--lt;c:forEachgt;遍历Maplt;gt;泛型
- 表单html中加减数字按钮,纯CSS实现数字加减按钮的最佳方案
- 在Revit中,如何编程创建新类型(如窗户或墙)
- Android中替换头像图标和背景图片
- 英飞凌-AURIX-TC3XX-内核架构:AURIX TriCore 1.6P
- 11个开源merkle树实现
- App Store审核指南(中文版)2010版
- FPS游戏开发--后坐力分析
- Parallels Desktop | Mac 系统超好用的虚拟机,不来试试吗