[神兵系列] - 使用Resharper File Layout進行程式碼排版

說來慚愧,筆者使用Resharper也已經有一段時間了,

但仍然覺得對它很是陌生,

平常開發有用到的功能僅僅是冰山一角而已,

前幾天在重構(還債)的過程中,

剛好遇到自訂程式碼排版的需求,

依稀記得91哥在「極速開發」的課程中曾經示範過,

自番胡亂研究了一下才終於找到解法,

趁著記憶猶新時趕緊記錄下來,

以免下次失憶症發作。

 

Code Cleanup

Resharper是一套Visual Studio的商用擴充套件,

除可幫助重構程式碼外還有許多琳瑯滿目的功能,

其中一項功能為Code Cleanup

你可以在Menu -> Resharper -> Options -> Code Editing -> Code Cleanup找到它,

或按快捷鍵Alt+R+O後開啟。

這招可以協助我們依指定條件清整程式碼。

但這邊要注意一下,

Resharper在預設模板是不提供更改條件設定的,

若想要依個人喜好或團隊習慣調整,

可以點選Duplicate產生複本,

而本文介紹的主題恰巧是它的第一個條件選項 - Apply file layout

 

File Layout

相信許多人都有程式碼排版的習慣,

最讓人熟悉的排版莫過於Tab了!

但除此之外,

將類別內的成員依團隊習慣參考語言規範進行排序,

也是相當重要的一部分。

而在C#語言排版順序的討論上,

有興趣的讀者可以參考stackoverflow上的一篇討論文章。

 

在這個IDE當道的年代,

適時地使用工具能夠協助你省下更多時間,

畢竟時間就是金錢,

工程師的時間應該花在刀口上才是。

 

Resharper中的File Layout功能,

即可針對指定的C#程式碼類別進行排序,

你可以在Menu -> Resharper -> Options -> Code Editing -> C# -> File Layout找到它。

 

點進去後可以看到Default Pattern,

它會按照上到下的每個屬性順序進行排序,

點選上圖的左方箭頭可回到上一階層。

在預設的模板中提供了四種類型,

除了不可排序的類型外(Non-reorderable types),

接下來是xUnitNUnit的測試框架,

最後才是Default Pattern

這邊的上到下屬性一樣是具有排序依據的,

所以盡可能將具有識別特徵(如Attribute)的模板往前放,

最後再擺預設模板。

 

眼尖的讀者應該有發現預設的測試框架中並不支援MSTest,

那如何讓MSTest的類別也能自動排版呢?

這邊先小小的賣個關子,

小弟將於下次做更詳細的介紹。

 

結語

如果想了解更多Reshaper使用情境的朋友,

小弟很推91哥「極速開發」課程,

含金量跟實質效果保證讓你大吃一驚。

 

參考

https://www.jetbrains.com/help/resharper/File_and_Type_Layout.html

https://www.jetbrains.com/help/resharper/Code_Cleanup__Index.html