Aggiungere una #Region
Obiettivo: selezionare uno o più membri di una classe, cliccare un bottone sulla Toolbar di VS.NET, indicare il nome della #Region ed ottenere automaticamente l'inserimento dei membri selezionati nella nuova #Region.
Come?
Passo1/2: Creare la macro col seguente codice
Sub AddRegion()Dim CloseUndoContext As Boolean = FalseIf DTE.UndoContext.IsOpen = False Then CloseUndoContext =
True DTE.UndoContext.Open("DevHawkAddRegionMacro",
False)End IfTry Dim name As String = InputBox("Enter the region name") If (name.Trim().Length = 0) Then Exit Sub Dim sel As TextSelection = DTE.ActiveDocument.Selection Dim lTop = sel.TopPoint.Line Dim lBot = IIf(sel.BottomPoint.AtStartOfLine, sel.BottomPoint.Line - 1, sel.BottomPoint.Line) sel.MoveToLineAndOffset(lBot, 1)
sel.EndOfLine()
sel.NewLine()
If DTE.ActiveDocument.Language = "CSharp" Then sel.Text = "#endregion"
ElseIf DTE.ActiveDocument.Language = "Basic" Then sel.Text = "#End Region"
Else Throw New System.Exception("Invalid Language: " + DTE.ActiveDocument.Language) End If sel.MoveToLineAndOffset(lTop, 1)
sel.StartOfLine()
If DTE.ActiveDocument.Language = "CSharp" Then sel.Text = "#region " + name.Trim()
ElseIf DTE.ActiveDocument.Language = "Basic" Then sel.Text = "#Region """ + name.Trim() + """"
Else Throw New System.Exception("Invalid Language: " + DTE.ActiveDocument.Language) End If sel.NewLine()
sel.MoveToLineAndOffset(lTop, -1)
sel.TopPoint.CreateEditPoint.SmartFormat(sel.BottomPoint)
Finally If CloseUndoContext Then DTE.UndoContext.Close()End TryEnd Sub
Passo 2/2: Aggiungere un button nella Toolbar di VS.NET per richiamare la macro
Seguire le istruzioni qui indicate al punto "Putting a Macro on a Menu or Command Bar".
bye (luKa)