mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 02:36:23 +02:00
SynEdit: Trailing-Space-Trimmer, clean up / better workaround for syncro edit
git-svn-id: trunk@60078 -
This commit is contained in:
parent
26d29fe3be
commit
02479b4a1f
@ -561,12 +561,12 @@ begin
|
|||||||
if (not fEnabled) then exit;
|
if (not fEnabled) then exit;
|
||||||
if (fLockCount > 0) or (length(fSpaces) = 0) or
|
if (fLockCount > 0) or (length(fSpaces) = 0) or
|
||||||
(fLineIndex < 0) or (fLineIndex >= fSynStrings.Count) or
|
(fLineIndex < 0) or (fLineIndex >= fSynStrings.Count) or
|
||||||
( (fLineIndex = TSynEditCaret(Sender).LinePos - 1) and
|
( (fLineIndex = ToIdx(TSynEditCaret(Sender).LinePos)) and
|
||||||
( (FTrimType in [settLeaveLine]) or
|
( (FTrimType in [settLeaveLine]) or
|
||||||
((FTrimType in [settEditLine]) and not FLineEdited) ))
|
((FTrimType in [settEditLine]) and not FLineEdited) ))
|
||||||
then begin
|
then begin
|
||||||
if (fLineIndex <> TSynEditCaret(Sender).LinePos - 1) then begin
|
if (fLineIndex <> ToIdx(TSynEditCaret(Sender).LinePos)) then begin
|
||||||
{$IFDEF SynTrimDebug}debugln(['--- Trimmer -- CaretChnaged - Clearing 1 ', ' fLineIndex=', fLineIndex, ' fSpaces=',length(fSpaces), 'newCaretYPos=',TSynEditCaret(Sender).LinePos]);{$ENDIF}
|
{$IFDEF SynTrimDebug}debugln(['--- Trimmer -- CaretChanged - Clearing 1 ', ' fLineIndex=', fLineIndex, ' fSpaces=',length(fSpaces), 'newCaretYPos=',TSynEditCaret(Sender).LinePos]);{$ENDIF}
|
||||||
if fSpaces <> '' then IncViewChangeStamp;
|
if fSpaces <> '' then IncViewChangeStamp;
|
||||||
fLineIndex := TSynEditCaret(Sender).LinePos - 1;
|
fLineIndex := TSynEditCaret(Sender).LinePos - 1;
|
||||||
fSpaces := '';
|
fSpaces := '';
|
||||||
@ -579,7 +579,7 @@ begin
|
|||||||
if (fLineIndex <> TSynEditCaret(Sender).LinePos - 1) or
|
if (fLineIndex <> TSynEditCaret(Sender).LinePos - 1) or
|
||||||
(FTrimType = settIgnoreAll) then
|
(FTrimType = settIgnoreAll) then
|
||||||
begin
|
begin
|
||||||
{$IFDEF SynTrimDebug}debugln(['--- Trimmer -- CaretChnaged - Trimming,clear 1 ', ' fLineIndex=', fLineIndex, ' fSpaces=',length(fSpaces), 'newCaretYPos=',TSynEditCaret(Sender).LinePos]);{$ENDIF}
|
{$IFDEF SynTrimDebug}debugln(['--- Trimmer -- CaretChanged - Trimming,clear 1 ', ' fLineIndex=', fLineIndex, ' fSpaces=',length(fSpaces), 'newCaretYPos=',TSynEditCaret(Sender).LinePos]);{$ENDIF}
|
||||||
MaybeAddUndoForget(FLineIndex+1, FSpaces);
|
MaybeAddUndoForget(FLineIndex+1, FSpaces);
|
||||||
i := length(FSpaces);
|
i := length(FSpaces);
|
||||||
fSpaces := '';
|
fSpaces := '';
|
||||||
@ -596,7 +596,7 @@ begin
|
|||||||
else
|
else
|
||||||
j := i - length(s) - 1;
|
j := i - length(s) - 1;
|
||||||
s := copy(FSpaces, j + 1, MaxInt);
|
s := copy(FSpaces, j + 1, MaxInt);
|
||||||
{$IFDEF SynTrimDebug}debugln(['--- Trimmer -- CarteChnaged - Trimming,part to ',length(s),' ', ' fLineIndex=', fLineIndex, ' fSpaces=',length(fSpaces), 'newCaretYPos=',TSynEditCaret(Sender).LinePos]);{$ENDIF}
|
{$IFDEF SynTrimDebug}debugln(['--- Trimmer -- CaretChanged - Trimming,part to ',length(s),' ', ' fLineIndex=', fLineIndex, ' fSpaces=',length(fSpaces), 'newCaretYPos=',TSynEditCaret(Sender).LinePos]);{$ENDIF}
|
||||||
FSpaces := copy(FSpaces, 1, j);
|
FSpaces := copy(FSpaces, 1, j);
|
||||||
i := length(s);
|
i := length(s);
|
||||||
MaybeAddUndoForget(FLineIndex+1, s);
|
MaybeAddUndoForget(FLineIndex+1, s);
|
||||||
@ -815,6 +815,8 @@ procedure TSynEditStringTrimmingList.ForceTrim;
|
|||||||
begin
|
begin
|
||||||
FlushNotificationCache;
|
FlushNotificationCache;
|
||||||
DoCaretChanged(fCaret); // Caret May be locked
|
DoCaretChanged(fCaret); // Caret May be locked
|
||||||
|
if (fLockCount > 1) then
|
||||||
|
exit; // workaround for syncro edit
|
||||||
TrimAfterLock;
|
TrimAfterLock;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user