如何在C#和C++中设置VSCode在输入时将花括号放在新行上?

11
我希望VS Code在C#和C ++中将花括号放在新行上
现在的工作方式: How it works now 应该这样看: How it should look 尝试了C# FixFormat扩展,但只有在按下CTRL + K + F后才能运行,但我想在编码时VS Code自动将花括号放在新行上,而不需要其他步骤,如热键等。
7个回答

8

由于 C#FixFormat 已被移除,请尝试将以下内容放入项目根目录下的 omnisharp.json 文件中。

{
    "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
    }
}

1
请注意,从Omnisharp 1.39.2开始(在VS Code C#扩展程序1.25.1中),除非您转到VS Code设置并将“omnisharp.enableEditorConfigSupport”设置为false,否则可能不会使用omnisharp.json文件。要么这样,要么使用.editorConfig文件。 https://github.com/OmniSharp/omnisharp-vscode/issues/5446#issuecomment-1308655891 - fenix.shadow

3
在我的情况下,我使用的是微软的C#扩展程序(3.5星级)。默认情况下,这个扩展程序使用它的默认C#格式化程序。如下所示禁用格式化选项,您将不会得到任何格式化,包括令人讨厌的NewLinesForBracesInMethods。或者您可以尝试调整C#扩展程序的格式化程序。更多信息在此处
所以我用五星级的C# FixFormat扩展程序替换了它。这似乎对我来说直接起作用了。
但后来我意识到,我没有得到自动完成,所以我重新安装了微软的C#扩展程序,并保留了FixFormat扩展程序。它很好地工作,没有花括号的新行。

3
现在C#的FixFormat已经不存在了,我该怎么做? - NOT_A_ROBOT

0

enter image description here

从首选项/设置中选择c# FixFormat并取消勾选复选框(大括号:同一行)。


0
在VSCode中,转到文件\首选项\设置并搜索“curly”。按照图像中给出的方式启用所有四个typescript。

CurlyBraces


3
已经尝试过了,似乎不会影响C#和C++的格式。 - Mikhail Alexeev
对我来说也没有改变,关于 VS Code 令我烦恼的许多事情之一是有些东西似乎很难按照自己的意愿设置。可能又是另一个扩展程序在干扰它。 - BugFinder
@BugFinder 对我来说它运行良好,但你是对的,它可能与另一个扩展程序产生干扰。 - user11458208
我尝试了这个设置,除了C#扩展以外的所有扩展都禁用了,但是大括号仍然在同一行上。 - Mikhail Alexeev
1
我刚刚让它工作了,但不完全是我想要的方式。我添加了扩展名为“c# fixformat”,它并没有改变代码完成的默认行为,至少目前还没有,但如果你说格式化文档,它会让你选择,然后它会把 { 放在下一行... 但这真是一场混乱。 - BugFinder
我刚刚卸载了它并安装了Visual Studio社区版。很抱歉要说,Visual Studio Code不好。 - Saad Anees

0
如果你想要全局添加这个,你可以执行以下步骤:
  1. 打开目录:$HOME/.omnisharp(如果不存在该目录,则需要创建)
  2. 在该目录下新建一个文件并命名为:omnisharp.json
  3. 复制@thornebrandt的回答中的内容并粘贴到该文件中,保存
  4. 进入VS Code并使用快捷键 alt + shift + f 格式化代码
{
    "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
    }
}

0

虽然此链接可能回答了问题,但最好在此处包含答案的关键部分,并提供链接作为参考。仅有链接的答案可能会因链接页面的更改而失效。- 来自审阅 - Jan Schultke

0
完成您的代码,然后按Shift+Alt+F(或通过右键单击选择菜单)将自动格式化所有内容。不需要其他任何东西 :-)

enter image description here


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