如何在VS Code默认C++格式化器保存时维持数组格式?
解决VS Code默认C++格式化器保留数组排版的问题
要开启保存自动格式化的同时维持数组原有的多行多元素排版,可通过以下两种方法实现:
方法一:项目全局配置(推荐)
VS Code默认的C++格式化器基于clang-format,只需在项目根目录创建配置文件即可统一控制格式:
- 在项目根目录新建
.clang-format(Windows系统命名为_clang-format)文件 - 写入以下配置内容:
--- Language: Cpp # 设置足够大的列宽,避免每行元素被强制拆分 ColumnLimit: 200 # 保持大括号单独一行,匹配原数组格式 BreakBeforeBraces: Allman # 缩进宽度与原代码一致(原代码为4空格) IndentWidth: 4 # 禁止将数组元素拆分为每行一个 BreakArrays: false ---
配置生效后,开启editor.formatOnSave(VS Code设置中开启),保存时其他代码会正常格式化,数组会维持原有的多行多元素排版。
方法二:局部代码禁用格式化
如果仅需保留特定数组的排版,可在代码块前后添加clang-format指令,临时禁用格式化:
// clang-format off const int level[] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, 0, 0, 2, 0, 3, 3, 3, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 3, 3, 3, 0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 0, 1, 0, 3, 0, 2, 2, 0, 0, 1, 1, 1, 1, 2, 0, 2, 0, 1, 0, 3, 0, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 3, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, }; // clang-format on
这段代码会跳过格式化,其他代码仍会在保存时自动格式化。
内容的提问来源于stack exchange,提问作者Aiden Rand
相关产品推荐
相关产品推荐

