From b4406281a72c25aa2194bf05cb9d4efceb18785d Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Sun, 25 May 2014 17:45:28 -0400 Subject: Updated to Scintilla 3.4.2. Also temporarily include my upstream patch for autocompletion into multiple selections. When 3.4.3 comes out, the patch may be removed. This commit negates the requirement for Scintilla post 3.4.2, mentioned in 1736:12256c79f24b. --- src/Makefile | 2 +- src/scintilla.patch | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Makefile b/src/Makefile index 3c1e522e..4d1537ce 100644 --- a/src/Makefile +++ b/src/Makefile @@ -437,7 +437,7 @@ osx-app: ../textadept ../textadeptjit ../textadept-curses \ # External dependencies. -scintilla_tgz = scintilla341.tgz +scintilla_tgz = scintilla342.tgz scinterm_zip = scinterm.zip scintillua_zip = scintillua.zip lua_tgz = lua-5.2.3.tar.gz diff --git a/src/scintilla.patch b/src/scintilla.patch index 3b30a825..837923da 100644 --- a/src/scintilla.patch +++ b/src/scintilla.patch @@ -18,3 +18,87 @@ diff -r 5693714a8b0b src/Catalogue.cxx return 1; } +diff -r a4286bbf7081 include/Scintilla.h +--- a/include/Scintilla.h Thu May 22 09:18:18 2014 +1000 ++++ b/include/Scintilla.h Sun May 25 17:30:19 2014 -0400 +@@ -717,6 +717,10 @@ + #define SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE 1 + #define SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR 2634 + #define SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR 2635 ++#define SC_MULTIAUTOC_ONCE 0 ++#define SC_MULTIAUTOC_EACH 1 ++#define SCI_AUTOCSETMULTI 2636 ++#define SCI_AUTOCGETMULTI 2637 + #define SC_ORDER_PRESORTED 0 + #define SC_ORDER_PERFORMSORT 1 + #define SC_ORDER_CUSTOM 2 +diff -r a4286bbf7081 src/ScintillaBase.cxx +--- a/src/ScintillaBase.cxx Thu May 22 09:18:18 2014 +1000 ++++ b/src/ScintillaBase.cxx Sun May 25 17:30:19 2014 -0400 +@@ -57,6 +57,7 @@ + displayPopupMenu = true; + listType = 0; + maxListWidth = 0; ++ multiAutoCMode = SC_MULTIAUTOC_ONCE; + } + + ScintillaBase::~ScintillaBase() { +@@ -197,9 +198,30 @@ + + void ScintillaBase::AutoCompleteInsert(Position startPos, int removeLen, const char *text, int textLen) { + UndoGroup ug(pdoc); +- pdoc->DeleteChars(startPos, removeLen); +- const int lengthInserted = pdoc->InsertString(startPos, text, textLen); +- SetEmptySelection(startPos + lengthInserted); ++ if (multiAutoCMode == SC_MULTIAUTOC_ONCE) { ++ pdoc->DeleteChars(startPos, removeLen); ++ const int lengthInserted = pdoc->InsertString(startPos, text, textLen); ++ SetEmptySelection(startPos + lengthInserted); ++ } else { ++ // SC_MULTIAUTOC_EACH ++ for (size_t r=0; r= 0) { ++ positionInsert -= removeLen; ++ pdoc->DeleteChars(positionInsert, removeLen); ++ } ++ const int lengthInserted = pdoc->InsertString(positionInsert, text, textLen); ++ if (lengthInserted > 0) { ++ sel.Range(r).caret.SetPosition(positionInsert + lengthInserted); ++ sel.Range(r).anchor.SetPosition(positionInsert + lengthInserted); ++ } ++ sel.Range(r).ClearVirtualSpace(); ++ } ++ } ++ } + } + + void ScintillaBase::AutoCompleteStart(int lenEntered, const char *list) { +@@ -819,6 +841,13 @@ + case SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR: + return ac.ignoreCaseBehaviour; + ++ case SCI_AUTOCSETMULTI: ++ multiAutoCMode = static_cast(wParam); ++ break; ++ ++ case SCI_AUTOCGETMULTI: ++ return multiAutoCMode; ++ + case SCI_AUTOCSETORDER: + ac.autoSort = static_cast(wParam); + break; +diff -r a4286bbf7081 src/ScintillaBase.h +--- a/src/ScintillaBase.h Thu May 22 09:18:18 2014 +1000 ++++ b/src/ScintillaBase.h Sun May 25 17:30:19 2014 -0400 +@@ -46,6 +46,7 @@ + + int listType; ///< 0 is an autocomplete list + int maxListWidth; /// Maximum width of list, in average character widths ++ int multiAutoCMode; /// Mode for autocompleting when multiple selections are present + + #ifdef SCI_LEXER + LexState *DocumentLexState(); -- cgit v1.2.3