From 3a29a2086e9a762ff5024782c33b991cea734ccc Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Sun, 12 Apr 2020 15:03:47 +0200 Subject: [PATCH] Add option to support completion proposal with matching in middle of entered text. Closes #126 --- out/locale/en/LC_MESSAGES/default.po | 5 ++++- source/apphelpers.pas | 3 ++- source/main.pas | 5 +++++ source/options.dfm | 16 +++++++++++++--- source/options.pas | 10 ++++++++++ 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/out/locale/en/LC_MESSAGES/default.po b/out/locale/en/LC_MESSAGES/default.po index 4b60ba0f..58a1d35b 100644 --- a/out/locale/en/LC_MESSAGES/default.po +++ b/out/locale/en/LC_MESSAGES/default.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: HeidiSQL\n" "POT-Creation-Date: 2012-11-05 21:40\n" -"PO-Revision-Date: 2020-04-05 13:09+0200\n" +"PO-Revision-Date: 2020-04-12 15:03+0200\n" "Last-Translator: Ansgar Becker \n" "Language-Team: English (http://www.transifex.com/projects/p/heidisql/language/en/)\n" "MIME-Version: 1.0\n" @@ -6453,3 +6453,6 @@ msgstr "Note: The database file will not get deleted." msgid "Show SQL completion proposal" msgstr "Show SQL completion proposal" + +msgid "Find matches in middle of entered text" +msgstr "Find matches in middle of entered text" diff --git a/source/apphelpers.pas b/source/apphelpers.pas index 4ca84804..f00e7b67 100644 --- a/source/apphelpers.pas +++ b/source/apphelpers.pas @@ -177,7 +177,7 @@ type asConnectCount, asRefusedCount, asSessionCreated, asDoUsageStatistics, asLastUsageStatisticCall, asWheelZoom, asDisplayBars, asMySQLBinaries, asCustomSnippetsDirectory, asPromptSaveFileOnTabClose, asRestoreTabs, asWarnUnsafeUpdates, asQueryWarningsMessage, - asCompletionProposal, asCompletionProposalWidth, asCompletionProposalNbLinesInWindow, asAutoUppercase, + asCompletionProposal, asCompletionProposalSearchOnMid, asCompletionProposalWidth, asCompletionProposalNbLinesInWindow, asAutoUppercase, asTabsToSpaces, asFilterPanel, asAllowMultipleInstances, asFindDialogSearchHistory, asGUIFontName, asGUIFontSize, asTheme, asIconPack, asWebSearchBaseUrl, asFindDialogReplaceHistory, asMaxQueryResults, asLogErrors, @@ -3655,6 +3655,7 @@ begin InitSetting(asWarnUnsafeUpdates, 'WarnUnsafeUpdates', 0, True); InitSetting(asQueryWarningsMessage, 'QueryWarningsMessage', 0, True); InitSetting(asCompletionProposal, 'CompletionProposal', 0, True); + InitSetting(asCompletionProposalSearchOnMid, 'CompletionProposalSearchOnMid', 0, False); InitSetting(asCompletionProposalWidth, 'CompletionProposalWidth', 350); InitSetting(asCompletionProposalNbLinesInWindow,'CompletionProposalNbLinesInWindow', 12); InitSetting(asAutoUppercase, 'AutoUppercase', 0, True); diff --git a/source/main.pas b/source/main.pas index 15d74222..c53e7723 100644 --- a/source/main.pas +++ b/source/main.pas @@ -11782,6 +11782,11 @@ begin Attri.Background := AppSettings.ReadInt(asHighlighterBackground, Attri.Name, Attri.Background); Attri.IntegerStyle := AppSettings.ReadInt(asHighlighterStyle, Attri.Name, Attri.IntegerStyle); end; + // Completion proposal + if AppSettings.ReadBool(asCompletionProposalSearchOnMid) then + SynCompletionProposal.Options := SynCompletionProposal.Options + [scoLimitToMatchedTextAnywhere] + else + SynCompletionProposal.Options := SynCompletionProposal.Options - [scoLimitToMatchedTextAnywhere]; end; diff --git a/source/options.dfm b/source/options.dfm index c0338c35..b7e944ff 100644 --- a/source/options.dfm +++ b/source/options.dfm @@ -643,12 +643,11 @@ object optionsform: Toptionsform object chkCompletionProposal: TCheckBox Left = 180 Top = 87 - Width = 508 + Width = 158 Height = 17 - Anchors = [akLeft, akTop, akRight] Caption = 'Enable autocompletion' TabOrder = 8 - OnClick = Modified + OnClick = chkCompletionProposalClick end object chkTabsToSpaces: TCheckBox Left = 254 @@ -819,6 +818,17 @@ object optionsform: Toptionsform Items.Strings = ( 'Current custom settings') end + object chkCompletionProposalSearchOnMid: TCheckBox + Left = 331 + Top = 87 + Width = 357 + Height = 17 + Anchors = [akLeft, akTop, akRight] + Caption = 'Find matches in middle of entered text' + Enabled = False + TabOrder = 18 + OnClick = Modified + end end object tabGridFormatting: TTabSheet Caption = 'Grid formatting' diff --git a/source/options.pas b/source/options.pas index 2baf6502..d5fc92cb 100644 --- a/source/options.pas +++ b/source/options.pas @@ -169,6 +169,7 @@ type lblWebSearchBaseUrl: TLabel; comboWebSearchBaseUrl: TComboBox; chkThemePreview: TCheckBox; + chkCompletionProposalSearchOnMid: TCheckBox; procedure FormShow(Sender: TObject); procedure Modified(Sender: TObject); procedure Apply(Sender: TObject); @@ -213,6 +214,7 @@ type procedure comboThemeSelect(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure chkThemePreviewClick(Sender: TObject); + procedure chkCompletionProposalClick(Sender: TObject); private { Private declarations } FWasModified: Boolean; @@ -374,6 +376,7 @@ begin end; AppSettings.WriteBool(asCompletionProposal, chkCompletionProposal.Checked); + AppSettings.WriteBool(asCompletionProposalSearchOnMid, chkCompletionProposalSearchOnMid.Checked); AppSettings.WriteBool(asAutoUppercase, chkAutoUppercase.Checked); AppSettings.WriteBool(asTabsToSpaces, chkTabsToSpaces.Checked); @@ -681,6 +684,7 @@ begin updownSQLFontSize.Position := SynMemoSQLSample.Font.Size; updownSQLTabWidth.Position := SynMemoSQLSample.TabWidth; chkCompletionProposal.Checked := AppSettings.ReadBool(asCompletionProposal); + chkCompletionProposalSearchOnMid.Checked := AppSettings.ReadBool(asCompletionProposalSearchOnMid); chkAutoUppercase.Checked := AppSettings.ReadBool(asAutoUppercase); chkTabsToSpaces.Checked := AppSettings.ReadBool(asTabsToSpaces); comboSQLColElementChange(Sender); @@ -845,6 +849,12 @@ begin end; +procedure Toptionsform.chkCompletionProposalClick(Sender: TObject); +begin + chkCompletionProposalSearchOnMid.Enabled := TCheckBox(Sender).Checked; + Modified(Sender); +end; + procedure Toptionsform.chkLogToFileClick(Sender: TObject); begin editLogDir.Enabled := TCheckBox(Sender).Checked;