myesn

myEsn2E9

hi
github

CSharpier 代码格式化工具

背景#

在 Visual Studio 中,一般通过默认的快捷键 Ctrl + K + D 来格式化当前文件中的所有内容。

与我自己而言,代码的格式化非常重要,它影响着我的阅读体验。但是,与我工作的一些同事和一些公司老人,他们并不会特别在意代码的格式问题,这就让我有点无语了,我看到之后虽然会修复,但这会造成一些多余的 git commit 记录,浪费我的时间。

所以,我需要找到一个类似 Prettier 的自动格式化工具,来帮助我在阅读代码前,自动的格式化整个项目里面的所有代码。

偶然间我发现了 CSharpier,我只能说 Good!关于他的介绍,可以在官网中清晰的看到。

接下来,我们来看看怎么安装。

安装 CSharpier CLI#

为单个项目安装#

这样做的好处是,可以声明当前项目依赖的 dotnet tool,方便它人还原依赖。

  1. 新建 .config/dotnet-tools.json:
dotnet new tool-manifest
  1. 为当前项目安装 CLI:
dotnet tool install csharpier

更新:

dotnet tool update csharpier

全局安装#

全局安装:

dotnet tool install --global csharpier

更新:

dotnet tool update csharpier -g

安装 Visual Studio 插件#

下载插件:https://marketplace.visualstudio.com/items?itemName=csharpier.CSharpier

然后就可以在代码中右键点击 Reformat with CSharpier 按钮来格式化当前文件:
image

也可以自定义快捷键,或者在保存时自动格式化,参考插件主页:https://marketplace.visualstudio.com/items?itemName=csharpier.CSharpier

使用#

在解决方案根目录或者指定项目目录中执行:

dotnet csharpier .

image

格式化配置#

如果需要修改默认的格式化参数,就需要在项目中添加配置文件,目前支持的格式有 3 种:

我采用 YAML 文件,也就是在根目录创建一个 .csharpierrc,然后把以下配置拷贝进去:

printWidth: 140
useTabs: false
tabWidth: 4
endOfLine: auto

更多配置可以查看 https://csharpier.com/docs/Configuration

忽略文件配置#

通过添加一个 .csharpierignore 文件来忽略特定文件和文件夹,也就是不对它们执行格式化行为。文件内容采用 gitignore 语法,比如:

Uploads/
**/App_Data/*.cs

当然,CSharpier CLI 内部会有一些默认忽略配置,参考:https://csharpier.com/docs/Ignore#files-ignored-by-default

如果想忽略格式化文件中某一段代码,就添加以下注释(参考):

// csharpier-ignore

它还可以通过安装 Nuget 包来调用 API 编写一个格式化代码的程序,参考:https://csharpier.com/docs/API

和 IDE 集成#

官方还提供了一些 IDE 的插件,参考:https://csharpier.com/docs/Editors

其它#

CSharpier 功能太多了,还支持 MsBuild PackagePre-commit HookContinuous Integration 等等功能,时间有限,我就介绍到此了。

已知问题#

  • 无法删除多余的换行符
    image

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。