VS.NET IDE: Creazione automatica di una #Region

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 = False

If DTE.UndoContext.IsOpen = False Then

CloseUndoContext = True

DTE.UndoContext.Open("DevHawkAddRegionMacro", False)

End If

Try

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 Try

End 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)

Print | posted @ mercoledì 26 maggio 2004 12:43

Comments have been closed on this topic.