C#是否有漂亮的打印机/代码格式化程序(作为构建系统的一部分)?

luc*_*iet 15 c# pretty-print

C#是否有漂亮的打印机/代码格式化程序(作为构建系统的一部分)?读作:"生活在Visual Studio之外".对于Java,C++/C,Go来说似乎有很多这样的东西 - 所以C#应该还有一些代码格式化程序存在于IDE之外,这似乎更合理吗?

(我实际上喜欢将格式化程序与StyleCop结合起来,并且让dev在提交之前将其作为进程的一部分运行).

注意:不是语法高亮,如在网页中的代码中.相反,代码美化器或代码漂亮的打印机,它将代码和格式化为样式/标准编码格式...... StyleCop进行样式检查以查看代码是否符合格式.

Sti*_*rud 26

终于有;夏皮尔

它最初是从流行的Prettier移植而来的,它只是C# 的代码格式化程序。它可以从命令行运行,并且不依赖于 IDE 或扩展,尽管也存在对这些的支持。您可以使其作为 git-hook 的一部分运行,例如在 git commit 上自动格式化已更改的文件。

与其他格式化工具相比,选择 Csharpier 的一些好处包括:


Set*_*eno 6

JetBrains 还制作了一个名为CleanupCode的免费命令行工具,它根据.editorconfig设置格式化 c# 。我为它编写了一个名为ReGitLint的包装器实用程序,它使作为预提交钩子或在构建服务器上运行变得更容易和更快。如果您的团队成员使用 Visual Studio Code 而 ReSharper 不是一个选项,那么这会很有帮助。

要起床并运行以下命令

dotnet tool install JetBrains.ReSharper.GlobalTools
dotnet tool install ReGitLint
Run Code Online (Sandbox Code Playgroud)

然后将以下内容添加到 .git/hooks/pre-commit

#!/bin/sh
dotnet regitlint -f staged --fail-on-diff
Run Code Online (Sandbox Code Playgroud)

要在 jenkins 上强制格式化,请将其添加到您的构建脚本中

dotnet tool restore
dotnet regitlint --jenkins
Run Code Online (Sandbox Code Playgroud)

有关更多选项,请查看自述文件


Kis*_*aki 5

对于 .NET SDK 项目,可以使用dotnet format 命令。

dotnet 格式是一种代码格式化程序,可将样式首选项应用于项目或解决方案。将从文件中读取首选项.editorconfig(如果存在),否则将使用默认的首选项集。

如果经典 .NET Framework 项目不导入 .NET SDK 上不可用的内容(例如文本模板化 msbuild 目标),它也可能适用于该项目。

dotnet 格式源存储库位于GitHub dotnet/format 上

这些.editorconfig规则已记录在案,并且可以从 Visual Studio 导出并由 Visual Studio 使用。


Ami*_*adi 5

.NET 6+ \xe2\x80\x94 dotnet format

\n

在提出这个问题 10 年后,.NET SDK 现在附带了一个内置格式化命令:dotnet format\xe2\x80\x94有关更多信息,请参阅文档GitHub存储库。

\n

dotnet format曾经是一个第三方工具,最终被合并到官方.NET SDK中,从.NET 6 \xe2\x80\x94开始见公告

\n

用法:

\n

您可以在任何存在.csproj.sln文件的目录中运行该命令,解决方案/项目中的所有 C#(或 VB.NET)文件都将被格式化:

\n
dotnet format\n
Run Code Online (Sandbox Code Playgroud)\n

或者您可以专门针对单个文件运行它:

\n
dotnet format --include Program.cs\n
Run Code Online (Sandbox Code Playgroud)\n

格式设置将基于.editorconfig文件中概述的首选项(如果您有),否则它将使用自己的默认值。

\n


AlG*_*AlG 4

第一个想到的是ReSharper。然而,它是 VS 的一个插件,这不是你所要求的。我不确定您是否可以将其设置为保存时自动格式化。

从他们的网站

ReSharper 可以根据您的代码风格首选项重新格式化任意选定的代码块、当前文件中的所有代码、目录中的所有文件,甚至整个项目或解决方案。ReSharper 为 C#、VB.NET、JavaScript、CSS 和 XML 代码提供独特的格式化选项。重新格式化会影响大括号布局、空行、换行和换行、各种上下文中的空格、缩进、对齐多个结构以及您可以在 ReSharper 选项对话框中微调的更多选项。