aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar mitchell <70453897+667e-11@users.noreply.github.com>2014-05-25 17:45:28 -0400
committerGravatar mitchell <70453897+667e-11@users.noreply.github.com>2014-05-25 17:45:28 -0400
commitb4406281a72c25aa2194bf05cb9d4efceb18785d (patch)
tree3039e931bf40aaf7e600970dab5e59f76e43fdc0 /src
parentad5baf2b789697f814740717f048bc966b0318fe (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile2
-rw-r--r--src/scintilla.patch84
2 files changed, 85 insertions, 1 deletions
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<sel.Count(); r++) {
++ if (!RangeContainsProtected(sel.Range(r).Start().Position(),
++ sel.Range(r).End().Position())) {
++ int positionInsert = sel.Range(r).Start().Position();
++ positionInsert = InsertSpace(positionInsert, sel.Range(r).caret.VirtualSpace());
++ if (positionInsert - removeLen >= 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<int>(wParam);
++ break;
++
++ case SCI_AUTOCGETMULTI:
++ return multiAutoCMode;
++
+ case SCI_AUTOCSETORDER:
+ ac.autoSort = static_cast<int>(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();