mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-07-23 18:26:05 +02: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);
|
||||
VDiff := 0;
|
||||
{$IFDEF SynDebugMultiHL}
|
||||
DebugLn(SYNDEBUG_MULTIHL, ['***** ', FRegionScanStartRangeIndex, ' cnt ', Count]);
|
||||
DebugLn(SYNDEBUG_MULTIHL, ['***** ', FRegionScanStartRangeIndex, ' cnt ', FSectionList.Count]);
|
||||
{$ENDIF}
|
||||
if FRegionScanStartRangeIndex < Count then begin
|
||||
if FRegionScanStartRangeIndex < FSectionList.Count then begin
|
||||
// fix virtual lines on sections
|
||||
if (FRegionScanStartRangeIndex > 0) then begin
|
||||
s := FSectionList.Sections[FRegionScanStartRangeIndex-1];
|
||||
@ -1077,6 +1077,7 @@ var
|
||||
var
|
||||
pt: TPoint;
|
||||
begin
|
||||
//debugln(['StartScheme NewScheme=',dbgs(NewScheme),' StartAtLine=',StartAtLine,' StartAtChar=',StartAtChar,' TokenAtChar=',TokenAtChar]);
|
||||
pt := Point(TokenAtChar-1, StartAtLine);
|
||||
if CurRegStart.y < 0 then
|
||||
DefaultVirtualLines.RegionScanUpdateFirstRegionEnd(pt, 0)
|
||||
@ -1094,6 +1095,7 @@ var
|
||||
var
|
||||
pt: TPoint;
|
||||
begin
|
||||
//debugln(['EndScheme EndAtLine=',EndAtLine,' EndAtChar=',EndAtChar,' TokenAtChar=',TokenEndChar]);
|
||||
pt := Point(EndAtChar, EndAtLine);
|
||||
if CurRegStart.y < 0 then
|
||||
FCurScheme.VirtualLines.RegionScanUpdateFirstRegionEnd(pt, TokenEndChar)
|
||||
|
@ -905,7 +905,63 @@ var
|
||||
end;
|
||||
begin
|
||||
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}
|
||||
PushBaseName('append after EOT (default scheme)'); // Issue 0022519
|
||||
|
Loading…
Reference in New Issue
Block a user