如何在switch-case语句中自动缩进VSCode?

时间:2020-03-17 17:50:29

标签: c++ c visual-studio-code

vscode会自动执行很多操作,这让人有些沮丧,但是当使用switch-case语句时,它不会自动在冒号后缩进。 这就是我在打字时不会受到干扰的情况

int x = 32;
switch (x){
    case 33:
    break;
    case 32:
    break;
    default:
}

这就是我希望看到的

int x = 32;
switch (x){
    case 33:
        break;
    case 32:
        break;
    default:
}

1 个答案:

答案 0 :(得分:2)

用于自定义格式设置规则的Clang格式

对于任何C ++格式需求,我建议使用Clang Format,它可以无缝集成到VS Code中。

在您的示例中,您可以使用IndentCaseLabels style option

IndentCaseLabels(布尔)

缩进大小写标记了switch语句中的一级。

false时,使用与switch语句相同的缩进级别。 Switch语句主体总是缩进一级 比案例标签(案例标签后面的第一个区块除外, 本身会缩进代码-除非启用了IndentCaseBlocks)。

false:                                 true:
switch (fool) {                vs.     switch (fool) {
case 1:                                  case 1:
  bar();                                   bar();
  break;                                   break;
default:                                 default:
  plop();                                  plop();
}                                      }

应用于您的示例:

//  IndentCaseLabels: true
int x = 32;
switch (x) {
  case 33:
    void();
    break;
  case 32:
    break;
  default:
}

//  IndentCaseLabels: false
int x = 32;
switch (x) {
case 33:
  void();
  break;
case 32:
  break;
default:
}

将Clang格式集成到VS代码中

引用Edit C++ in Visual Studio Code from the VS Code documentation [强调我的]:

[...]

代码格式

用于Visual Studio代码的 C / C ++扩展支持源代码 使用clang-format进行格式化,该文件包含在扩展名中

您可以使用“设置文档格式”(Ctrl + Shift + I)或 只需使用格式选择(Ctrl + K Ctrl + F)中的当前选择 右键单击上下文菜单。 您还可以通过以下方式配置自动格式: 以下设置:

  • editor.formatOnSave-在保存文件时进行格式化
  • editor.formatOnType-在键入时进行格式化(触发;字符)。

默认情况下,clang格式样式设置为“文件”,这意味着它将在您的工作空间中查找.clang-format文件。如果找到.clang-format文件,则根据文件中指定的设置应用格式。 如果在您的工作空间中未找到.clang-format文件,则会根据C_Cpp.clang_format_fallbackStyle设置中指定的默认样式应用格式。当前,默认格式设置样式为“ Visual Studio” ,它近似于Visual Studio中的默认代码格式设置。

[...]