如何阻止Visual Studio Code格式化简短JavaScript对象?
当然有办法搞定这个问题!要让VS Code乖乖保留你偏好的短JavaScript对象格式,得看你平时用的是VS Code自带的JS/TS格式化工具,还是Prettier这类第三方格式化插件,我分两种情况给你说具体操作:
情况1:使用VS Code内置的JavaScript/TypeScript格式化工具
如果你没装额外的格式化插件,用的是VS Code自带的工具,可以通过调整以下设置实现:
- 打开VS Code设置面板(快捷键:Windows/Linux按
Ctrl+,,Mac按Cmd+,) - 在搜索框输入
javascript.format.objectLiteralWrapThreshold(如果是TypeScript代码,就搜typescript.format.objectLiteralWrapThreshold) - 把这个值调整为你想要的阈值:比如设为3,意味着只有当对象的属性数量超过3个时,才会被格式化成多行;如果想让所有短对象都保持一行,可以把值设成一个很大的数(比如999)
举个例子,设为3后,下面的短对象会保持一行:
const user = { name: 'Bob', age: 30, city: 'New York' };
而属性超过3个的对象才会被自动换行。
情况2:使用Prettier作为格式化工具
如果你的项目用Prettier做格式化,需要修改Prettier的配置文件来控制对象换行:
- 在项目根目录创建或修改
.prettierrc.json文件 - 添加以下配置(根据你的需求调整参数):
{ "objectCurlyNewline": { "multiline": true, "minProperties": 4 }, "printWidth": 80 }
minProperties:设置触发对象换行的最小属性数,比如设为4,那3个及以内属性的短对象会保持一行- 如果想完全禁用短对象的自动换行,也可以直接把
objectCurlyNewline设为false
另外要注意:确保VS Code的默认格式化工具已经设为Prettier——打开设置搜索default formatter,选择esbenp.prettier-vscode即可。
临时禁用特定代码块的格式化
如果你只是想让某一段短对象不被格式化,还可以用注释来临时禁用:
- 用Prettier的话,在对象上方加
// prettier-ignore:
// prettier-ignore const shortObj = { id: 1, status: 'active' };
- 用内置工具的话,加
// @format-ignore:
// @format-ignore const shortObj = { id: 1, status: 'active' };
这样设置后,VS Code就会尊重你偏好的短对象格式啦!
内容的提问来源于stack exchange,提问作者bonblow
相关产品推荐
相关产品推荐

