VS Code C# 大括号不在新行

4
无法找到让格式化程序将花括号放在同一行的方法。默认格式化程序似乎完全忽略了与新行相关的所有设置。
有些人建议使用C# FixFormat扩展,但现在已被弃用并从市场上消失。我还发现了这个扩展,但从一开始就清楚地表示它不能帮助解决问题。
Before

public class ClassName {
    public void CallMethod() { 
        this.LongUglyMethod("1234567890", "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
    }
}

After

public class ClassName
{
    public void CallMethod()
    {
        this.LongUglyMethod(
            "1234567890",
            "abcdefghijklmnopqrstuvwxyz",
            "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        );
    }
}

默认的格式化程序似乎完全忽略了所有设置。我到处尝试使用这些设置(如此在此处告知),但它仅考虑与换行无关的所有内容。
{
    "MSBuild": {
        "UseLegacySdkResolver": true
    },
    "FormattingOptions": {
        "NewLine": "\n",
        "UseTabs": true,
        "TabSize": 2,
        "IndentationSize": 2,
        "NewLinesForBracesInLambdaExpressionBody": false,
        "NewLinesForBracesInAnonymousMethods": false,
        "NewLinesForBracesInAnonymousTypes": false,
        "NewLinesForBracesInControlBlocks": false,
        "NewLinesForBracesInTypes": false,
        "NewLinesForBracesInMethods": false,
        "NewLinesForBracesInProperties": false,
        "NewLinesForBracesInObjectCollectionArrayInitializers": false,
        "NewLinesForBracesInAccessors": false,
        "NewLineForElse": false,
        "NewLineForCatch": false,
        "NewLineForFinally": false
    }
}

我尝试使用以下工具:Manjaro Linux、VS Code、Microsoft C# 扩展和 Dotnet 6。

1
默认格式垂直对齐花括号,这对于除JS和Java开发人员外的所有人都有意义。默认C样式使调试更容易。我可以礼貌地请求您为C、C++和C#采用C样式吗? :) 我自1988年以来偏爱K&R C。当编写面向分发的js代码时,我使用js约定,在罗马时要...随着罗马人。 - user10316640
1个回答

11
在您的 Visual Studio Code 中,在 C# 扩展设置 中,确保启用了 Omnisharp: Enable Editor Config Support 选项 (omnisharp.enableEditorConfigSupport)。

enter image description here


请在您的项目目录中创建一个名为.editorconfig的文件,并使用以下内容:
[*.cs]
csharp_new_line_before_open_brace = none

如果文件已经存在,则修改或添加csharp_new_line_before_open_brace = none行到[*.cs]文件块中。
为了避免 else、catch 和 finally 前面出现换行符,还需添加以下行:
csharp_new_line_before_else = false
csharp_new_line_before_catch = false
csharp_new_line_before_finally = false

如果您想在所有项目中应用设置,您可以选择以下方式之一:
  • .editorconfig 文件放置在您的项目目录的共同父目录中;或者
  • .editorconfig 文件放置在主目录中。在Windows中,这是%HOMEPATH%下的目录。

1
我该如何在全局范围内设置它? - Foresteam
@Foresteam 扩展了答案 - NineBerry

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