diff options
Diffstat (limited to 'src/scintilla.patch')
-rw-r--r-- | src/scintilla.patch | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/src/scintilla.patch b/src/scintilla.patch index 837923da..3b30a825 100644 --- a/src/scintilla.patch +++ b/src/scintilla.patch @@ -18,87 +18,3 @@ 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(); |