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

參考#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。