mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-11 08:53:11 +01:00
SynEdit, MultiHighlighter: fix adding text/sections at EOL. issue #0022745
git-svn-id: trunk@38428 -
This commit is contained in:
parent
56079e50f0
commit
d93e43d196
@ -683,9 +683,9 @@ begin
|
|||||||
FSectionList.Delete(FRegionScanRangeIndex);
|
FSectionList.Delete(FRegionScanRangeIndex);
|
||||||
VDiff := 0;
|
VDiff := 0;
|
||||||
{$IFDEF SynDebugMultiHL}
|
{$IFDEF SynDebugMultiHL}
|
||||||
DebugLn(SYNDEBUG_MULTIHL, ['***** ', FRegionScanStartRangeIndex, ' cnt ', Count]);
|
DebugLn(SYNDEBUG_MULTIHL, ['***** ', FRegionScanStartRangeIndex, ' cnt ', FSectionList.Count]);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
if FRegionScanStartRangeIndex < Count then begin
|
if FRegionScanStartRangeIndex < FSectionList.Count then begin
|
||||||
// fix virtual lines on sections
|
// fix virtual lines on sections
|
||||||
if (FRegionScanStartRangeIndex > 0) then begin
|
if (FRegionScanStartRangeIndex > 0) then begin
|
||||||
s := FSectionList.Sections[FRegionScanStartRangeIndex-1];
|
s := FSectionList.Sections[FRegionScanStartRangeIndex-1];
|
||||||
@ -1077,6 +1077,7 @@ var
|
|||||||
var
|
var
|
||||||
pt: TPoint;
|
pt: TPoint;
|
||||||
begin
|
begin
|
||||||
|
//debugln(['StartScheme NewScheme=',dbgs(NewScheme),' StartAtLine=',StartAtLine,' StartAtChar=',StartAtChar,' TokenAtChar=',TokenAtChar]);
|
||||||
pt := Point(TokenAtChar-1, StartAtLine);
|
pt := Point(TokenAtChar-1, StartAtLine);
|
||||||
if CurRegStart.y < 0 then
|
if CurRegStart.y < 0 then
|
||||||
DefaultVirtualLines.RegionScanUpdateFirstRegionEnd(pt, 0)
|
DefaultVirtualLines.RegionScanUpdateFirstRegionEnd(pt, 0)
|
||||||
@ -1094,6 +1095,7 @@ var
|
|||||||
var
|
var
|
||||||
pt: TPoint;
|
pt: TPoint;
|
||||||
begin
|
begin
|
||||||
|
//debugln(['EndScheme EndAtLine=',EndAtLine,' EndAtChar=',EndAtChar,' TokenAtChar=',TokenEndChar]);
|
||||||
pt := Point(EndAtChar, EndAtLine);
|
pt := Point(EndAtChar, EndAtLine);
|
||||||
if CurRegStart.y < 0 then
|
if CurRegStart.y < 0 then
|
||||||
FCurScheme.VirtualLines.RegionScanUpdateFirstRegionEnd(pt, TokenEndChar)
|
FCurScheme.VirtualLines.RegionScanUpdateFirstRegionEnd(pt, TokenEndChar)
|
||||||
|
|||||||
@ -905,7 +905,63 @@ var
|
|||||||
end;
|
end;
|
||||||
begin
|
begin
|
||||||
TSynEditStringList(SynEdit.TextBuffer).AddChangeHandler(senrHighlightChanged, @DoHighlightChanged);
|
TSynEditStringList(SynEdit.TextBuffer).AddChangeHandler(senrHighlightChanged, @DoHighlightChanged);
|
||||||
|
{%region Issue 0022745}
|
||||||
|
PushBaseName('Insert at end, create new section at end'); // Issue 0022745
|
||||||
|
SynEdit.ClearAll;
|
||||||
|
InitMultiXmlPasHl;
|
||||||
|
|
||||||
|
SynEdit.TestTypeText(1, 1, '<html>'+#13);
|
||||||
|
SynEdit.TestTypeText( ''+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( ''+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( ''+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '<pas>'+#13);
|
||||||
|
SynEdit.TestTypeText( '</pas>'+#13);
|
||||||
|
//DumpAll(MultiHl);
|
||||||
|
|
||||||
|
FinishMultiXmlPasHl;
|
||||||
|
PopBaseName;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PushBaseName('0022745'); // Issue 0022745
|
||||||
|
SynEdit.ClearAll;
|
||||||
|
InitMultiXmlPasHl;
|
||||||
|
|
||||||
|
SynEdit.TestTypeText(1, 1,
|
||||||
|
'<html>'+#13+
|
||||||
|
''+#13+
|
||||||
|
'<pas>'+#13+
|
||||||
|
'</pas>'+#13+
|
||||||
|
'<pas>'+#13+
|
||||||
|
'</pas>'+#13,
|
||||||
|
True
|
||||||
|
);
|
||||||
|
|
||||||
|
//PushBaseName('Insert "<pas>"');
|
||||||
|
// CheckTokensForLine('1st line=html', MultiHl, 0, [AtPasMark]);
|
||||||
|
// CheckTokensForLine('2nd line=html', MultiHl, 1, [AtPasMark]);
|
||||||
|
// AssertEquals(BaseTestName + 'Section Count def', 0, MultiHl.DefaultVirtualLines.SectionList.Count);
|
||||||
|
// AssertEquals(BaseTestName + 'Section Count pas', 1, PasScheme.VirtualLines.SectionList.Count);
|
||||||
|
|
||||||
|
FinishMultiXmlPasHl;
|
||||||
|
PopBaseName;
|
||||||
|
|
||||||
|
{%endregion}
|
||||||
|
|
||||||
{%region Issue 0022519}
|
{%region Issue 0022519}
|
||||||
PushBaseName('append after EOT (default scheme)'); // Issue 0022519
|
PushBaseName('append after EOT (default scheme)'); // Issue 0022519
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user