2009-09-25 66 views
14

我真的很想讓VS2008自動縮進一個區域的內容。一個樣本可能是最好的。如何用C#縮進區域的內容?

什麼是現在這樣:

#region [ Fields ] 
public int Count; 
public int Total; 
#endregion 

我想的是:

#region [ Fields ] 
    public int Count; 
    public int Total; 
#endregion 

我怎樣才能得到VS做到這一點?

編輯: 爲什麼它的價值,VS 確實在VB.NET中做到這一點。

+2

可能值得一讀:http://stackoverflow.com/questions/1476550/c-any-standard-way-to-divide-a-class-into-regions/1476582#1476582 – 2009-09-25 23:58:43

+3

有趣的評論和編碼恐怖博客很有趣。最讓我感興趣的是與外科醫生類比的評論。即除了外科醫生將工作的地方之外,病人被覆蓋。這就是我的頭腦最好的工作方式,專注於手頭的問題。不過感謝不同的觀點! – 2009-09-26 00:28:47

+0

這篇鏈接的SO文章中的典型C#程序員評論!即使你不喜歡區域(我也這樣做,並且錯過VB給我的自動縮進),它仍然是一個有效的問題! – 2014-03-06 16:03:20

回答

4

開箱即用?你不能。

+1

任何可以做到這一點的插件/工具? – 2009-09-26 00:01:58

+0

不是我所知道的。我不使用區域!我剛剛檢查了ReSharper選項,但看不到任何東西。 – 2009-09-26 00:05:21

+0

Downvoter:請發表評論。否則是徒勞的。 – 2013-01-31 02:20:07

-1

工具 選項 文本編輯器 C# 標籤 縮進 智能訂貨號

+2

這實際上並沒有縮進某個區域的內容(至少對我而言)。 – 2009-10-15 15:48:23

6

這個宏應該工作,大部分:

Public Sub IndentRegions() 
    'Assume that the document has been smart formatted 
    Dim TS As TextSelection = DTE.ActiveDocument.Selection 
    TS.SelectAll() 
    Dim lines As String() = TS.Text.Split(vbNewLine) 

    Dim level As Integer = 0 

    TS.StartOfDocument() 

    While Not TS.ActivePoint.AtEndOfDocument 

     If lines(TS.ActivePoint.Line - 1).Trim().StartsWith("#endregion") Then 
      level = level - 1 
     End If 

     For i = 1 To level 
      TS.Indent() 
     Next 

     If lines(TS.ActivePoint.Line - 1).Trim().StartsWith("#region") Then 
      level = level + 1 
     End If 

     TS.LineDown() 
     TS.StartOfLine() 
    End While 
End Sub 
+1

感謝您的宏。這是做什麼建議(假設你實際上做了一個選擇...... DOH!):它縮進區域下的線。但是,只要我用Ctl + K + D重新格式化,工作就完成了!所以,現在,我只是和它一起生活。 – 2010-09-23 05:02:35

+0

您可以編寫一個執行智能格式的宏,然後運行縮進區域。我不知道你是否可以將Ctrl + K D重新映射到宏中(但我相信你可以映射另一個鍵序列)。 – 2010-09-23 14:47:11

+0

這是一個好主意......我會試試這個。 – 2010-10-20 16:33:59

1

我要說模擬這種的唯一方法是在區域內使用大括號「{」和「}」,分隔您的代碼塊。不幸的是,這隻適用於函數和方法代碼,因此這不適用於您的示例。在某些情況下,分隔代碼塊可能不兼容,需要根據代碼邏輯進行調整。

function Test(){ 

    #region Example 
    { 
     your code 
    } 
    #end region 

} 
3

改變背景顏色比主網頁的背景之外的其他顏色(我用的白頂銀),它將給它縮進覺得你正在尋找。

Options>Environment>Fonts and Colors>顯示項目:Preprocessor Keyword然後更改item background下拉列表。

+1

我喜歡這個答案。有縮進和縮進:) – timothy 2015-04-28 03:03:10

+1

這工作得很好,不是什麼問了,但做了視覺突出顯示區域的技巧。 – MaurGi 2015-07-20 21:53:29