【问题标题】:How do I set up VSCode to put curly braces on a new line?如何设置 VSCode 以将花括号放在新行上?
【发布时间】:2015-12-30 07:05:05
【问题描述】:

假设我输入以下代码并对其进行格式化。

if (condition) { /* Hello! */ }

如果这是 C# 代码,格式如下:

if (condition)
{
    // Hello!
}

如果是 JavaScript,VSCode 的格式是这样的:

if (condition) {
    // Hello!
}

那么我怎样才能为所有语言使用第一种格式样式(新行上的花括号)?我找不到设置或类似的东西。有什么建议吗?

【问题讨论】:

  • 下一行的大括号在Javascript中有副作用,它应该在同一行,根据我的说法,格式化代码的设置应该是原样
  • @Tushar 真的吗?我以为只是格式化。可以参考一些文章或者举个简单的例子吗?
  • 这是因为分号在 JS 中不是强制性的,所以如果你把花括号放在下一行,解释器将如何知道你是否忘记了分号,或者你是否仍然在一些模棱两可的语句中案例? source.
  • @M.Fatih Javascript 的自动分号插入可能会在您将{ 放在下一行时导致问题。著名的例子是return {a: 'b'};,这里{return 的下一行。当添加分号时,相同的语句被视为return; 和下一行{.. 这会导致在您期望对象时返回undefined,阅读更多stackoverflow.com/questions/2846283/…jamesallardice.com/…
  • 格式化配置个人喜好,有的喜欢把左大括号放在新的一行,有的喜欢放在同一行。说“在 Javascript 中将大括号放在同一行有副作用”之类的说法是不正确的。唯一必须将左大括号放在同一行的地方是在“return { ...”语句中。在所有其他情况下,它都很好。在编码标准中,你可以选择你的风格,只要是一致的,如果你选择把你的左括号放在一个新的行上,在你的整个项目中都是一致的。

标签: javascript formatting code-formatting visual-studio-code


【解决方案1】:

按照以下步骤使 Visual Studio Code 格式在 Java ScriptType Script 的新行上打开大括号。 p>

Visual Studio 代码 (v1.20.0)

  1. 转到文件\首选项\设置
  2. 在“用户设置”(在右侧窗格中)中添加以下行

    "javascript.format.placeOpenBraceOnNewLineForControlBlocks": true, 
    "javascript.format.placeOpenBraceOnNewLineForFunctions": true,
    
    "typescript.format.placeOpenBraceOnNewLineForControlBlocks": true,
    "typescript.format.placeOpenBraceOnNewLineForFunctions": true,
    
  3. 保存“用户设置”即可!

【讨论】:

  • 最新版的VS code甚至不需要打字!现在的设计类似于浏览器中的 about:config
  • 设置有帮助,但并不完美,似乎它可以很好地获取给定块的第一个控制语句,但它错过了偶尔的else,和else ifcatch等. 奇怪。
  • 关于如何为 PowerShell 执行此操作的任何建议?
  • C# 怎么样?或csharp?没有像上面这样的格式选项...
  • 我还想添加对链接robertwray.co.uk/blog/braces-on-new-lines-in-visual-studio-code 的引用,这对我有帮助。可能会帮助其他人。
【解决方案2】:

转到 File\Preferences\Settings 并搜索“brace”。

启用如下所示的设置。

这允许我在函数定义和控制块的下一行使用花括号自动格式化代码。

使用 Visual Studio Code 1.30.2 测试

【讨论】:

  • csharp 在哪里?这只是答案的一半。
  • 搜索“curly”得到 0 个结果,“brace”得到结果
【解决方案3】:

默认情况下,VS 代码不支持自定义格式。但是您可以使用 js-beautify 扩展程序进行格式自定义。您可以在 VS code Marketplace (https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify) 上找到免费版本。

对于新行大括号的要求,可以通过在项目根文件夹中创建一个“.jsbeautifyrc”配置文件并定义以下行来设置。

{
     "brace_style": "expand"
}

有关更多格式选项,您可以从以下链接中找到: https://github.com/HookyQR/VSCodeBeautify/blob/master/Settings.md

【讨论】:

    【解决方案4】:

    需要PHP解决方案的人,需要安装PHP Intelephense 扩展并更新settings.json文件。

    "intelephense.format.braces": "k&r" 
    

    默认为psr12

    【讨论】:

      【解决方案5】:

      VSCode>File>Preferences>Settings> 并取消选中 CSharpFixFormat>Style>Braces>On Same Line

      【讨论】:

        【解决方案6】:

        仅供参考:如果是Java。文件\首选项\设置 扩展\Java\代码生成:使用块。

        【讨论】:

        • 如何将所有内容的左大括号放在新行上,而不仅仅是在 if 语句之后?
        【解决方案7】:

        settings.json文件中添加这几行,输入ctrl+,

        打开
          // Brackets on a new line
          "javascript.format.placeOpenBraceOnNewLineForControlBlocks": true,
          "javascript.format.placeOpenBraceOnNewLineForFunctions": true,
          "typescript.format.placeOpenBraceOnNewLineForControlBlocks": true,
          "typescript.format.placeOpenBraceOnNewLineForFunctions": true,
        

        或者在设置中搜索function new line并勾选两个框,输入ctrl+shift+p打开并搜索对于开放 设置(json)

        【讨论】:

          【解决方案8】:

          在 2021 年,默认行为似乎是 OP 想要的。要在 c# 中的同一行上获得花括号(vscode 1.63 with omnisharp),您必须在项目根目录中创建一个omnisharp.json 文件,并按照https://nosuchstudio.medium.com/formatting-curly-braces-on-the-same-line-in-c-in-vscode-c4937e1c215f 中的描述进行适当的设置。例如

          {
          "FormattingOptions": {
              "NewLinesForBracesInLambdaExpressionBody": false,
              "NewLinesForBracesInAnonymousMethods": false,
              "NewLinesForBracesInAnonymousTypes": false,
              "NewLinesForBracesInControlBlocks": false,
              "NewLinesForBracesInTypes": false,
              "NewLinesForBracesInMethods": false,
              "NewLinesForBracesInProperties": false,
              "NewLinesForBracesInObjectCollectionArrayInitializers": false,
              "NewLinesForBracesInAccessors": false,
              "NewLineForElse": false,
              "NewLineForCatch": false,
              "NewLineForFinally": false
          }
          
          }
          

          【讨论】:

            【解决方案9】:

            C_Cpp:Clang_format_fallback 样式

            谷歌

            【讨论】:

              【解决方案10】:

              以下说明适用于 VS Pro 2012...

              1. 在菜单栏上选择工具。
              2. 选择选项...
              3. 展开文本编辑器列表。
              4. 展开 JavaScript 列表。
              5. 展开格式列表。
              6. 选择新行。
              7. 选择将左大括号放置在控制块的新行上。

              我希望这会有所帮助。如果您有任何问题,请随时回复。

              【讨论】:

              • Err... 我在 vscode 上标记了问题。不要求 Visual Studio Community/Professional/Ultimate 等;) (See VSCode here)
              • 这不是 Visual Studio Code 问题的答案; Visual Studio 和 Visual Studio Code 完全不同。
              猜你喜欢
              • 2019-08-16
              • 2019-07-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-09-17
              相关资源
              最近更新 更多