如何阻止Prettier将.code-snippets文件的多行数组合并为单行?
解决Prettier格式化VS Code代码片段文件时合并数组为单行的问题
问题根源
log.code-snippets是VS Code的代码片段文件,会被识别为JSONC格式。Prettier默认会把未超出printWidth的JSON数组合并为单行,而VS Code内置格式化器会保留数组的多行结构,这就是两者行为差异的核心原因。
方案1:全局配置Prettier强制数组换行(推荐,适用于Prettier 3.0+)
如果希望所有JSON/JSONC文件的数组都保持多行格式,可按以下步骤修改配置:
- 确认Prettier版本为3.0及以上,版本过低则先升级:
npm install prettier@latest --save-dev
- 在
.prettierrc中添加jsonArrayFormat配置项:
{ "printWidth": 140, "jsonArrayFormat": "indent" }
该配置会强制JSON数组的每个元素单独占一行,不受printWidth限制。
方案2:仅针对log.code-snippets文件切换格式化器
如果不想改动全局JSON格式化规则,可在VS Code的settings.json中为该文件单独指定内置格式化器:
{ "files.associations": { "log.code-snippets": "jsonc" }, "[jsonc].log.code-snippets": { "editor.defaultFormatter": "vscode.json-language-features" } }
设置后,其他JSONC文件仍用Prettier格式化,仅log.code-snippets保留多行数组结构。
方案3:忽略该文件的Prettier格式化
若不需要Prettier处理log.code-snippets,可在.prettierignore中添加:
log.code-snippets
保存时该文件会自动使用VS Code内置格式化器。
内容的提问来源于stack exchange,提问作者xkeshav
相关产品推荐
相关产品推荐

