From 207f9276d641cd49beaebcb25d3248b0a42e6537 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Wed, 2 Mar 2016 12:33:52 +0100 Subject: [PATCH] implement #25 but not enabled --- src/ce_editoroptions.pas | 5 +++++ src/ce_synmemo.pas | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ce_editoroptions.pas b/src/ce_editoroptions.pas index 5d622d38..9a5861bb 100644 --- a/src/ce_editoroptions.pas +++ b/src/ce_editoroptions.pas @@ -58,6 +58,7 @@ type fCompletionMenuWidth: integer; fCompletionMenuLines: Byte; fAutoCLoseCurlyBrace: TBraceAutoCloseStyle; + fCtrlDisableAutoClose: boolean; // procedure setFont(value: TFont); procedure setSelCol(value: TSynSelectedColor); @@ -83,6 +84,7 @@ type property completionMenuCaseCare: boolean read fCompletionMenuCaseCare write fCompletionMenuCaseCare; property completionMenuLines: byte read fCompletionMenuLines write setCompletionMenuLines; property completionMenuWidth: integer read fCompletionMenuWidth write fCompletionMenuWidth; + //property ctrlDisableAutoClose: boolean read fCtrlDisableAutoClose write fCtrlDisableAutoClose default true; property currentLine: TSynSelectedColor read fCurrLineAttribs write setCurrLineAttribs; property ddocDelay: Integer read fDDocDelay write setDDocDelay; property folding: TSynSelectedColor read fFoldedColor write setFoldedColor; @@ -217,6 +219,7 @@ begin fCurrLineAttribs.Background := fBackground - $080808; fCurrLineAttribs.Foreground := clNone; // + fCtrlDisableAutoClose := true; options1 := [eoAutoIndent, eoBracketHighlight, eoGroupUndo, eoTabsToSpaces, eoTrimTrailingSpaces, eoDragDropEditing, eoShowCtrlMouseLinks, eoEnhanceHomeKey, eoTabIndent]; @@ -263,6 +266,7 @@ begin begin srcopt := TCEEditorOptionsBase(src); // + fCtrlDisableAutoClose:=srcopt.fCtrlDisableAutoClose; fResetFontSize:=srcopt.fResetFontSize; fAutoCLoseCurlyBrace := srcopt.fAutoCLoseCurlyBrace; fCompletionMenuWidth:=srcopt.fCompletionMenuWidth; @@ -608,6 +612,7 @@ begin if not fResetFontSize then anEditor.Font.Size := savedSize; + anEditor.ctrlDisableAutoClose := fCtrlDisableAutoClose; anEditor.autoCloseCurlyBrace := fAutoCLoseCurlyBrace; anEditor.completionMenu.TheForm.Width := fCompletionMenuWidth; anEditor.completionMenu.LinesInWindow := fCompletionMenuLines; diff --git a/src/ce_synmemo.pas b/src/ce_synmemo.pas index a5a83ccd..f99f36dc 100644 --- a/src/ce_synmemo.pas +++ b/src/ce_synmemo.pas @@ -140,6 +140,8 @@ type fOverrideColMode: boolean; fAutoCloseCurlyBrace: TBraceAutoCloseStyle; fLexToks: TLexTokenList; + fCtrlDisableAutoClose: boolean; + fShiftState: TShiftState; procedure setMatchOpts(value: TIdentifierMatchOptions); function getMouseFileBytePos: Integer; procedure changeNotify(Sender: TObject); @@ -223,6 +225,7 @@ type property ddocDelay: Integer read fDDocDelay write setDDocDelay; property autoDotDelay: Integer read fAutoDotDelay write setAutoDotDelay; property autoCloseCurlyBrace: TBraceAutoCloseStyle read fAutoCloseCurlyBrace write fAutoCloseCurlyBrace; + property ctrlDisableAutoClose: boolean read fCtrlDisableAutoClose write fCtrlDisableAutoClose; end; procedure SetDefaultCoeditKeystrokes(ed: TSynEdit); @@ -1389,6 +1392,7 @@ end; procedure TCESynMemo.KeyDown(var Key: Word; Shift: TShiftState); begin inherited; + //fShiftState := Shift; highlightCurrentIdentifier; if fCompletion.IsActive then fCompletion.CurrentString:= GetWordAtRowCol(LogicalCaretXY); @@ -1444,7 +1448,10 @@ begin else showCallTips(fCallTipStrings.Text); end; - '{': case fAutoCloseCurlyBrace of + '{': + //if (not fCtrlDisableAutoClose) or + // (fCtrlDisableAutoClose and (not (ssCtrl in fShiftState))) then + case fAutoCloseCurlyBrace of autoCloseAlways: curlyBraceCloseAndIndent(self); autoCloseAtEof: