Jump between procedure headers quickly.
Sub GotoProcHeader(Optional Direction As Int = CurrentProcHeader)
Global Enum CurrentProcHeader, PreviousProcHeader, NextProcHeader, FirstProcHeader, LastProcHeader
Local Int i
Switch Direction
Case CurrentProcHeader
Gfa_Line = Gfa_ProcLine
Case PreviousProcHeader
Gfa_Up
If Gfa_Proc <> ""
Gfa_Line = Gfa_ProcLine
Else
Gfa_Down
Gfa_StatusText = "Reached first procedure."
EndIf
Case NextProcHeader
Local String curProc = Gfa_Proc
i = Gfa_Line + 1
While i < Gfa_LineCnt
Gfa_Line = i
If Gfa_Proc <> curProc
Gfa_Line = Gfa_ProcLine
Exit Do
EndIf
i ++
Wend
If i = Gfa_LineCnt Then
Gfa_Line = Gfa_ProcLine
Gfa_StatusText = "Reached last procedure."
EndIf
Case FirstProcHeader
Gfa_Line = 1
GotoProcHeader (NextProcHeader)
Case LastProcHeader
Gfa_Line = Gfa_LineCnt
Gfa_Line = Gfa_ProcLine
EndSwitch
End Sub
{Created by Sjouke Hamstra; Last updated: 08/10/2014 by James Gaite}