For*_*eam 5 c# formatting braces omnisharp visual-studio-code
找不到使格式化程序将大括号放在同一行的方法。默认格式化程序似乎完全忽略与新行相关的所有设置。
有些人推荐 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"
);
}
}
Run Code Online (Sandbox Code Playgroud)
默认格式化程序似乎完全忽略这些设置。我试图把它们放在任何地方(正如这里所说的那样),但它只考虑与新行无关的所有内容。
{
"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
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过:Manjaro Linux、VS Code、Microsoft C# 扩展、Dotnet 6
Nin*_*rry 12
在Visual Studio Code的C# 扩展设置中,确保启用Omnisharp:启用编辑器配置支持选项 ( )。omnisharp.enableEditorConfigSupport
.editorconfig然后在项目目录中创建一个名为以下内容的文件:
[*.cs]
csharp_new_line_before_open_brace = none
Run Code Online (Sandbox Code Playgroud)
如果文件已存在,请修改或添加文件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
Run Code Online (Sandbox Code Playgroud)
如果您想在所有项目中应用这些设置,您可以
.editorconfig在项目目录的公共父目录中或.editorconfig中。在 Windows 中,这是 %HOMEPATH% 下的目录。| 归档时间: |
|
| 查看次数: |
2287 次 |
| 最近记录: |