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

2024-06-20

有点令人沮丧的是,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:
}

Clang Format 可自定义格式规则

对于任何 C++ 格式化需求,我建议使用铿锵格式 https://clang.llvm.org/docs/ClangFormat.html,可以无缝集成到 VS Code 中。

在您的示例中,您可以使用IndentCaseLabels 款式选择 https://clang.llvm.org/docs/ClangFormatStyleOptions.html:

缩进案例标签(书籍)

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

When false,使用与 switch 语句相同的缩进级别。 Switch 语句体总是多缩进一级 比 case 标签(case 标签后面的第一个块除外, 它本身会缩进代码 - 除非启用了 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 Code 中

Citing 在 Visual Studio Code 中编辑 C++来自 VS Code 文档 https://code.visualstudio.com/docs/cpp/cpp-ide [emphasis mine]:

[...]

代码格式化

The Visual Studio Code 的 C/C++ 扩展支持源代码 格式化使用clang-format这是包含在扩展中.

您可以使用“格式化文档”(Ctrl+Shift+I) 来格式化整个文件,或者 仅使用格式选择 (Ctrl+K Ctrl+F) 中的当前选择 右键单击上下文菜单。您还可以配置自动格式化和 以下设置:

  • editor.formatOnSave - 保存文件时进行格式化.
  • editor.formatOnType- 在您键入时进行格式化(在;特点)。

默认情况下,clang-format 样式设置为“file”,这意味着它寻找一个.clang-format工作区中的文件。如果.clang-format找到文件后,将根据文件中指定的设置应用格式。If no .clang-format在您的工作区中找到文件,根据中指定的默认样式应用格式设置C_Cpp.clang_format_fallbackStyle设置代替。现在,默认格式样式是“Visual Studio”这是 Visual Studio 中默认代码格式化程序的近似值。

[...]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 VSCode 中的 switch-case 语句中自动缩进? 的相关文章

  • 为什么相同的代码在同一台计算机上的执行时间可能不同?

    我是 C 编程新手 我编写了代码并希望获得它的运行时 这就是我所做的 每次运行代码时 我都会得到不同的运行时值 这样对吗 或者我的代码有问题吗 int main int argc char argv time t start end sta
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi

随机推荐

  • 从 apk 文件生成 Android App Bundle aab

    我正在使用 Xamarin 开发 Android 应用程序 据我所知 它不支持 Android 应用程序包 https github com xamarin xamarin android issues 1709 所以我想知道是否有任何方法
  • React 文件预览 (FIREBASE)

    我目前将文件存储在 Firebase 存储中 我希望能够实时生成每个文件的文件预览 映射 例如 PDF 文件会将第一页显示为图像 docx 将是文档的第一页 pptx 将是第一张幻灯片 未知文档将是默认文档符号 有人知道有什么好的服务可以轻
  • 模板类的格式错误的非模板方法的实例化

    我正在研究两阶段名称查找 https stackoverflow com questions 7767626 two phase lookup explanation needed 一个非常合乎逻辑的解释表明主要推理之一 https sta
  • Vue - 在设置脚本中使用 i18n

    我需要找到一种方法来使用 t of i18n在我的设置脚本中vue project 我的 i18n 文件如下所示 import createI18n from vue i18n import en from en import es fro
  • SQLAlchemy 相当于 Django ORM 的关系跨越过滤器

    这个例子来自于Django 文档 https docs djangoproject com en 1 3 topics db queries 给定 Django 数据库模型 class Blog models Model name mode
  • 解析分隔字符串

    我怎样才能得到 connect 100 username example 从这个字符串 ngg connect gt 100 username gt example Using std string find有参数 and gt and s
  • Angular ng new 返回包安装失败错误-compiler.umd.js 丢失

    我正在尝试学习 Angular 并且正在学习在线教程 但是 我似乎无法通过 ng new 创建一个新项目 我在 Windows 7 上运行节点 v10 16 0 和 npm 6 9 0 我在日志中收到以下错误 15177 verbose c
  • 使用多线程并行化 Java 中的 for 循环

    我对java很陌生 我想使用执行器服务或使用java中的任何其他方法并行化嵌套for循环 我想创建一些固定数量的线程 这样CPU就不会完全被线程占用 for SellerNames sellerNames sellerDataList fo
  • 使用纯javascript选择最接近id的id

    div div TEXT div div div div TEXT div div div TEXT div 如何选择最接近div1的div2 关注w3docs https www w3 org TR html4 struct global
  • 注入实例上的 Guice 空指针异常

    我在 Jersey2 中使用 Guice 进行 DI 我想使用它 这样我就可以使用 Google App Engine gt 不使用 HK2 我的应用程序资源 public class ApplicationResource extends
  • 如何更改 Android 中的材质日期和时间选择器背景颜色?

    How to 更改材质日期和时间选择器背景颜色在安卓中 我发现许多解决方案默认日期和时间选择器不是材料设计 您可以使用以下方法覆盖默认颜色 val datePicker MaterialDatePicker Builder datePick
  • 动态查找 EJB

    我正在 Glassfish 3 上开发一个应用程序 我有一个如下所示的 EJB LocalBean Stateless public class MyBean public void doSomething 我的客户端代码 在同一应用程序内
  • Extjs 4.2:如何在 Ext.Ajax.Request POST 中正确发送参数

    我必须从 ExtJs 脚本执行 POST 才能从数据库中删除某些内容 Ext Ajax request url deleteRole html method POST headers Content Type text html waitT
  • 使用 pd.concat() 时,生成的数据框列名称显示在括号中并添加逗号

    我对 Python 编程相当陌生 我不明白为什么会发生这种情况 我正在使用 UCI 机器学习存储库中的 在线购物者购买意图数据集 我将具有数值特征和分类特征的数据分成两个单独的数据框 一个用于cat data 一个用于num data 以虚
  • 使用 groupby 过滤器后应用 jinja 过滤器

    我有一个字典列表 我想按某个属性进行分组 然后按另一个属性求和 对于变量 foo 这将类似于 foo groupby a sum attribute b 这显然行不通 因为之后groupby 我有一个元组列表 有什么方法可以解压元组然后重新
  • 为什么在 HTML 中使用 onClick() 是一种不好的做法?

    我多次听说使用 JavaScript 事件 例如onClick 在 HTML 中是一种不好的做法 因为它不利于语义 我想知道以下代码有什么缺点以及如何修复 a href link a 你可能正在谈论不引人注目的 JavaScript htt
  • 使用when条件来匹配输出寄存器中的字符串(Ansible)

    我无法在输出变量中搜索我用于 when 语句的指定字符串 下面的代码应该检查输出变量中的字符串 distribute list 但是当运行剧本时它会给出错误 fatal 192 168 3 252 FAILED gt failed true
  • 在 C++ 中使用直接访问文件

    我对 C 以及一般的编程 非常陌生 并且正在从事一个让我感到困惑的项目 并不难做哈 该项目涉及直接访问文件 我们将创建一个由一系列零件记录组成的文件 以下是一些规格 应包含标头记录 24 字节 填充 指示 有效项目的数量 每个 24字节长
  • 排序线程按照它们创建/启动的顺序运行

    我如何按照线程实例化的顺序对线程进行排序 我怎样才能让下面的程序按顺序打印数字1 10 public class ThreadOrdering public static void main String args class MyRunn
  • 如何在 VSCode 中的 switch-case 语句中自动缩进?

    有点令人沮丧的是 vscode 会自动执行很多操作 但是当使用 switch case 语句时 它不会在冒号后自动缩进 这就是如果我在不干扰的情况下打字的话我会得到的结果 int x 32 switch x case 33 break ca