The FindBrace() macro posted above does what I need.  I replaced the
hard-coded IF/ENDIF with two string arrays, and now it works for IF,
WITH, SELECT CASE, FOR, DO and TRY.

Thanks!



On Mar 20, 4:11 am, Cerebrus <[email protected]> wrote:
> I wish there was... one like the Ctrl+] shortcut in C# which allows
> you to move between matching braces.
>
> However, I found a macro some time back that I use personally. Feel
> free to use it for your own convenience.
>
> ---
> Public Module Kbd
>
>   Private Function CleanLine(ByVal sLine As String) As String
>     sLine = sLine.ToUpper
>     sLine = sLine.Replace(vbTab, "")
>     sLine = sLine.Trim()
>     Return sLine
>   End Function
>
>   Sub FindBrace()
>     Dim bFoward As Boolean
>     Dim bIfCount As Integer = 1
>     Dim o As TextSelection = DTE.ActiveDocument.Selection
>     Dim sLine As String
>     o.DTE.SuppressUI = True
>     o.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText)
>     o.SelectLine()
>     sLine = CleanLine(o.Text)
>
>     Select Case True
>       Case sLine.StartsWith("IF ")
>         bFoward = True
>       Case sLine.StartsWith("END IF")
>       Case Else
>         Exit Sub
>     End Select
>
>     Do
>       If bFoward Then
>         o.LineDown(False, 0)
>       Else
>         o.LineUp(False, 1)
>       End If
>       o.SelectLine()
>       sLine = CleanLine(o.Text)
>
>       Select Case True
>         Case sLine.StartsWith("IF ")
>           If bFoward Then
>             bIfCount += 1
>           Else
>             bIfCount -= 1
>           End If
>         Case sLine.StartsWith("END IF")
>           If bFoward Then
>             bIfCount -= 1
>           Else
>             bIfCount += 1
>           End If
>       End Select
>     Loop Until bIfCount = 0
>
>     o.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText)
>     o.LineUp(False, 1)
>     o.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText)
>   End Sub
>
> End Module
>
> ---
>
> On Mar 20, 12:33 am, jtaylor <[email protected]> wrote:
>
> > In VB.NET (VS 2005), is there any way to jump from the beginning to
> > the end (or vice versa) of a code block?  For example, put your cursor
> > on an If and jump to the Endif.

Reply via email to