如何设置VSCode使花括号与同一行?

9

默认情况下,这个

{path: '/post/:postId', component: Post},

正在转换为此

{
    path: '/post/:postId',
    component: Post
},

我该如何禁用这种行为?
更新:我正在使用JavaScript编程,上次是在vuejs中使用vetur插件。
更新2:代码示例。
// before
export default new Router({
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About },
    { path: '/todo', component: Todo },
  ]
})
// after formatting (curly braces are moved on new line)
export default new Router({
    routes: [{
            path: '/',
            component: Home
        },
        {
            path: '/about',
            component: About
        },
        {
            path: '/todo',
            component: Todo
        },
    ]
})

更新3. 或许使用Prettier可以解决这个问题?

更新4. 在我的情况下,问题出在了额外的格式化插件上。Beautify作为默认选项安装了,导致所有设置vscode格式化器的设置都无法生效。

解决方案是将vscode格式化器或prettier设置为默认选项。

"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
},

感谢大家,特别是maven87。

4
这是我使用的语言中比较标准的惯例。如果其他人要阅读你的代码,你可能希望遵循惯例。 - Adrian
1
@Adrian,我同意这很重要。但是这个问题是关于另一个问题的。 - Skif
1
你正在使用哪种编程语言进行编码? - Ravi
JavaScript,上次在vuejs中使用了vetur插件。 - Skif
你能加入更多的代码吗?这样我们才能更好地进行调试。比如你使用了数组或函数等。 - Ravi
显示剩余5条评论
3个回答

10

您正在寻找的设置为:

{
  // Defines whether an open brace is put onto a new line for control blocks or not.
  "javascript.format.placeOpenBraceOnNewLineForControlBlocks": false,

  // Defines whether an open brace is put onto a new line for functions or not.
  "javascript.format.placeOpenBraceOnNewLineForFunctions": false
}
请参考用户和工作区设置文章。它也涵盖了其他语言的类似设置。
如果那不提供足够的控制,您还可以选择使用Beautify并指定一个.jsbeautifyrc文件,其中包含以下括号样式设置:
{
   "js": {
       "brace_style": "collapse,preserve-inline"
    }
}
请参考此链接以查看所有可能的值。 更新 有人指出还有一种控制程度:如果您想要完全更改格式化程序,则需要安装正确的VS Code插件,然后配置适当的格式化程序(请参阅用户和工作区设置文章)。例如:
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
}

在这种情况下使用的格式化程序是Prettier - Code formatter


那么对于 JSON 对象字面量呢?它们既不是控制块也不是函数。 - karmakaze
在我的情况下,问题出在附加的格式化插件上。Beautify 被安装为默认的格式化选项,而 vscode 格式化程序的所有设置都无效。解决方案是将 vscode 格式化程序或 prettier 设置为默认。你让我得到了这个想法。请修改你的答案,我会标记它为解决方案。 - Skif
对于beautify插件,您可以使用beautify.language设置,并指定js映射到javascript和json。您可以查看它们的Readme获取更多信息。 - maven87

1
在VS Code中,转到设置: "文件->首选项->设置"
在设置中搜索"curly"。 它会搜索以下设置,请取消选择它们并验证是否按预期工作。 输入图像描述

0
在我的情况下,问题出在附加的格式插件上。Beautify 被安装为默认的格式选项,而所有 vscode 格式化器的设置都无效。
解决方案是将 vscode 格式化器或 prettier 设置为默认选项。
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
},

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接