在10分鐘或更短時間內掌握 Visual Studio 中的 EditorConfig
[[academy-video-youtube({"vid": "CQW5b58mPdg", "start_time": "0", "title": "Editorconfig In Visual Studio In 10 Minutes or Less", "creator": "Tim Corey", "length": "9m 28s"})]]
保持一致的編碼風格在專案和開發者之間通常會成為挑戰,尤其是當團隊使用不同的設置、偏好,甚至不同的編輯器如Visual Studio和Visual Studio Code時。 在他的视频"在10分鐘內掌握Visual Studio中的EditorConfig"中,Tim Corey解釋了EditorConfig文件如何使得在.NET專案中定義和強制執行特定專案的編碼慣例成為可能。
這篇文章準確地按照Tim的解釋進行說明,展示了EditorConfig C#設置如何幫助維持程式碼風格、縮排和結構的一致性。 讓我們一步步探索Tim的解釋。
介紹:EditorConfig之所以重要的原因
Tim首先介紹了EditorConfig專案,解釋了現在每個專案的設置比以往任何時候都更容易實現。 現在,您不必依賴儲存在Visual Studio中的個人偏好或編輯器設置,您可以配置一個專案以保持所有貢獻者的一致編碼風格。
建立專案
為了演示EditorConfig文件,Tim在Visual Studio中建立了一個新的Blazor Server專案。 他將其命名為BlazorDemoApp並使用預設配置。 這個簡單的.NET專案作為設置和應用EditorConfig設置的測試平台。
正如Tim所解釋的,這個專案不需要複雜的邏輯或功能。 這僅僅是一個方便的例子,用於研究程式碼風格規則。
了解專案偏好和編碼風格
在這裡,Tim討論了專案層級配置為什麼很重要。 在Visual Studio中,每個使用者可以設置以下事物的偏好:
是使用tab鍵還是空格
縮排大小(例如3或4個空格)
花括號
{}的位置是放在同一行還是新的一行- 命名空間聲明的型別(塊作用域或文件作用域)
這些偏好通常按使用者儲存在Visual Studio中,而不是按專案。 Tim強調,當與團隊合作時,每個人的本地設置可能會有所不同。 這可能會導致程式碼格式不一致、版本控制系統中的不必要差異,以及手動對齊偏好的時間浪費。
這就是EditorConfig文件格式的作用所在—它定義了一組共享的EditorConfig屬性,使所有開發者的編輯器能自動遵循這些規則。
建立和打開EditorConfig文件
然後,Tim展示如何向解決方案中新增新的EditorConfig文件。
他右鍵單擊解決方案並選擇新增 → 新增EditorConfig。Visual Studio可能在第一次載入文件時報告一個小錯誤,但Tim解釋這是一個無害的怪癖—只需關閉並重新打開文件即可。
這個新文件通常命名為.editorconfig,Visual Studio立即將其識別為配置文件。 值得注意的是,Visual Studio本身支持此文件,其他文字編輯器如Visual Studio Code甚至Sublime Text也支持此文件,通過文字編輯器插件實現。
Tim澄清說,EditorConfig並不是一個僅限於Microsoft的工具。 這是一個行業標準,它幫助不同的編輯器理解和應用相同的編碼慣例,確保了多個環境中格式的一致性。
配置EditorConfig文件設置
一旦打開了EditorConfig文件,Tim解釋說它從當前的Visual Studio配置中獲取預設設置。 然而,這些設置可以根據需要進行修改。
他導航到Whitespace部分,展示如何設置:
使用tab鍵而非空格
- Tab寬度=3
這些是一些定義程式碼格式行為的EditorConfig屬性的例子。 一旦保存,該配置適用於整個解決方案內,但不適用於其外部。
Tim注意到該EditorConfig文件也可以新增到版本控制系統(如Git)中,確保每個克隆倉庫的開發者都繼承相同的規則。 這有助於保持一致的格式,不論是誰編寫程式碼。
使用程式碼風格和命名空間規則
然後Tim深入講解程式碼風格設置,特別是命名空間聲明風格。
預設情況下,C#使用塊作用域命名空間,這裡的命名空間使用花括號定義。 Tim在Data文件夾下建立了一個類來演示此格式。
然後,他更改EditorConfig文件設置以使用文件作用域命名空間。 當他新增另一個類時,Visual Studio自動應用了更新的風格,顯示用分號(;)而非花括號的命名空間。
這展示了EditorConfig設置如何影響Visual Studio中的預設程式碼生成模板,並自動對齊已定義的專案慣例。
Tim同時指出可以使用程式碼清理功能重新格式化現有文件,確保所有程式碼均符合最新的EditorConfig規則。
設置嚴重性和強制執行規則
在本節中,Tim專注於如何在EditorConfig文件中使用嚴重性等級來控制規則執行。
每個規則可以有如none、suggestion、warning、error之類的值。 Tim將命名空間規則的嚴重性設置為error,即Visual Studio立即在Error List窗口中標示任何不符合首選格式的文件。
這確保了開發者遵循定義的樣式,並防止了當前文件或整個專案中不必要的偏差。
雖然可能會出現一些不一致或Visual Studio的Bug(例如錯誤的建議提示),Tim指出這些問題隨著時間的推移會得到改進。重要的是規則被一致應用,使程式碼易於閱讀和統一。
多個EditorConfig文件和目錄範圍
Tim接著解釋您可以在同一解決方案中擁有多個EditorConfig文件。
例如:
在解決方案層級的根EditorConfig文件定義所有項目的通用設置。
- 在如/Data這樣的子文件夾中的巢狀EditorConfig文件可以覆蓋某些屬性(例如命名慣例、Tab寬度或換行)。
每個EditorConfig專案以層次結構為基礎運行—意味着子目錄中的文件繼承自父目錄,除非明確覆蓋。
如果您想定義配置的根,您可以在頂層文件中設置屬性root = true。這樣編輯器只會在此文件而不再向上查找EditorConfig文件。
這個結構使開發者可以對專案級的格式規則進行細粒度控制,同時仍允許某些情況下採用不同的格式。
總結:通過EditorConfig保持一致性
在他的最後評論中,Tim鼓勵開發者積極在其.NET項目中使用EditorConfig。
他強調這種方法讓團隊得以維持一致的格式規則、命名慣例和布局風格—無需強制更改個人的編輯器設置。 每個打開的文件自動遵循專案.editorconfig文件中設置的定義風格。
通過將這些EditorConfig文件提交到版本控制系統中,團隊可以確保每個人—無論其編輯器或環境—均遵循相同的程式碼格式規則。
Tim在他的视频中總結強調EditorConfig文件格式簡單、靈活且廣泛支持。 無論您使用Visual Studio、Visual Studio Code或其他文字編輯器,它都能很好地幫助您保持一致的編碼風格,讓您的專案乾淨、專業且易於閱讀。

