From 4adccd52754d2ca48581c3d9f51eb3d5ba9757d4 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sat, 29 Apr 2017 10:02:41 +0200 Subject: [PATCH] prevent to systematically lex on new line --- src/ce_synmemo.pas | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ce_synmemo.pas b/src/ce_synmemo.pas index 0901113d..3a7af5fa 100644 --- a/src/ce_synmemo.pas +++ b/src/ce_synmemo.pas @@ -2545,6 +2545,7 @@ procedure TCESynMemo.KeyDown(var Key: Word; Shift: TShiftState); var line: string; ddc: char; + lxd: boolean; begin case Key of VK_BACK: if fCallTipWin.Visible and (CaretX > 1) @@ -2571,11 +2572,13 @@ begin if (fAutoCloseCurlyBrace = autoCloseOnNewLineLexically) or fSmartDdocNewline then begin - fLexToks.Clear; - lex(lines.Text, fLexToks); + lxd := false; if (LogicalCaretXY.X - 1 >= line.length) or isBlank(line[LogicalCaretXY.X .. line.length]) then begin + lxd := true; + fLexToks.Clear; + lex(lines.Text, fLexToks); if lexCanCloseBrace then begin Key := 0; @@ -2584,6 +2587,11 @@ begin end; if (fSmartDdocNewline) then begin + if not lxd then + begin + fLexToks.Clear; + lex(lines.Text, fLexToks); + end; ddc := lexInDdoc; if ddc in ['*', '+'] then begin