From 09fb838463f6570b4670faea2a3e0fe18c4ea3db Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sat, 3 Mar 2018 08:46:02 +0100 Subject: [PATCH] fix #261 - Even smarter smartDdocNewLine --- src/ce_synmemo.pas | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ce_synmemo.pas b/src/ce_synmemo.pas index 1c9ef02e..e3be204f 100644 --- a/src/ce_synmemo.pas +++ b/src/ce_synmemo.pas @@ -2690,6 +2690,7 @@ var p: integer; tk1: PLexToken = nil; tk2: PLexToken = nil; + r: TStringRange = (ptr:nil; pos:0; len: 0); begin result := #0; p := SelStart; @@ -2701,7 +2702,20 @@ begin tk2 := fLexToks[i+1]; if (tk1^.offset < p) and (tk1^.kind in [ltkComment, ltkIllegal]) and (tk1^.Data[1] in ['*','+']) and (tk2^.offset > p) then - exit(tk1^.Data[1]) + begin + r.init(tk1^.Data); + r.popUntil(#10)^.popFront^.yield; + if not r.empty then + r.popWhile([' ', #9]); + if not r.empty then + begin + if r.front in ['*','+'] then + exit(r.front) + else + exit(#0); + end + else exit(tk1^.Data[1]) + end else if (tk1^.offset > p) then exit; end