diff --git a/components/synedit/syneditmarkupwordgroup.pp b/components/synedit/syneditmarkupwordgroup.pp index b0f06164ea..ee124afbbb 100644 --- a/components/synedit/syneditmarkupwordgroup.pp +++ b/components/synedit/syneditmarkupwordgroup.pp @@ -229,7 +229,7 @@ begin if sfaOpen in Node1.FoldAction then begin y1 := y; Node2 := FindEndNode(Node1, y, i); - if (sfaInvalid in Node2.FoldAction) then + if (sfaInvalid in Node2.FoldAction) or not(sfaMarkup in Node2.FoldAction) then exit; y2 := y; i2 := i; @@ -242,7 +242,7 @@ begin y2 := y; i2 := i; Node1 := FindStartNode(Node2, y, i); - if (sfaInvalid in Node1.FoldAction) then + if (sfaInvalid in Node1.FoldAction) or not(sfaMarkup in Node1.FoldAction) then exit; y1 := y; end; @@ -257,7 +257,8 @@ begin Word2.Y := y2 + 1; Word2.X := Node2.LogXStart + 1; Word2.X2 := Node2.LogXEnd + 1; - if not(sfaInvalid in Node3.FoldAction) then begin + if (sfaMarkup in Node3.FoldAction) and not(sfaInvalid in Node3.FoldAction) then + begin Word3 := Word2; if i3 > i2 then begin Word2 := Word1; diff --git a/components/synedit/synhighlighterpas.pp b/components/synedit/synhighlighterpas.pp index fa0deb6cde..2fc3d06e8e 100644 --- a/components/synedit/synhighlighterpas.pp +++ b/components/synedit/synhighlighterpas.pp @@ -1329,8 +1329,11 @@ function TSynPasSyn.Func85: TtkTokenKind; begin if KeyComp('Forward') then begin Result := tkKey; - if TopPascalCodeFoldBlockType = cfbtProcedure then + if TopPascalCodeFoldBlockType = cfbtProcedure then begin EndCodeFoldBlock; + if FCatchNodeInfo then + exclude(FNodeInfoList[FNodeInfoCount-1].FoldAction, sfaMarkup); + end; end else if KeyComp('Library') then Result := tkKey else Result := tkIdentifier; end; @@ -1425,8 +1428,11 @@ function TSynPasSyn.Func99: TtkTokenKind; begin if KeyComp('External') then begin Result := tkKey; - if TopPascalCodeFoldBlockType = cfbtProcedure then + if TopPascalCodeFoldBlockType = cfbtProcedure then begin EndCodeFoldBlock; + if FCatchNodeInfo then + exclude(FNodeInfoList[FNodeInfoCount-1].FoldAction, sfaMarkup); + end; end else Result := tkIdentifier; end;