VS Code不格式化C#代码

and*_*ral 26 c# visual-studio-code

我创建了新文件,设置了C#语言,编写了一些代码.然后按Ctrl + Shift + F(或F1 - >格式文档).并得到错误

抱歉,没有安装'csharp'文件的格式化程序.

我也安装了C#扩展,但它没有帮助.VS Code版本是1.18.0

ezh*_*a99 32

如果你像我一样将默认格式化程序更漂亮,你应该这样做:

  1. 使用以下快捷方式打开您的 vscode 设置:ctrl + ,, 或在此处输入图片说明

  2. 然后点击“打开设置(JSON)”: 在此处输入图片说明

  3. 这是您应该粘贴以下代码段的地方。

这是我的配置:

{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "[csharp]": {
    "editor.defaultFormatter": "ms-dotnettools.csharp"
  }
}
Run Code Online (Sandbox Code Playgroud)

要应用此配置,您需要c#扩展。


Pav*_*huk 18

带有OmniSharp 的Visual Studio Code不会在没有 .csproj 文件的情况下格式化 C# 代码。

您可以dotnet new console使用 .NET Core SDK创建一个新项目。

  • 文件名也必须采用标题大小写。 (2认同)

Sam*_*ath 12

这对我有用。

Note:如果已true选中,请清除该复选框,然后再次设置为True。之后,您必须重新启动VS Code。

文件->首选项->设置->

在此处输入图片说明

  • 在Windows上是Shift + Alt + F,在ubuntu上是Ctrl + Shift + I (4认同)
  • 感谢您指出“(需要重新启动)”。我完全错过了。 (2认同)
  • 对我不起作用,重新启动后仍然要求我提供 csharp 文件的格式化程序 (2认同)

小智 10

尝试为您的项目创建一个OmniSharp 配置,该配置将允许您自定义 C# 代码的格式。在项目根目录中
创建(靠近文件)omnisharp.json.sln

{
  "FormattingOptions": {
    "newLine": "\n",
    "useTabs": false,
    "tabSize": 4,
    "indentationSize": 4
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:要确认更新,omnisharp.json您应该重新加载 vscode ( ctrl+ shift+ p-> Developer: Reload Window)

有关 OmniSharp 配置的更多信息:https://www.strathweb.com/2017/01/c-code-formatting-settings-in-vs-code-and-omnisharp/


And*_*w B 9

  1. 浏览 Visual Studio Code 扩展库,并确保已安装 C# 扩展 ms-dotnettools.csharp

    显示 C# OmniSharp 扩展的 VS Code 扩展面板

  2. Ctrl+,打开设置面板。更改editor.formatOnType要启用的设置。这在我的 Visual Studio Code 中默认没有启用。

    带有 editor.formatOnType 设置的 VS Code 设置窗口

  3. 重新启动 Visual Studio 代码。现在,当您使用分号完成该行或关闭范围的外大括号时,它应该使代码自动格式化。

注意:这是编辑器的全局设置,因此它可以为其他语言启用自动格式化,而不仅仅是 C#。

这是在 Visual Studio Code 1.43.1 版上测试过的。

  • OP 没有要求启用类型格式 (2认同)

Pet*_*ter 6

由 Omnisharp 提供支持的 C# 扩展没有包含格式化程序(据我所知)。

您可以安装C# FixFormat。这对我有用,但格式不如 Visual Studio IDE。

  • Omnisharp 确实包含一个 C# 格式化程序。只需确保从文件夹中打开文件 - 请参阅我的答案:/sf/answers/4140795571/ (2认同)
  • 此扩展现已从 Marketplace 取消发布。 (2认同)

小智 6

我发现还有另一个设置会干扰 C# 的格式化。

"omnisharp.useEditorFormattingSettings": true
Run Code Online (Sandbox Code Playgroud)

false为我将其设置为固定缩进。

  • 我找不到这个特定的设置,但是我发现,如果选择“Omnisharp:选择项目”,然后选择我的项目,那么我的格式就会被排序 (4认同)

nap*_*i15 -1

使用Synaptic包管理器并将代码包标记为“完全删除”,然后单击“应用”。

这儿

Delete ~/.vscode
Delete ~/.config
Reinstall
Run Code Online (Sandbox Code Playgroud)

这对我有用。