目前,网上能找到的配置教程都是乱教的。他们以C++为语言讲配置,其实clang-format默认就是C++.所以他们在配置时,即是错了。也会以默认C++格式化,也不会提示配置错误。结果他们还不知道他们错在哪?如果让他们配置.CS, .json,估计就不会了。
这里我给个正确的完整配置教程:

  1. 首先安装中间件。在vscode扩展商店里搜索 clang-format ,安装排名第一个。xaver.clang-format.
  2. 用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”.
    如果你没找到这个程序,那走第三步。如果有,走第四步。
  3. 其次还要安装真正的格式化工具clang-format.exe。这个工具集成在工具包 LLVM里,下载地址:
    https://github.com/llvm/llvm-project/releases
    这里我选择最新的 “LLVM-14.0.6-win64.exe”. 安装后居然有 2G! 在安装目录里找到 clang-format.exe。提取出来一般能用,不能就把附加的DLL一并提出来。其它可以卸载了。
  4. 把可执行程序的路径添加到 settings.json 文件里。不是工作目录里的,是vscode 的用户目录里。比如我电脑上的目录是:
    “C:\Users\tiandyoin\.vscode\User\settings.json”
  5. 在这个配置文件里添加配置如下:
"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
...
  1. 生成.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(代码格式化)相关推荐

  1. vscode安装配置与应用技巧总结

    vscode安装配置与应用技巧总结 安装vscode VSCode下载链接: https://code.visualstudio.com/download/ 比如 version=1.68.0 Win ...

  2. 初用VScode并配置,自定义代码片段(快捷键),自动格式化代码快捷键,保存格式化代码快捷键

    一.VScode 介绍.下载.安装. 一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器. 免费,可以直接去微软官网去下载.htt ...

  3. VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了

    前言 Visual Studio Code 是一个轻量级功能强大的源代码编辑器,支持语法高亮.代码自动补全(又称 IntelliSense).代码重构.查看定义功能,并且内置了命令行工具和 Git 版 ...

  4. vscode怎么运行android项目,windows + flutter +android+ vscode 安装配置运行流程(详细版本)...

    flutter 是由谷歌发布的一个全新的响应式.跨平台.高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面. 框架特点 快速开发:Flutter的热重载可以快速地进行测试 ...

  5. VsCode 安装配置 Rust

    下载 rustup-init 配置环境变量 CARGO_HOME = E:\Soft\Rust\.cargo RUSTUP_HOME = E:\Soft\Rust\.rustup RUSTUP_UPD ...

  6. VScode github配置及github代码管理

    今天记录一下我配置VScode中用github来管理自己代码的经验,供有需要的人参考 1.下载git客户端(vscode依赖你本地电脑安装git的能力来管理代码) 地址:https://git-scm ...

  7. vscode怎么对选定的代码格式化?ctrl+k,ctrl+f(格式化代码)

    先选中代码: 然后按CTRL + K 再按CTRL+F 也可以先选择要格式化的代码块,ctrl+shift+p,搜索format,然后第二个就是:

  8. 如何用atom编辑python_Atom运行Python的安装配置步骤和代码范例详解

    #coding=utf-8 """@author:nickhuang1996""" importreimportsysimporturlli ...

  9. SpaceVim踩坑之java代码格式化

    个人理解:SpaceVim是一套不错的vim插件集合. 也是因为有SpaceVim才让我入门vim,爱上vim. 一直想实现ssh远程服务做开发调试这件事情,SpaceVim让我看到了这个想法的可行性 ...

最新文章

  1. CTFshow 命令执行 web50
  2. 1、vue 笔记之 组件
  3. Socket网络编程【获取本机IP】
  4. 关于freemarker的classic_compatible属性的使用场景和解决
  5. Exchange2010安装过程中先决条件报错得处理方法
  6. 题解 LGOJ P4168 【[Violet]蒲公英】
  7. ASP.NET MVC 5 ABP DataTables (二)
  8. /usr/bin/ld: cannot find -lstdc++ -lz问题
  9. 基于mysql学生成绩管理论文_基于SQL Server的学生成绩管理系统设计论文
  10. python强度公式计算_python – 黑体谱的普朗克斯公式
  11. Received status code 409 from server: Conflict
  12. H77、Z75、Z77主板有什么区别?
  13. 手把手教会你视频转文字怎么操作,快来get
  14. mac 安装selenium 教程
  15. 在matlab中如何把两个txt文件合并到一起
  16. 电脑回收站里不小心清理删除的文件怎么恢复?
  17. https://www.toutiao.com/a6457425756212429325/?tt_from=mobile_qqutm_campaign=client_shareapp=news_a
  18. TWaver 3D作品Viewer查看器
  19. 物联网毕设 -- 人脸识别门禁系统(K210--HEX协议版本)
  20. java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署

热门文章

  1. [财务]暂估业务处理流程
  2. foreach - gt 写法java_java map在JSTL EL中的小应用--lt;c:forEachgt;遍历Maplt;gt;泛型
  3. 表单html中加减数字按钮,纯CSS实现数字加减按钮的最佳方案
  4. 在Revit中,如何编程创建新类型(如窗户或墙)
  5. Android中替换头像图标和背景图片
  6. 英飞凌-AURIX-TC3XX-内核架构:AURIX TriCore 1.6P
  7. 11个开源merkle树实现
  8. App Store审核指南(中文版)2010版
  9. FPS游戏开发--后坐力分析
  10. Parallels Desktop | Mac 系统超好用的虚拟机,不来试试吗