JS/TS 是否有像 eslint 这样全面的 C# linter 和格式化程序?

Is there a comprehensive C# linter and formatter like eslint for JS/TS?

我想让我的 C# 项目 (.NET Core 3.1+) 在本地和 CI 环境中的每个构建中都被检查和格式化。我知道 .NET 6 中有新的 .NET Analyzers 功能和 dotnet-format 工具,但我无法从文档中了解到我是否可以制作一个这两个工具都可以使用的综合配置文件,以便我可以强制执行某些我团队中的代码风格。你能帮我理解一下吗?

是的,有 - Roslyn 分析器。

.csproj 中设置了 EnforceCodeStyleInBuild 元素:

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>

    <!-- this! -->
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
  </PropertyGroup>

你项目中的一个.editorconfig文件,你可以这样得到:

dotnet new editorconfig

并更新您的 VS Code settings.json 以包括:

{
  "omnisharp.enableRoslynAnalyzers": true,
  "omnisharp.enableEditorConfigSupport": true
}

你应该去参加比赛了!我在这里更深入地写了这个:

https://blog.johnnyreilly.com/2022/04/06/eslint-your-csharp-in-vs-code-with-roslyn-analyzers