使用 vscode 安装配置 clang-format(代码格式化)

目前,网上能找到的配置教程都是乱教的。他们以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);// c
 
    printf("%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; // a
  int b = 0; // b
             //
  b = MACRO3(a); // c

  printf("%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会认为是纯文本
command.cs 改名成  command.cqq
点击它让vscode 认定它是CSharp. 这样才能使用格式化命令。
在这里插入图片描述

在这里插入图片描述
这里把列数限制了
ColumnLimit: 50
按 ctrl+a, ctrl+k,ctrl+f 执行一下试试
得到效果图如下:
在这里插入图片描述
成功按50列换行。

如果有什么不明白的地方,请留言讨论。

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VSCode是一个开源的轻量级代码编辑器,而Clang-Format是一个用于格式化C、C++和Objective-C代码的工具。它们可以配合使用,以提高代码的规范性和可读性。 要正确匹配VSCode版本和Clang-Format插件,首先需要确保VSCodeClang-Format插件都是最新版本,以获得最佳的兼容性和稳定性。 在VSCode安装Clang-Format插件非常简单。首先,打开VSCode编辑器,然后点击左侧的“扩展”图标。在搜索栏中输入“Clang-Format”,找到Clang-Format插件并点击“安装”按钮进行安装安装完成后,点击“启用”按钮激活插件。 一旦Clang-Format插件安装完成并激活,你可以通过以下步骤配置插件: 1. 打开VSCode的设置菜单,选择“首选项” > “设置”。 2. 点击右上角的“打开设置(json)”按钮,打开设置文件。 3. 在设置文件中,你可以配置Clang-Format的选项。例如,你可以设置格式化的样式、缩进的大小等。你还可以指定Clang-Format配置文件路径,以便更具体地定义格式化规则。 4. 保存设置文件并关闭。 现在,当你在VSCode编辑器中打开C、C++或Objective-C代码文件时,你可以使用快捷键或右键菜单中的选项来应用Clang-Format插件。选择适当的选项后,Clang-Format格式化代码,并应用你在设置文件中定义的规则。 总之,VSCodeClang-Format插件可以很好地匹配使用,以提供高质量的代码格式化和规范化。通过安装最新版本的VSCodeClang-Format插件,并正确配置插件选项,你可以获得更好的代码编写体验。 ### 回答2: VSCode是一款广受欢迎的集成开发环境(IDE),拥有丰富的扩展功能,可以帮助开发者提高工作效率。而Clang-Format是一个用于代码格式化的插件,可以帮助开发者在编写代码时保持统一的代码风格。 VSCode的版本与Clang-Format插件的匹配需要确保两者之间的兼容性。通常来说,VSCode版本与插件的匹配主要受两方面的影响:VSCode本身的功能和插件的兼容性。 首先,VSCode的版本需要满足一定的功能要求,以支持Clang-Format插件的运行。对于较新的VSCode版本,通常会包含丰富的API和功能,提供了更好的扩展性和兼容性,能够更好地支持插件的运行。 其次,插件本身需要兼容当前使用Clang-Format工具版本。Clang-Format是由Clang项目开发的一款代码格式化工具,用于统一代码的风格。该工具会不断进行更新和发布新的版本,不同的版本可能会存在一些差异和兼容性问题。因此,在选择Clang-Format插件时,需要确保该插件的兼容性覆盖了当前使用Clang-Format工具版本。 总而言之,为了保持VSCode版本与Clang-Format插件的匹配,我们需要选择适用于当前VSCode版本的Clang-Format插件,并确保该插件的兼容性覆盖了所使用Clang-Format工具版本。这样,我们就能够在编写代码时,通过Clang-Format插件实现代码的统一格式化,提高代码的可读性和维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值