SynEdit: Fold-Highlighter, add more info to node.actions / rename sfaOpen to sfaOpenFold

git-svn-id: trunk@37893 -
This commit is contained in:
martin 2012-07-07 15:42:54 +00:00
parent 3414a1253c
commit 4a9ad47a2e
6 changed files with 266 additions and 261 deletions

View File

@ -2012,7 +2012,7 @@ end;
function TSynFoldNodeInfoHelper.FirstOpen: TSynFoldNodeInfo;
begin
FActions := [sfaOpen, sfaFold];
FActions := [sfaOpenFold, sfaFold];
FCurInfo.NodeIndex := -1;
FCurInfo.LineIndex := 0;
Result := Next;
@ -2073,7 +2073,7 @@ var
begin
Line := FCurInfo.LineIndex;
EndLine := FHighlighter.FoldEndLine(Line, FCurInfo.NodeIndex);
FActions := [sfaClose, sfaFold];
FActions := [sfaCloseFold, sfaFold];
Cnt := FHighlighter.FoldNodeInfo[EndLine].CountEx(FActions) - 1;
while Cnt >= 0 do begin
NdInfo := FHighlighter.FoldNodeInfo[EndLine].NodeInfoEx(Cnt, FActions);
@ -2092,7 +2092,7 @@ end;
function TSynFoldNodeInfoHelper.GotoOpenPos(aLineIdx, aNodeIdx: integer): TSynFoldNodeInfo;
begin
FActions := [sfaOpen, sfaFold];
FActions := [sfaOpenFold, sfaFold];
FCurInfo := FHighlighter.FoldNodeInfo[aLineIdx].NodeInfoEx(aNodeIdx, FActions);
Result := FCurInfo;
end;
@ -2101,7 +2101,7 @@ function TSynFoldNodeInfoHelper.GotoOpenAtChar(aLineIdx, aXPos: integer): TSynFo
var
Cnt: Integer;
begin
FActions := [sfaOpen, sfaFold];
FActions := [sfaOpenFold, sfaFold];
Cnt := FHighlighter.FoldNodeInfo[aLineIdx].CountEx(FActions) - 1;
while Cnt >= 0 do begin
FCurInfo := FHighlighter.FoldNodeInfo[aLineIdx].NodeInfoEx(Cnt, FActions);
@ -2115,7 +2115,7 @@ end;
function TSynFoldNodeInfoHelper.GotoNodeOpenPos(ANode: TSynTextFoldAVLNode): TSynFoldNodeInfo;
begin
FActions := [sfaOpen, sfaFold];
FActions := [sfaOpenFold, sfaFold];
FCurInfo := FHighlighter.FoldNodeInfo[ANode.StartLine - ANode.SourceLineOffset - 1]
.NodeInfoEx(ANode.FoldIndex, FActions);
Result := FCurInfo;
@ -2126,9 +2126,9 @@ var
NdInfo, NdInfo2: TSynFoldNodeInfo;
Cnt, EndCol, EndLineIdx: Integer;
begin
FActions := [sfaClose, sfaFold];
FActions := [sfaCloseFold, sfaFold];
NdInfo := FHighlighter.FoldNodeInfo[ANode.StartLine - ANode.SourceLineOffset - 1]
.NodeInfoEx(ANode.FoldIndex, [sfaOpen, sfaFold]);
.NodeInfoEx(ANode.FoldIndex, [sfaOpenFold, sfaFold]);
if sfaInvalid in NdInfo.FoldAction then exit(NdInfo);
EndLineIdx := FHighlighter.FoldEndLine(ANode.StartLine - ANode.SourceLineOffset - 1,
@ -2136,10 +2136,10 @@ begin
{$IFDEF SynAssertFold}
SynAssert(EndLineIdx >= 0, 'TSynFoldNodeInfoHelper.GotoNodeClosePos: Bad EndLineIdx=%d # Anode: StartLine=%d SrcLOffs=%d ColIdx=%d FoldCol=%d', [EndLineIdx, ANode.StartLine, ANode.SourceLineOffset, ANode.FoldIndex, ANode.FoldColumn]);
{$ENDIF}
Cnt := FHighlighter.FoldNodeInfo[EndLineIdx].CountEx([sfaClose, sfaFold]);
Cnt := FHighlighter.FoldNodeInfo[EndLineIdx].CountEx([sfaCloseFold, sfaFold]);
EndCol := 0;
while EndCol < Cnt do begin
NdInfo2 := FHighlighter.FoldNodeInfo[EndLineIdx].NodeInfoEx(EndCol, [sfaClose, sfaFold]);
NdInfo2 := FHighlighter.FoldNodeInfo[EndLineIdx].NodeInfoEx(EndCol, [sfaCloseFold, sfaFold]);
if (NdInfo2.FoldLvlStart = NdInfo.FoldLvlEnd) and
(NdInfo2.FoldType = NdInfo.FoldType) then break;
inc(EndCol);
@ -2980,7 +2980,7 @@ begin
end;
// something of interest opened on this line
NFilter := [sfaOpen];
NFilter := [sfaOpenFold];
if not(sfbIncludeDisabled in FFoldFlags) then Include(NFilter, sfaFold);
FFoldNodeInfoList.Line := CurLine;
FFoldNodeInfoList.ActionFilter := NFilter;
@ -3089,9 +3089,9 @@ begin
AquireFoldNodeInfoList(AHighlighter, FLine);
try
// TODO: adjust flags, if include disabled
//NFilter := [sfaOpen];
//NFilter := [sfaOpenFold];
//if not(sfbIncludeDisabled in FFoldFlags) then Include(NFilter, sfaFold);
FFoldNodeInfoList.ActionFilter := [sfaOpen, sfaFold];
FFoldNodeInfoList.ActionFilter := [sfaOpenFold, sfaFold];
FFoldNodeInfoList.GroupFilter := AFoldGroup;
// Need to check alll nodes with FoldNodeInfoCount
@ -3157,10 +3157,10 @@ begin
c := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([]);
if c > 0 then begin
c := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([sfaOpen, sfaFoldFold]);
c := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([sfaOpenFold, sfaFoldFold]);
if c > 0 then
include(Result, cfFoldStart);
c := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([sfaOpen, sfaFoldHide]);
c := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([sfaOpenFold, sfaFoldHide]);
if c > 0 then
include(Result, cfHideStart);
c := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([sfaOneLineOpen, sfaFoldHide]); // TODO: Include scftFoldEnd ?
@ -3227,7 +3227,7 @@ begin
// Need to check alll nodes with FoldNodeInfoCount
// Hide-able nodes can open and close on the same line "(* comment *)"
FHighlighter.CurrentLines := FLines;
Result := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([sfaOpen, sfaFold], AType);
Result := FHighlighter.FoldNodeInfo[ALineIdx].CountEx([sfaOpenFold, sfaFold], AType);
// fallback for HL without GetFoldNodeInfoCountEx
if Result < 0 then
Result := FHighlighter.FoldBlockOpeningCount(ALineIdx, AType);
@ -3248,7 +3248,7 @@ function TSynEditFoldProvider.FoldOpenInfo(ALineIdx, AFoldIdx: Integer;
Result.NestLvlStart := 0;
Result.NestLvlEnd := 1;
Result.FoldLvlEnd := 1;
Result.FoldAction := [sfaOpen, sfaFold, sfaFoldHide];
Result.FoldAction := [sfaOpenFold, sfaFold, sfaFoldHide];
Result.FoldType := nil;
Result.FoldTypeCompatible := nil;
Result.FoldGroup := -1;
@ -3269,7 +3269,7 @@ begin
then
Result := BlockSelInfo(AFoldIdx)
else
Result := FHighlighter.FoldNodeInfo[ALineIdx].NodeInfoEx(AFoldIdx, [sfaOpen, sfaFold], AType);
Result := FHighlighter.FoldNodeInfo[ALineIdx].NodeInfoEx(AFoldIdx, [sfaOpenFold, sfaFold], AType);
end;
function TSynEditFoldProvider.FoldLineLength(ALine, AFoldIndex: Integer): integer;
@ -3746,12 +3746,12 @@ begin
exit(0);
// AStartIndex is 0-based
// FoldTree is 1-based AND first line remains visble
c := hl.FoldNodeInfo[AStartIndex].CountEx([sfaOpen, sfaFold]);
c := hl.FoldNodeInfo[AStartIndex].CountEx([sfaOpenFold, sfaFold]);
if c = 0 then
exit(-1);
i := 0;
while i < c do begin
nd := hl.FoldNodeInfo[aStartIndex].NodeInfoEx(i, [sfaOpen, sfaFold]);
nd := hl.FoldNodeInfo[aStartIndex].NodeInfoEx(i, [sfaOpenFold, sfaFold]);
if (nd.LogXStart >= LogX) then begin
dec(i);
if not Previous then
@ -3781,7 +3781,7 @@ begin
// Currently PascalHl Type 2 = Region
c := hl.FoldBlockOpeningCount(i, 2);
if c > 0 then begin
c := hl.FoldNodeInfo[i].CountEx([sfaOpen, sfaFold]);
c := hl.FoldNodeInfo[i].CountEx([sfaOpenFold, sfaFold]);
j := 0;
while j < c do begin
fldinf := FoldProvider.InfoForFoldAtTextIndex(i, j);
@ -4561,12 +4561,12 @@ begin
if ColIndex >= Lvl then begin
n := ColIndex - Lvl;
if AType = 0 then begin
o := hl.FoldNodeInfo[aStartIndex].CountEx([sfaOpen, sfaFold]);
nd := hl.FoldNodeInfo[aStartIndex].NodeInfoEx(n, [sfaOpen, sfaFold]);
o := hl.FoldNodeInfo[aStartIndex].CountEx([sfaOpenFold, sfaFold]);
nd := hl.FoldNodeInfo[aStartIndex].NodeInfoEx(n, [sfaOpenFold, sfaFold]);
end else begin
// no sfaFold
o := hl.FoldNodeInfo[aStartIndex].CountEx([sfaOpen],AType);
nd := hl.FoldNodeInfo[aStartIndex].NodeInfoEx(n, [sfaOpen], AType);
o := hl.FoldNodeInfo[aStartIndex].CountEx([sfaOpenFold],AType);
nd := hl.FoldNodeInfo[aStartIndex].NodeInfoEx(n, [sfaOpenFold], AType);
end;
end
else begin
@ -4588,7 +4588,7 @@ begin
t := nd.FoldGroup
else
t := 0;
if sfaOpen in nd.FoldAction then begin
if sfaOpenFold in nd.FoldAction then begin
dec(n);
dec(CurLvl[t]);
if CurLvl[t] < EndLvl[t] then begin
@ -4599,7 +4599,7 @@ begin
end;
end;
end else
if sfaClose in nd.FoldAction then begin
if sfaCloseFold in nd.FoldAction then begin
inc(CurLvl[t]);
end;
end;

View File

@ -65,17 +65,20 @@ const
type
TSynFoldAction = (sfaOpen, // At this node a new Fold can start
sfaClose, // At this node a fold ends
sfaMarkup, // This node can be highlighted, by the matching Word-Pair Markup
sfaFold, // Part of a fold- or hide-able block (FoldConf.Enabled = True) - excludes one=liners for FoldFold
sfaFoldFold, // Part of a fold-able block (FoldConf.Enabled = True / smFold in Modes) - includes one=liners / only opening node (todo: maybe both?)
sfaFoldHide, // Part of a hide-able block (FoldConf.Enabled = True / smHide in Modes) - includes one=liners / only opening node (todo: maybe both?)
sfaInvalid, // Wrong Index
sfaDefaultCollapsed,
sfaOneLineOpen, // Open, but closes on same line; *only* if hide-able has [sfaOpen, sfaFold]; always has [sfaFoldFold, sfaFoldHide]
sfaOneLineClose, // Open, but closes on same line;
sfaLastLineClose // Fold is incomplete, and closed at last line of file
TSynFoldAction = ( sfaOpen, // Any Opening node
sfaClose, // Any Closing node
sfaOpenFold, // At this node a new Fold can start // Actually, includes all,any multiline node too.
sfaCloseFold, // At this node a fold ends
sfaMarkup, // This node can be highlighted, by the matching Word-Pair Markup
sfaFold, // Part of a fold- or hide-able block (FoldConf.Enabled = True) - excludes one=liners for FoldFold
sfaFoldFold, // Part of a fold-able block (FoldConf.Enabled = True / smFold in Modes) - includes one=liners / only opening node (todo: maybe both?)
sfaFoldHide, // Part of a hide-able block (FoldConf.Enabled = True / smHide in Modes) - includes one=liners / only opening node (todo: maybe both?)
sfaInvalid, // Wrong Index
sfaDefaultCollapsed,
sfaOneLineOpen, // Open, but closes on same line; *only* if hide-able has [sfaOpenFold, sfaFold]; always has [sfaFoldFold, sfaFoldHide]
sfaOneLineClose, // Open, but closes on same line;
sfaLastLineClose, // Fold is incomplete, and closed at last line of file
sfaCloseForNextLine // Fold closes this line, but keyword is on the next (e.g. "var" block)
);
TSynFoldActions = set of TSynFoldAction;

View File

@ -247,7 +247,7 @@ begin
(* Find other end *)
Node3.FoldAction := [sfaInvalid];
if TmpNode.FoldAction * [sfaOpen, sfaOneLineOpen] <> [] then begin
if TmpNode.FoldAction * [sfaOpenFold, sfaOneLineOpen] <> [] then begin
StartNode := TmpNode;
CloseNode := FindEndNode(StartNode, y, i);
if (sfaInvalid in CloseNode.FoldAction) then
@ -270,7 +270,7 @@ begin
if not(sfaInvalid in Node3.FoldAction) then begin
i := Node3.NodeIndex;
y := Node3.LineIndex;
if Node3.FoldAction * [sfaOpen, sfaOneLineOpen] <> [] then
if Node3.FoldAction * [sfaOpenFold, sfaOneLineOpen] <> [] then
Node3 := FindEndNode(Node3, y, i)
else
Node3 := FindStartNode(Node3, y, i);

View File

@ -3299,8 +3299,8 @@ function TSynPasSyn.FoldTypeAtNodeIndex(ALineIndex, FoldIndex: Integer;
var
act: TSynFoldActions;
begin
act := [sfaOpen, sfaFold];
if UseCloseNodes then act := [sfaClose, sfaFold];
act := [sfaOpenFold, sfaFold];
if UseCloseNodes then act := [sfaCloseFold, sfaFold];
case TPascalCodeFoldBlockType(PtrUInt(FoldNodeInfo[ALineIndex].NodeInfoEx(FoldIndex, act).FoldType)) of
cfbtRegion:
Result := 2;
@ -3316,7 +3316,7 @@ var
atype : Integer;
node: TSynFoldNodeInfo;
begin
node := FoldNodeInfo[ALineIndex].NodeInfoEx(FoldIndex, [sfaOpen, sfaFold]);
node := FoldNodeInfo[ALineIndex].NodeInfoEx(FoldIndex, [sfaOpenFold, sfaFold]);
if sfaInvalid in node.FoldAction then exit(-1);
if sfaOneLineOpen in node.FoldAction then exit(0);
case TPascalCodeFoldBlockType(PtrUInt(node.FoldType)) of
@ -3341,7 +3341,7 @@ var
lvl, cnt, atype : Integer;
node: TSynFoldNodeInfo;
begin
node := FoldNodeInfo[ALineIndex].NodeInfoEx(FoldIndex, [sfaOpen, sfaFold]);
node := FoldNodeInfo[ALineIndex].NodeInfoEx(FoldIndex, [sfaOpenFold, sfaFold]);
if sfaInvalid in node.FoldAction then exit(-1);
if sfaOneLineOpen in node.FoldAction then exit(ALineIndex);
case TPascalCodeFoldBlockType(PtrUInt(node.FoldType)) of
@ -3443,7 +3443,7 @@ begin
while (i >= 0) and
( (nd^.FoldType <> node.FoldType) or
(nd^.FoldGroup <> node.FoldGroup) or
(not (sfaOpen in nd^.FoldAction)) or
(not (sfaOpenFold in nd^.FoldAction)) or
(nd^.FoldLvlEnd <> Node.FoldLvlStart)
)
do begin
@ -3459,8 +3459,8 @@ begin
Node.FoldAction := Node.FoldAction - [sfaFoldFold];
end else begin
// one liner: nether hide-able nore fold-able
nd^.FoldAction := nd^.FoldAction - [sfaOpen, sfaFold];
Node.FoldAction := Node.FoldAction - [sfaClose, sfaFold];
nd^.FoldAction := nd^.FoldAction - [sfaOpenFold, sfaFold];
Node.FoldAction := Node.FoldAction - [sfaCloseFold, sfaFold];
end;
end;
end;
@ -3478,7 +3478,7 @@ begin
act := FFoldConfig[ord(ABlockType)].FoldActions;
if not FAtLineStart then
act := act - [sfaFoldHide];
InitNode(nd, +1, ABlockType, [sfaOpen] + act, True);
InitNode(nd, +1, ABlockType, [sfaOpen, sfaOpenFold] + act, True);
FCatchNodeInfoList.Add(nd);
end;
case ABlockType of
@ -3496,7 +3496,7 @@ begin
if not FFoldConfig[ord(ABlockType)].Enabled then exit;
if FCatchNodeInfo then begin // exclude subblocks, because they do not increase the foldlevel yet
InitNode(nd, -1, ABlockType,
[sfaClose, sfaFold], True); // + FFoldConfig[ord(ABlockType)].FoldActions);
[sfaClose, sfaCloseFold, sfaFold], True); // + FFoldConfig[ord(ABlockType)].FoldActions);
FCatchNodeInfoList.Add(nd);
end;
case ABlockType of
@ -3538,6 +3538,8 @@ begin
i := LastLinePasFoldLevelFix(Line+1, FOLDGROUP_PASCAL, True); // all pascal nodes (incl. not folded)
while i < 0 do begin
EndPascalCodeFoldBlock;
FCatchNodeInfoList.LastItemPointer^.FoldAction :=
FCatchNodeInfoList.LastItemPointer^.FoldAction + [sfaCloseForNextLine];
inc(i);
end;
if Line = CurrentLines.Count - 1 then begin
@ -3570,7 +3572,7 @@ begin
FoldBlock := FFoldConfig[ord(ABlockType)].Enabled;
p := 0;
if FCatchNodeInfo then begin // exclude subblocks, because they do not increase the foldlevel yet
act := [sfaOpen];
act := [sfaOpen, sfaOpenFold];
if FoldBlock then
act := act + FFoldConfig[ord(ABlockType)].FoldActions;
if not FAtLineStart then
@ -3593,7 +3595,7 @@ begin
BlockType := TopCodeFoldBlockType;
DecreaseLevel := BlockType < CountPascalCodeFoldBlockOffset;
if FCatchNodeInfo then begin // exclude subblocks, because they do not increase the foldlevel yet
act := [sfaClose];
act := [sfaClose, sfaCloseFold];
if DecreaseLevel then
act := act + [sfaFold]; //FFoldConfig[PtrUInt(BlockType)].FoldActions;
InitNode(nd, -1, TopPascalCodeFoldBlockType, act, DecreaseLevel);

View File

@ -1844,9 +1844,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 1');
@ -1855,9 +1855,9 @@ begin
TheList.FoldGroup := 1;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 2');
@ -1875,8 +1875,8 @@ begin
TheList.FoldFlags := [];
TheList.IncludeOpeningOnLine := False;
AssertEquals(BaseTestName + 'Cnt', 2, TheList.Count);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - NoCurrentLine - line 3');
@ -1886,9 +1886,9 @@ begin
TheList.FoldFlags := [];
TheList.IncludeOpeningOnLine := False;
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
EnableFolds([cfbtTopBeginEnd]);
@ -1898,7 +1898,7 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 1, TheList.Count);
CheckNode(TheList.HLNode[0], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
EnableFolds([cfbtTopBeginEnd]);
@ -1908,7 +1908,7 @@ begin
TheList.FoldGroup := 1;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 1, TheList.Count);
CheckNode(TheList.HLNode[0], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
EnableFolds([cfbtTopBeginEnd]);
@ -1929,7 +1929,7 @@ begin
TheList.FoldFlags := [];
TheList.IncludeOpeningOnLine := False;
AssertEquals(BaseTestName + 'Cnt', 1, TheList.Count);
CheckNode(TheList.HLNode[0], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
@ -1939,9 +1939,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [sfbIncludeDisabled];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
EnableFolds([cfbtTopBeginEnd]);
@ -1951,9 +1951,9 @@ begin
TheList.FoldGroup := 1;
TheList.FoldFlags := [sfbIncludeDisabled];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
EnableFolds([cfbtTopBeginEnd]);
@ -1973,8 +1973,8 @@ begin
TheList.FoldFlags := [sfbIncludeDisabled];
TheList.IncludeOpeningOnLine := False;
AssertEquals(BaseTestName + 'Cnt', 2, TheList.Count);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
EnableFolds([cfbtTopBeginEnd]);
@ -1985,9 +1985,9 @@ begin
TheList.FoldFlags := [sfbIncludeDisabled];
TheList.IncludeOpeningOnLine := False;
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 0, 1, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
// TODO line, currently ignores the opening "begin" on current line
@ -1998,9 +1998,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [sfbIncludeDisabled];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, -1,-1, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, -1,-1, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, -1,-1, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, -1,-1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
PopBaseName;
@ -2018,9 +2018,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 1, 1, 13, 22, 2, 3, 2, 3, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 1, 1, 13, 22, 2, 3, 2, 3, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - line 1 - no current');
@ -2030,7 +2030,7 @@ begin
TheList.FoldFlags := [];
TheList.IncludeOpeningOnLine := False;
AssertEquals(BaseTestName + 'Cnt', 1, TheList.Count);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - line 3');
@ -2039,10 +2039,10 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 4, TheList.Count);
CheckNode(TheList.HLNode[3], 2, 0, 2, 7, 3, 4, 3, 4, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 1, 1, 13, 22, 2, 3, 2, 3, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[3], 2, 0, 2, 7, 3, 4, 3, 4, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 1, 1, 13, 22, 2, 3, 2, 3, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - line 4');
@ -2051,9 +2051,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 4, 0, 23, 28, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 4, 0, 23, 28, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - line 4 - NO IncludeOpeningOnLine');
@ -2063,8 +2063,8 @@ begin
TheList.FoldFlags := [];
TheList.IncludeOpeningOnLine := False;
AssertEquals(BaseTestName + 'Cnt', 2, TheList.Count);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - line 5');
@ -2073,10 +2073,10 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 4, TheList.Count);
CheckNode(TheList.HLNode[3], 5, 0, 12, 17, 3, 4, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 4, 0, 23, 28, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[3], 5, 0, 12, 17, 3, 4, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 4, 0, 23, 28, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopBaseName;
{%endregion TestText2}
@ -2094,9 +2094,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PushBaseName('All Enabled - group 1 - line 3');
@ -2105,8 +2105,8 @@ begin
TheList.FoldGroup := 1;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 2, TheList.Count);
CheckNode(TheList.HLNode[1], 2, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 2, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PushBaseName('All Enabled - group 3 - line 3');
@ -2115,7 +2115,7 @@ begin
TheList.FoldGroup := 3;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 1, TheList.Count);
CheckNode(TheList.HLNode[0], 1, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 1, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - line 3');
@ -2124,9 +2124,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 4, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 2, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 4, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 2, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopBaseName;
{%endregion TestText2}
@ -2143,9 +2143,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 4, 0, 14, 20, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, FOLDGROUP_PASCAL, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 4, 0, 14, 20, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, FOLDGROUP_PASCAL, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group 0 - excl line 4');
TheList.ResetFilter;
@ -2154,8 +2154,8 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 2, TheList.Count);
CheckNode(TheList.HLNode[1], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, FOLDGROUP_PASCAL, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, FOLDGROUP_PASCAL, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PushBaseName('All Enabled - group IF - incl line 4');
@ -2165,8 +2165,8 @@ begin
TheList.FoldGroup := FOLDGROUP_IFDEF;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 2, TheList.Count);
CheckNode(TheList.HLNode[1], 4, 0, 14, 20, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 4, 0, 14, 20, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopPushBaseName('All Enabled - group IF - excl line 4');
TheList.ResetFilter;
@ -2176,7 +2176,7 @@ begin
TheList.FoldFlags := [];
//TheList.Count; TheList.HLNode[0]; TheList.Debug;
AssertEquals(BaseTestName + 'Cnt', 1, TheList.Count);
CheckNode(TheList.HLNode[0], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 3, 0, 1, 7, 0, 1, 0, 1, 18, 18, FOLDGROUP_IFDEF, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
@ -2195,9 +2195,9 @@ begin
TheList.FoldGroup := 0;
TheList.FoldFlags := [];
AssertEquals(BaseTestName + 'Cnt', 3, TheList.Count);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[2], 2, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[1], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode(TheList.HLNode[0], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
PopBaseName;
end;

View File

@ -253,7 +253,7 @@ begin
// Pg pc $I bg $E be w e e be e //
CheckFoldOpenCounts('', [1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0]);
CheckFoldInfoCounts('', [sfaOpen, sfaFold],
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold],
[1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0]);
EnableFolds([cfbtBeginEnd..cfbtNone], [cfbtSlashComment]);
@ -261,11 +261,11 @@ begin
// Pg pc $I bg $E be w e e be e //
CheckFoldOpenCounts('', [1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0]); // TODO: does not include the //
CheckFoldInfoCounts('', [sfaOpen, sfaFold], // includes the //
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold], // includes the //
[1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1]);
CheckFoldInfoCounts('', [sfaOpen, sfaFold, sfaFoldFold],
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold, sfaFoldFold],
[1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0]);
CheckFoldInfoCounts('', [sfaOpen, sfaOneLineOpen, sfaFold, sfaFoldHide],
CheckFoldInfoCounts('', [sfaOpenFold, sfaOneLineOpen, sfaFold, sfaFoldHide],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
{%endregion}
@ -289,7 +289,7 @@ begin
// Pg pc 4 // fi e e be-
CheckFoldOpenCounts('', [1, 1, 4, 0, 1, 0, 0, 0]);
CheckFoldInfoCounts('', [sfaOpen, sfaFold],
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold],
[1, 1, 4, 1, 1, 0, 0, 0]);
{%endregion}
@ -308,9 +308,9 @@ begin
// Un If ty va - co - $ Im // e
CheckFoldOpenCounts('', [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0]);
CheckFoldInfoCounts('', [sfaOpen, sfaFold],
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold],
[1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0]);
CheckFoldInfoCounts('', [sfaClose, sfaFold, sfaLastLineClose],
CheckFoldInfoCounts('', [sfaCloseFold, sfaFold, sfaLastLineClose],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
CheckFoldInfoCounts('', [sfaLastLineClose],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]);
@ -330,9 +330,9 @@ begin
// Pg Pc 3 e e $e //
CheckFoldOpenCounts('', [1, 1, 3, 0, 0, 0, 0]);
CheckFoldInfoCounts('', [sfaOpen, sfaFold],
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold],
[1, 1, 3, 0, 0, 0, 1]);
CheckFoldInfoCounts('', [sfaClose, sfaFold, sfaLastLineClose],
CheckFoldInfoCounts('', [sfaCloseFold, sfaFold, sfaLastLineClose],
[0, 0, 0, 0, 0, 0, 2]);
CheckFoldInfoCounts('', [sfaLastLineClose],
[0, 0, 0, 0, 0, 0, 2]);
@ -351,7 +351,7 @@ begin
// Pg Pc 3 e e $e //
CheckFoldOpenCounts('', [1, 1, 3, 0, 0, 0, 0]);
CheckFoldInfoCounts('', [sfaOpen, sfaFold],
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold],
[1, 1, 3, 0, 0, 0, 1]);
@ -368,7 +368,7 @@ begin
// Pg Pc 3 e e $e //
CheckFoldOpenCounts('', [1, 1, 3, 0, 0, 0, 0]);
CheckFoldInfoCounts('', [sfaOpen, sfaFold],
CheckFoldInfoCounts('', [sfaOpenFold, sfaFold],
[1, 1, 3, 0, 0, 0, 1]);
{%endregion}
@ -1085,33 +1085,33 @@ begin
CheckFoldInfoCounts('', [], 0, [1, 1, 1, 1, 1, 3, 0, 1, 2, 1, 2, 2]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : program Foo;
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=2 : procedure a;
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 2 PasMinLvl=2 EndLvl=2 : {$IFDEF A}
CheckNode( 2, [], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 3 PasMinLvl=2 EndLvl=3 : begin
CheckNode( 3, [], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 3, [], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 4 PasMinLvl=3 EndLvl=3 : {$ENDIF}
CheckNode( 4, [], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 4, [], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 5 PasMinLvl=3 EndLvl=4 : {$IFDEF B} if a then begin {$ENDIF}
CheckNode( 5, [], 0, 0, 3, 9, 0, 1, 0, 1, 18, 18, 3, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 5, [], 0, 1, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 5, [], 0, 2, 30, 36, 1, 0, 1, 0, 18, 18, 3, [sfaMarkup,sfaOneLineClose]);
CheckNode( 5, [], 0, 0, 3, 9, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 5, [], 0, 1, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 5, [], 0, 2, 30, 36, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaMarkup,sfaOneLineClose]);
//### Foldinfo Line: 6 PasMinLvl=4 EndLvl=4 : writeln()
//### Foldinfo Line: 7 PasMinLvl=3 EndLvl=3 : end;
CheckNode( 7, [], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 7, [], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 8 PasMinLvl=1 EndLvl=1 : end;
CheckNode( 8, [], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 8, [], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 9 PasMinLvl=1 EndLvl=2 : begin
CheckNode( 9, [], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 9, [], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 10 PasMinLvl=0 EndLvl=0 : end.
CheckNode(10, [], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode(10, [], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 11 PasMinLvl=0 EndLvl=0 : //
CheckNode(11, [], 0, 0, 0, 2, 0, 1, 0, 1, 22, 22, 1, [sfaFoldFold,sfaOneLineOpen]);
CheckNode(11, [], 0, 1, 2, 2, 1, 0, 1, 0, 22, 22, 1, [sfaOneLineClose,sfaLastLineClose]);
CheckNode(11, [], 0, 0, 0, 2, 0, 1, 0, 1, 22, 22, 1, [sfaOpen, sfaFoldFold,sfaOneLineOpen]);
CheckNode(11, [], 0, 1, 2, 2, 1, 0, 1, 0, 22, 22, 1, [sfaClose, sfaOneLineClose,sfaLastLineClose]);
{%endregion TEXT 1 -- [cfbtBeginEnd..cfbtNone], []}
{%region TEXT 1 -- [cfbtBeginEnd..cfbtNone], [] grp=1}
@ -1123,29 +1123,29 @@ begin
CheckFoldInfoCounts('', [], 1, [1, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 2]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : program Foo;
CheckNode( 0, [], 1, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 0, [], 1, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=2 : procedure a;
CheckNode( 1, [], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 1, [], 1, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 2 PasMinLvl=2 EndLvl=2 : {$IFDEF A}
//### Foldinfo Line: 3 PasMinLvl=2 EndLvl=3 : begin
CheckNode( 3, [], 1, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 3, [], 1, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 4 PasMinLvl=3 EndLvl=3 : {$ENDIF}
//### Foldinfo Line: 5 PasMinLvl=3 EndLvl=4 : {$IFDEF B} if a then begin {$ENDIF}
CheckNode( 5, [], 1, 0, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 5, [], 1, 0, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 6 PasMinLvl=4 EndLvl=4 : writeln()
//### Foldinfo Line: 7 PasMinLvl=3 EndLvl=3 : end;
CheckNode( 7, [], 1, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 7, [], 1, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 8 PasMinLvl=1 EndLvl=1 : end;
CheckNode( 8, [], 1, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [], 1, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [], 1, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 8, [], 1, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 9 PasMinLvl=1 EndLvl=2 : begin
CheckNode( 9, [], 1, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 9, [], 1, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 10 PasMinLvl=0 EndLvl=0 : end.
CheckNode(10, [], 1, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [], 1, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [], 1, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode(10, [], 1, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 11 PasMinLvl=0 EndLvl=0 : //
CheckNode(11, [], 1, 0, 0, 2, 0, 1, 0, 1, 22, 22, 1, [sfaFoldFold,sfaOneLineOpen]);
CheckNode(11, [], 1, 1, 2, 2, 1, 0, 1, 0, 22, 22, 1, [sfaOneLineClose,sfaLastLineClose]);
CheckNode(11, [], 1, 0, 0, 2, 0, 1, 0, 1, 22, 22, 1, [sfaOpen, sfaFoldFold,sfaOneLineOpen]);
CheckNode(11, [], 1, 1, 2, 2, 1, 0, 1, 0, 22, 22, 1, [sfaClose, sfaOneLineClose,sfaLastLineClose]);
{%endregion TEXT 1 -- [cfbtBeginEnd..cfbtNone], [] grp=1}
{%region TEXT 1 -- [cfbtBeginEnd,cfbtIfDef], [] grp=1}
@ -1157,29 +1157,29 @@ begin
CheckFoldInfoCounts('', [], 1, [1, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 2]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=0 : program Foo;
CheckNode( 0, [], 1, 0, 0, 7, 0, 0, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup]); // program
CheckNode( 0, [], 1, 0, 0, 7, 0, 0, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup]); // program
//### Foldinfo Line: 1 PasMinLvl=0 EndLvl=0 : procedure a;
CheckNode( 1, [], 1, 0, 0, 9, 1, 1, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup]); // procedure
CheckNode( 1, [], 1, 0, 0, 9, 1, 1, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup]); // procedure
//### Foldinfo Line: 2 PasMinLvl=0 EndLvl=0 : {$IFDEF A}
//### Foldinfo Line: 3 PasMinLvl=0 EndLvl=0 : begin
CheckNode( 3, [], 1, 0, 0, 5, 2, 2, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup]); // begin
CheckNode( 3, [], 1, 0, 0, 5, 2, 2, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup]); // begin
//### Foldinfo Line: 4 PasMinLvl=0 EndLvl=0 : {$ENDIF}
//### Foldinfo Line: 5 PasMinLvl=0 EndLvl=1 : {$IFDEF B} if a then begin {$ENDIF}
CheckNode( 5, [], 1, 0, 23, 28, 0, 1, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]); // begin
CheckNode( 5, [], 1, 0, 23, 28, 0, 1, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]); // begin
//### Foldinfo Line: 6 PasMinLvl=1 EndLvl=1 : writeln()
//### Foldinfo Line: 7 PasMinLvl=0 EndLvl=0 : end;
CheckNode( 7, [], 1, 0, 2, 5, 1, 0, 4, 3, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]); // end
CheckNode( 7, [], 1, 0, 2, 5, 1, 0, 4, 3, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]); // end
//### Foldinfo Line: 8 PasMinLvl=0 EndLvl=0 : end;
CheckNode( 8, [], 1, 0, 0, 3, 3, 3, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup]); // end;
CheckNode( 8, [], 1, 1, 0, 3, 2, 2, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup]); // end;
CheckNode( 8, [], 1, 0, 0, 3, 3, 3, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup]); // end;
CheckNode( 8, [], 1, 1, 0, 3, 2, 2, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup]); // end;
//### Foldinfo Line: 9 PasMinLvl=0 EndLvl=1 : begin
CheckNode( 9, [], 1, 0, 0, 5, 0, 1, 1, 2, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]); // begin
CheckNode( 9, [], 1, 0, 0, 5, 0, 1, 1, 2, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]); // begin
//### Foldinfo Line: 10 PasMinLvl=0 EndLvl=0 : end.
CheckNode(10, [], 1, 0, 0, 3, 1, 0, 2, 1, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]); // end.
CheckNode(10, [], 1, 1, 0, 3, 1, 1, 1, 0, 10, 10, 1, [sfaClose,sfaMarkup]); // end.
CheckNode(10, [], 1, 0, 0, 3, 1, 0, 2, 1, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]); // end.
CheckNode(10, [], 1, 1, 0, 3, 1, 1, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaMarkup]); // end.
//### Foldinfo Line: 11 PasMinLvl=0 EndLvl=0 : //
CheckNode(11, [], 1, 0, 0, 2, 0, 0, 0, 1, 22, 22, 1, [sfaOpen]); // //
CheckNode(11, [], 1, 1, 2, 2, 1, 1, 1, 0, 22, 22, 1, [sfaClose,sfaLastLineClose]); // /
CheckNode(11, [], 1, 0, 0, 2, 0, 0, 0, 1, 22, 22, 1, [sfaOpen, sfaOpenFold]); // //
CheckNode(11, [], 1, 1, 2, 2, 1, 1, 1, 0, 22, 22, 1, [sfaClose, sfaCloseFold,sfaLastLineClose]); // /
{%endregion TEXT 1 -- [cfbtBeginEnd..cfbtNone], [] grp=4}
{%region TEXT 1 -- [cfbtBeginEnd..cfbtNone], [sfaFold]}
@ -1191,28 +1191,28 @@ begin
CheckFoldInfoCounts('', [sfaFold], 0, [1, 1, 1, 1, 1, 1, 0, 1, 2, 1, 2, 0]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : program Foo;
CheckNode( 0, [sfaFold], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 0, [sfaFold], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=2 : procedure a;
CheckNode( 1, [sfaFold], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 1, [sfaFold], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 2 PasMinLvl=2 EndLvl=2 : {$IFDEF A}
CheckNode( 2, [sfaFold], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [sfaFold], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 3 PasMinLvl=2 EndLvl=3 : begin
CheckNode( 3, [sfaFold], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 3, [sfaFold], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 4 PasMinLvl=3 EndLvl=3 : {$ENDIF}
CheckNode( 4, [sfaFold], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 4, [sfaFold], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 5 PasMinLvl=3 EndLvl=4 : {$IFDEF B} if a then begin {$ENDIF}
CheckNode( 5, [sfaFold], 0, 0, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 5, [sfaFold], 0, 0, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 6 PasMinLvl=4 EndLvl=4 : writeln()
//### Foldinfo Line: 7 PasMinLvl=3 EndLvl=3 : end;
CheckNode( 7, [sfaFold], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 7, [sfaFold], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 8 PasMinLvl=1 EndLvl=1 : end;
CheckNode( 8, [sfaFold], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [sfaFold], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [sfaFold], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 8, [sfaFold], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 9 PasMinLvl=1 EndLvl=2 : begin
CheckNode( 9, [sfaFold], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 9, [sfaFold], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 10 PasMinLvl=0 EndLvl=0 : end.
CheckNode(10, [sfaFold], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [sfaFold], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [sfaFold], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode(10, [sfaFold], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 11 PasMinLvl=0 EndLvl=0 : //
{%endregion TEXT 1 -- [cfbtBeginEnd..cfbtNone], [sfaFold]}
@ -1225,26 +1225,26 @@ begin
CheckFoldInfoCounts('', [sfaMarkup], 0, [1, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 0]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : program Foo;
CheckNode( 0, [sfaMarkup], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 0, [sfaMarkup], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=2 : procedure a;
CheckNode( 1, [sfaMarkup], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 1, [sfaMarkup], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 2 PasMinLvl=2 EndLvl=2 : {$IFDEF A}
//### Foldinfo Line: 3 PasMinLvl=2 EndLvl=3 : begin
CheckNode( 3, [sfaMarkup], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 3, [sfaMarkup], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 4 PasMinLvl=3 EndLvl=3 : {$ENDIF}
//### Foldinfo Line: 5 PasMinLvl=3 EndLvl=4 : {$IFDEF B} if a then begin {$ENDIF}
CheckNode( 5, [sfaMarkup], 0, 0, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 5, [sfaMarkup], 0, 0, 23, 28, 3, 4, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 6 PasMinLvl=4 EndLvl=4 : writeln()
//### Foldinfo Line: 7 PasMinLvl=3 EndLvl=3 : end;
CheckNode( 7, [sfaMarkup], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 7, [sfaMarkup], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 8 PasMinLvl=1 EndLvl=1 : end;
CheckNode( 8, [sfaMarkup], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [sfaMarkup], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [sfaMarkup], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 8, [sfaMarkup], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 9 PasMinLvl=1 EndLvl=2 : begin
CheckNode( 9, [sfaMarkup], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 9, [sfaMarkup], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 10 PasMinLvl=0 EndLvl=0 : end.
CheckNode(10, [sfaMarkup], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [sfaMarkup], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [sfaMarkup], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode(10, [sfaMarkup], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 11 PasMinLvl=0 EndLvl=0 : //
{%endregion TEXT 1 -- [cfbtBeginEnd..cfbtNone], [sfaMarkup]}
@ -1258,33 +1258,33 @@ begin
CheckFoldInfoCounts('', [], 0, [1, 1, 1, 1, 1, 3, 0, 1, 2, 1, 2, 2, 0]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : program Foo;
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=1 : procedure a;
CheckNode( 1, [], 0, 0, 0, 9, 1, 1, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup]);
CheckNode( 1, [], 0, 0, 0, 9, 1, 1, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup]);
//### Foldinfo Line: 2 PasMinLvl=1 EndLvl=1 : {$IFDEF A}
CheckNode( 2, [], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 3 PasMinLvl=1 EndLvl=2 : begin
CheckNode( 3, [], 0, 0, 0, 5, 1, 2, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 3, [], 0, 0, 0, 5, 1, 2, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 4 PasMinLvl=2 EndLvl=2 : {$ENDIF}
CheckNode( 4, [], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 4, [], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 5 PasMinLvl=2 EndLvl=3 : {$IFDEF B} if a then begin {$ENDIF}
CheckNode( 5, [], 0, 0, 3, 9, 0, 1, 0, 1, 18, 18, 3, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 5, [], 0, 1, 23, 28, 2, 3, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 5, [], 0, 2, 30, 36, 1, 0, 1, 0, 18, 18, 3, [sfaMarkup,sfaOneLineClose]);
CheckNode( 5, [], 0, 0, 3, 9, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 5, [], 0, 1, 23, 28, 2, 3, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 5, [], 0, 2, 30, 36, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaMarkup,sfaOneLineClose]);
//### Foldinfo Line: 6 PasMinLvl=3 EndLvl=3 : writeln()
//### Foldinfo Line: 7 PasMinLvl=2 EndLvl=2 : end;
CheckNode( 7, [], 0, 0, 2, 5, 3, 2, 4, 3, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 7, [], 0, 0, 2, 5, 3, 2, 4, 3, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 8 PasMinLvl=1 EndLvl=1 : end;
CheckNode( 8, [], 0, 0, 0, 3, 2, 1, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 8, [], 0, 1, 0, 3, 2, 2, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup]);
CheckNode( 8, [], 0, 0, 0, 3, 2, 1, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 8, [], 0, 1, 0, 3, 2, 2, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup]);
//### Foldinfo Line: 9 PasMinLvl=1 EndLvl=2 : begin
CheckNode( 9, [], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 9, [], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 10 PasMinLvl=0 EndLvl=0 : end.
CheckNode(10, [], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode(10, [], 0, 0, 0, 3, 2, 1, 2, 1, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode(10, [], 0, 1, 0, 3, 1, 0, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 11 PasMinLvl=0 EndLvl=0 : //
CheckNode(11, [], 0, 0, 0, 2, 0, 1, 0, 1, 22, 22, 1, [sfaOpen,sfaFold,sfaFoldHide,sfaOneLineOpen]);
CheckNode(11, [], 0, 1, 2, 2, 1, 0, 1, 0, 22, 22, 1, [sfaClose,sfaFold,sfaOneLineClose,sfaLastLineClose]);
CheckNode(11, [], 0, 0, 0, 2, 0, 1, 0, 1, 22, 22, 1, [sfaOpen, sfaOpenFold,sfaFold,sfaFoldHide,sfaOneLineOpen]);
CheckNode(11, [], 0, 1, 2, 2, 1, 0, 1, 0, 22, 22, 1, [sfaClose, sfaCloseFold,sfaFold,sfaOneLineClose,sfaLastLineClose]);
{%endregion TEXT 1 -- [cfbtBeginEnd..cfbtNone]-[cfbtProcedure], [cfbtSlashComment]}
{%endregion TEXT 1}
@ -1301,41 +1301,41 @@ begin
CheckFoldInfoCounts('', [], 0, [1, 1, 10, 2, 4, 5, 2, 3]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : program Foo;
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=2 : procedure a;
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 2 PasMinLvl=2 EndLvl=4 : {$IFDEF A} begin {$IFDEF B} repeat a; {$ENDIF} until b; {$IFDEF c} try {$ELSE} //x
CheckNode( 2, [], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]); // {$IFDEF A}
CheckNode( 2, [], 0, 1, 11, 16, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]); // begin
CheckNode( 2, [], 0, 2, 18, 24, 1, 2, 1, 2, 18, 18, 3, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]); // {$IFDEF B}
CheckNode( 2, [], 0, 3, 28, 34, 3, 4, 3, 4, 15, 15, 1, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]); // repeat a;
CheckNode( 2, [], 0, 4, 39, 45, 2, 1, 2, 1, 18, 18, 3, [sfaMarkup,sfaOneLineClose]); // {$ENDIF}
CheckNode( 2, [], 0, 5, 47, 52, 4, 3, 4, 3, 15, 15, 1, [sfaMarkup,sfaOneLineClose]); // until b;
CheckNode( 2, [], 0, 6, 57, 63, 1, 2, 1, 2, 18, 18, 3, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]); // {$IFDEF c}
CheckNode( 2, [], 0, 7, 67, 70, 3, 4, 3, 4, 13, 13, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);// try
CheckNode( 2, [], 0, 8, 72, 77, 2, 1, 2, 1, 18, 18, 3, [sfaMarkup,sfaOneLineClose]); // {$ELSE}
CheckNode( 2, [], 0, 9, 72, 77, 1, 2, 1, 2, 18, 18, 3, [sfaMarkup,sfaOpen,sfaFold,sfaFoldFold]); // {$ELSE}
CheckNode( 2, [], 0, 0, 1, 7, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]); // {$IFDEF A}
CheckNode( 2, [], 0, 1, 11, 16, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]); // begin
CheckNode( 2, [], 0, 2, 18, 24, 1, 2, 1, 2, 18, 18, 3, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]); // {$IFDEF B}
CheckNode( 2, [], 0, 3, 28, 34, 3, 4, 3, 4, 15, 15, 1, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]); // repeat a;
CheckNode( 2, [], 0, 4, 39, 45, 2, 1, 2, 1, 18, 18, 3, [sfaClose, sfaMarkup,sfaOneLineClose]); // {$ENDIF}
CheckNode( 2, [], 0, 5, 47, 52, 4, 3, 4, 3, 15, 15, 1, [sfaClose, sfaMarkup,sfaOneLineClose]); // until b;
CheckNode( 2, [], 0, 6, 57, 63, 1, 2, 1, 2, 18, 18, 3, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]); // {$IFDEF c}
CheckNode( 2, [], 0, 7, 67, 70, 3, 4, 3, 4, 13, 13, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);// try
CheckNode( 2, [], 0, 8, 72, 77, 2, 1, 2, 1, 18, 18, 3, [sfaClose, sfaMarkup,sfaOneLineClose]); // {$ELSE}
CheckNode( 2, [], 0, 9, 72, 77, 1, 2, 1, 2, 18, 18, 3, [sfaMarkup,sfaOpen, sfaOpenFold,sfaFold,sfaFoldFold]); // {$ELSE}
//### Foldinfo Line: 3 PasMinLvl=4 EndLvl=4 : //foo
CheckNode( 3, [], 0, 0, 2, 4, 4, 5, 4, 5, 22, 22, 1, [sfaFoldFold,sfaOneLineOpen]);
CheckNode( 3, [], 0, 1, 7, 7, 5, 4, 5, 4, 22, 22, 1, [sfaOneLineClose]);
CheckNode( 3, [], 0, 0, 2, 4, 4, 5, 4, 5, 22, 22, 1, [sfaOpen, sfaFoldFold,sfaOneLineOpen]);
CheckNode( 3, [], 0, 1, 7, 7, 5, 4, 5, 4, 22, 22, 1, [sfaClose, sfaOneLineClose, sfaCloseForNextLine]);
//### Foldinfo Line: 4 PasMinLvl=4 EndLvl=5 : finally repeat x; {$ENDIF C} until y;
CheckNode( 4, [], 0, 0, 2, 9, 4, 5, 4, 5, 14, 14, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 4, [], 0, 1, 10, 16, 5, 6, 5, 6, 15, 15, 1, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 4, [], 0, 2, 21, 27, 2, 1, 2, 1, 18, 18, 3, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 4, [], 0, 3, 31, 36, 6, 5, 6, 5, 15, 15, 1, [sfaMarkup,sfaOneLineClose]);
CheckNode( 4, [], 0, 0, 2, 9, 4, 5, 4, 5, 14, 14, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 4, [], 0, 1, 10, 16, 5, 6, 5, 6, 15, 15, 1, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 4, [], 0, 2, 21, 27, 2, 1, 2, 1, 18, 18, 3, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 4, [], 0, 3, 31, 36, 6, 5, 6, 5, 15, 15, 1, [sfaClose, sfaMarkup,sfaOneLineClose]);
//### Foldinfo Line: 5 PasMinLvl=3 EndLvl=3 : repeat m; until n; end; {$ENDIF A} //
CheckNode( 5, [], 0, 0, 2, 8, 5, 6, 5, 6, 15, 15, 1, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 5, [], 0, 1, 12, 17, 6, 5, 6, 5, 15, 15, 1, [sfaMarkup,sfaOneLineClose]);
CheckNode( 5, [], 0, 2, 21, 24, 5, 4, 5, 4, 14, 14, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 5, [], 0, 3, 21, 24, 4, 3, 4, 3, 13, 13, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 5, [], 0, 4, 27, 33, 1, 0, 1, 0, 18, 18, 3, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 5, [], 0, 0, 2, 8, 5, 6, 5, 6, 15, 15, 1, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 5, [], 0, 1, 12, 17, 6, 5, 6, 5, 15, 15, 1, [sfaClose, sfaMarkup,sfaOneLineClose]);
CheckNode( 5, [], 0, 2, 21, 24, 5, 4, 5, 4, 14, 14, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 5, [], 0, 3, 21, 24, 4, 3, 4, 3, 13, 13, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 5, [], 0, 4, 27, 33, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 6 PasMinLvl=1 EndLvl=1 : end
CheckNode( 6, [], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 6, [], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 6, [], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 6, [], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 7 PasMinLvl=0 EndLvl=0 : begin end.
CheckNode( 7, [], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 7, [], 0, 1, 6, 9, 2, 1, 2, 1, 0, 0, 1, [sfaMarkup,sfaOneLineClose]);
CheckNode( 7, [], 0, 2, 6, 9, 1, 0, 1, 0, 10, 10, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 7, [], 0, 0, 0, 5, 1, 2, 1, 2, 0, 0, 1, [sfaOpen, sfaMarkup,sfaFoldFold,sfaOneLineOpen]);
CheckNode( 7, [], 0, 1, 6, 9, 2, 1, 2, 1, 0, 0, 1, [sfaClose, sfaMarkup,sfaOneLineClose]);
CheckNode( 7, [], 0, 2, 6, 9, 1, 0, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
{%endregion TEXT 2 -- [cfbtBeginEnd..cfbtNone], []}
{%region TEXT 2}
@ -1352,32 +1352,32 @@ begin
CheckFoldInfoCounts('', [], 0, [1, 1, 2, 1, 1, 1, 0, 3, 1, 3, 2]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : Unit Foo;
CheckNode( 0, [], 0, 0, 0, 4, 0, 1, 0, 1, 11, 11, 1, [sfaOpen,sfaFold,sfaFoldFold]);
CheckNode( 0, [], 0, 0, 0, 4, 0, 1, 0, 1, 11, 11, 1, [sfaOpen, sfaOpenFold,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=2 : Interface
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 9, 9, 1, [sfaOpen,sfaFold,sfaFoldFold]);
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 9, 9, 1, [sfaOpen, sfaOpenFold,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 2 PasMinLvl=2 EndLvl=2 : type a=Integer;
CheckNode( 2, [], 0, 0, 0, 4, 2, 3, 2, 3, 5, 5, 1, [sfaFoldFold,sfaOneLineOpen]);
CheckNode( 2, [], 0, 1, 15, 15, 3, 2, 3, 2, 5, 5, 1, [sfaOneLineClose]);
CheckNode( 2, [], 0, 0, 0, 4, 2, 3, 2, 3, 5, 5, 1, [sfaOpen, sfaFoldFold,sfaOneLineOpen]);
CheckNode( 2, [], 0, 1, 15, 15, 3, 2, 3, 2, 5, 5, 1, [sfaClose, sfaOneLineClose, sfaCloseForNextLine]);
//### Foldinfo Line: 3 PasMinLvl=2 EndLvl=3 : var
CheckNode( 3, [], 0, 0, 0, 3, 2, 3, 2, 3, 5, 5, 1, [sfaOpen,sfaFold,sfaFoldFold]);
CheckNode( 3, [], 0, 0, 0, 3, 2, 3, 2, 3, 5, 5, 1, [sfaOpen, sfaOpenFold,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 4 PasMinLvl=2 EndLvl=2 : b:Integer
CheckNode( 4, [], 0, 0, 11, 11, 3, 2, 3, 2, 5, 5, 1, [sfaClose,sfaFold]);
CheckNode( 4, [], 0, 0, 11, 11, 3, 2, 3, 2, 5, 5, 1, [sfaClose, sfaCloseFold,sfaFold, sfaCloseForNextLine]);
//### Foldinfo Line: 5 PasMinLvl=2 EndLvl=3 : const
CheckNode( 5, [], 0, 0, 0, 5, 2, 3, 2, 3, 5, 5, 1, [sfaOpen,sfaFold,sfaFoldFold]);
CheckNode( 5, [], 0, 0, 0, 5, 2, 3, 2, 3, 5, 5, 1, [sfaOpen, sfaOpenFold,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 6 PasMinLvl=3 EndLvl=3 : c = 1;
//### Foldinfo Line: 7 PasMinLvl=1 EndLvl=1 : d = 2; {$IFDEF A}
CheckNode( 7, [], 0, 0, 10, 16, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 7, [], 0, 1, 19, 19, 3, 2, 3, 2, 5, 5, 1, [sfaClose,sfaFold]);
CheckNode( 7, [], 0, 2, 19, 19, 2, 1, 2, 1, 9, 9, 1, [sfaClose,sfaFold]);
CheckNode( 7, [], 0, 0, 10, 16, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 7, [], 0, 1, 19, 19, 3, 2, 3, 2, 5, 5, 1, [sfaClose, sfaCloseFold,sfaFold, sfaCloseForNextLine]);
CheckNode( 7, [], 0, 2, 19, 19, 2, 1, 2, 1, 9, 9, 1, [sfaClose, sfaCloseFold,sfaFold, sfaCloseForNextLine]);
//### Foldinfo Line: 8 PasMinLvl=1 EndLvl=2 : Implementation
CheckNode( 8, [], 0, 0, 0, 14, 1, 2, 1, 2, 9, 9, 1, [sfaOpen,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 9 PasMinLvl=1 EndLvl=1 : //
CheckNode( 9, [], 0, 0, 0, 2, 2, 3, 2, 3, 22, 22, 1, [sfaFoldFold,sfaOneLineOpen]);
CheckNode( 9, [], 0, 1, 2, 2, 3, 2, 3, 2, 22, 22, 1, [sfaOneLineClose]);
CheckNode( 9, [], 0, 2, 2, 2, 2, 1, 2, 1, 9, 9, 1, [sfaClose,sfaFold]);
CheckNode( 8, [], 0, 0, 0, 14, 1, 2, 1, 2, 9, 9, 1, [sfaOpen, sfaOpenFold,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 9 PasMinLvl=1 EndLvl=1 : //, unit-section
CheckNode( 9, [], 0, 0, 0, 2, 2, 3, 2, 3, 22, 22, 1, [sfaOpen, sfaFoldFold,sfaOneLineOpen]);
CheckNode( 9, [], 0, 1, 2, 2, 3, 2, 3, 2, 22, 22, 1, [sfaClose, sfaOneLineClose, sfaCloseForNextLine]);
CheckNode( 9, [], 0, 2, 2, 2, 2, 1, 2, 1, 9, 9, 1, [sfaClose, sfaCloseFold,sfaFold, sfaCloseForNextLine]);
//### Foldinfo Line: 10 PasMinLvl=0 EndLvl=0 : end.
CheckNode(10, [], 0, 0, 0, 3, 1, 0, 1, 0, 11, 11, 1, [sfaClose,sfaFold]);
CheckNode(10, [], 0, 1, 4, 4, 1, 0, 1, 0, 18, 18, 3, [sfaClose,sfaMarkup,sfaFold,sfaLastLineClose]);
CheckNode(10, [], 0, 0, 0, 3, 1, 0, 1, 0, 11, 11, 1, [sfaClose, sfaCloseFold,sfaFold]);
CheckNode(10, [], 0, 1, 4, 4, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold,sfaLastLineClose]);
{%endregion TEXT 3 -- [cfbtBeginEnd..cfbtNone], []}
{%region TEXT 3}
@ -1394,24 +1394,24 @@ begin
CheckFoldInfoCounts('', [], 0, [1, 1,3, 1, 2, 1, 3]);
//### Foldinfo Line: 0 PasMinLvl=0 EndLvl=1 : program p;
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 0, [], 0, 0, 0, 7, 0, 1, 0, 1, 10, 10, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 1 PasMinLvl=1 EndLvl=2 : procedure A;
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 1, [], 0, 0, 0, 9, 1, 2, 1, 2, 3, 3, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 2 PasMinLvl=2 EndLvl=4 : begin {$IFDEF} if a then begin
CheckNode( 2, [], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [], 0, 1, 7, 13, 0, 1, 0, 1, 18, 18, 3, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [], 0, 2, 25, 30, 3, 4, 3, 4, 0, 0, 1, [sfaOpen,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [], 0, 0, 0, 5, 2, 3, 2, 3, 1, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [], 0, 1, 7, 13, 0, 1, 0, 1, 18, 18, 3, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
CheckNode( 2, [], 0, 2, 25, 30, 3, 4, 3, 4, 0, 0, 1, [sfaOpen, sfaOpenFold,sfaMarkup,sfaFold,sfaFoldFold]);
//### Foldinfo Line: 3 PasMinLvl=3 EndLvl=3 : end; // 2
CheckNode( 3, [], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 3, [], 0, 0, 2, 5, 4, 3, 4, 3, 0, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 4 PasMinLvl=1 EndLvl=1 : end; // 1
CheckNode( 4, [], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 4, [], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 4, [], 0, 0, 0, 3, 3, 2, 3, 2, 1, 0, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
CheckNode( 4, [], 0, 1, 0, 3, 2, 1, 2, 1, 3, 3, 1, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 5 PasMinLvl=1 EndLvl=1 : {$ENDIF}
CheckNode( 5, [], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose,sfaMarkup,sfaFold]);
CheckNode( 5, [], 0, 0, 1, 7, 1, 0, 1, 0, 18, 18, 3, [sfaClose, sfaCloseFold,sfaMarkup,sfaFold]);
//### Foldinfo Line: 6 PasMinLvl=1 EndLvl=0 : //
CheckNode( 6, [], 0, 0, 0, 2, 1, 2, 1, 2, 22, 22, 1, [sfaFoldFold,sfaOneLineOpen]);
CheckNode( 6, [], 0, 1, 2, 2, 2, 1, 2, 1, 22, 22, 1, [sfaOneLineClose,sfaLastLineClose]);
CheckNode( 6, [], 0, 2, 2, 2, 1, 0, 1, 0, 10, 10, 1, [sfaClose,sfaFold,sfaLastLineClose]);
CheckNode( 6, [], 0, 0, 0, 2, 1, 2, 1, 2, 22, 22, 1, [sfaOpen, sfaFoldFold,sfaOneLineOpen]);
CheckNode( 6, [], 0, 1, 2, 2, 2, 1, 2, 1, 22, 22, 1, [sfaClose, sfaOneLineClose,sfaLastLineClose]);
CheckNode( 6, [], 0, 2, 2, 2, 1, 0, 1, 0, 10, 10, 1, [sfaClose, sfaCloseFold,sfaFold,sfaLastLineClose]);
{%endregion TEXT 4 -- [cfbtBeginEnd..cfbtNone], []}
{%region TEXT 4}