From b730a4ed52e9489f35450f7ad1ebb362eb329e15 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Fri, 24 Apr 2020 21:00:17 +0200 Subject: [PATCH] fix #31 - case where brace auto close is triggered while in comment --- src/u_synmemo.pas | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/u_synmemo.pas b/src/u_synmemo.pas index b7f6e499..5b1be658 100644 --- a/src/u_synmemo.pas +++ b/src/u_synmemo.pas @@ -3525,7 +3525,6 @@ procedure TDexedMemo.KeyDown(var Key: Word; Shift: TShiftState); var line: string; ddc: char; - lxd: boolean; ccb: TBraceCloseOption; begin case Key of @@ -3543,24 +3542,9 @@ begin line := LineText; if [ssCtrl] <> Shift then begin - lxd := false; - if ((LogicalCaretXY.X - 1 >= line.length) or - isBlank(line[LogicalCaretXY.X .. line.length])) then - begin - lexWholeText([TLexOption.lxoNoWhites, TLexOption.lxoNoComments]); - lxd := true; - ccb := lexCanCloseBrace; - if ccb <> braceCloseInvalid then - begin - Key := 0; - curlyBraceCloseAndIndent((ccb = braceClosePositive) and not (fAutoCloseCurlyBrace = autoCloseNever)); - lxd := false; - end; - end; if (fSmartDdocNewline) then begin - if not lxd then - lexWholeText(); + lexWholeText(); ddc := canInsertLeadingDdocSymbol; if ddc in ['*', '+'] then begin @@ -3571,6 +3555,17 @@ begin exit; end; end; + if ((LogicalCaretXY.X - 1 >= line.length) or + isBlank(line[LogicalCaretXY.X .. line.length])) then + begin + lexWholeText([TLexOption.lxoNoWhites, TLexOption.lxoNoComments]); + ccb := lexCanCloseBrace; + if ccb <> braceCloseInvalid then + begin + Key := 0; + curlyBraceCloseAndIndent((ccb = braceClosePositive) and not (fAutoCloseCurlyBrace = autoCloseNever)); + end; + end; end else shift := []; end;