我创建了新文件,设置了C#语言,编写了一些代码。然后按Ctrl + Shift + F(或F1 - >格式文档)。并得到错误
很抱歉,但没有安装' csharp' -files的格式化程序。
我也安装了C#扩展,但它没有帮助。 VS Code版本是1.18.0
答案 0 :(得分:23)
如果您像我一样将 prettier 作为默认格式化程序,您应该这样做:
这是我的配置:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[csharp]": {
"editor.defaultFormatter": "ms-dotnettools.csharp"
}
}
要应用此配置,您需要 c# 扩展名。
答案 1 :(得分:6)
答案 2 :(得分:3)
由omnisharp驱动的c#扩展没有包含格式化程序(据我所知)。
您可以安装c# FixFormat。这对我来说很有把握,但格式化程度不如Visual Studio IDE中那么好。
答案 3 :(得分:3)
带有OmniSharper的VSCode在没有.csproj文件的情况下不会格式化c#代码。
您可以使用带有.NET Core SDK的dotnet new console
创建新项目。
答案 4 :(得分:3)
我发现还有另一种设置会干扰C#的格式。
"omnisharp.useEditorFormattingSettings": true
将此设置为false
会为我修复缩进。
答案 5 :(得分:3)
浏览Visual Studio代码扩展库,并确保您已安装C#扩展ms-dotnettools.csharp
按 Ctrl + ,打开“设置”面板。将editor.formatOnType
设置更改为启用。默认情况下,我的Visual Studio代码中未启用此功能。
重新启动Visual Studio代码。现在,当您使用分号结束该行或关闭合并范围的外部括号时,它应该使代码自动格式化。
注意:这是编辑器的全局设置,因此它可以启用其他语言的自动格式设置,而不仅仅是C#。
这已在Visual Studio Code版本1.43.1上进行了测试。
答案 6 :(得分:2)
在更新到vs.code 1.20.1并重新启用omni-sharp之后解决了。
并设置" csharp.format.enable"到"真"在工作区设置中。 (如果它是真的并且还没有工作,则将其更改为false然后更改为true)
答案 7 :(得分:1)
就我而言,我之前通过 Homebrew 安装了 dotnet
和 dotnet-sdk
,这些似乎会导致 OmniSharp 的冲突。所以我通过以下方式删除了 dotnet
:
brew uninstall dotnet
另外,为了以防万一,我通过以下方式重新安装了 dotnet-sdk
:
brew reinstall dotnet-sdk
另外,我重新启动了我的 Mac,然后它终于工作正常了。
答案 8 :(得分:0)
答案 9 :(得分:0)
如果您仍然遇到此问题,请注意,OmniSharp扩展名在was not opened from inside a folder(from here)的.cs文件上表现不佳。
要解决此问题,请确保从文件夹(Ctrl + K,Ctrl + O)中打开所需的文件:
然后格式化将起作用(以及其他OmniSharp功能)。
答案 10 :(得分:0)
即使在 VSCode 中设置制表符/空格大小后,Omnisharp 仍然使用自己的规则,您可以通过使用带有自定义规则的“omnisharp.json”来更改它们。 有关这些规则的更多信息以及可以在何处添加文件检查 this article。