diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ScintillaBase.cxx | 20 | ||||
-rw-r--r-- | src/ScintillaBase.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 3aba5fb7b..8b6e7a4cb 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -392,6 +392,23 @@ int ScintillaBase::AutoCompleteGetCurrent() { return ac.lb->GetSelection(); } +int ScintillaBase::AutoCompleteGetCurrentText(char *buffer) { + if (ac.Active()) { + int item = ac.lb->GetSelection(); + char selected[1000]; + selected[0] = '\0'; + if (item != -1) { + ac.lb->GetValue(item, selected, sizeof(selected)); + if (buffer != NULL) + strcpy(buffer, selected); + return strlen(selected); + } + } + if (buffer != NULL) + *buffer = '\0'; + return 0; +} + void ScintillaBase::CallTipShow(Point pt, const char *defn) { ac.Cancel(); pt.y += vs.lineHeight; @@ -564,6 +581,9 @@ sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPara case SCI_AUTOCGETCURRENT: return AutoCompleteGetCurrent(); + case SCI_AUTOCGETCURRENTTEXT: + return AutoCompleteGetCurrentText(reinterpret_cast<char *>(lParam)); + case SCI_AUTOCSETCANCELATSTART: ac.cancelAtStartPos = wParam != 0; break; diff --git a/src/ScintillaBase.h b/src/ScintillaBase.h index 15b514c2b..73fcd72b5 100644 --- a/src/ScintillaBase.h +++ b/src/ScintillaBase.h @@ -72,6 +72,7 @@ protected: void AutoCompleteCancel(); void AutoCompleteMove(int delta); int AutoCompleteGetCurrent(); + int AutoCompleteGetCurrentText(char *buffer); void AutoCompleteCharacterAdded(char ch); void AutoCompleteCharacterDeleted(); void AutoCompleteCompleted(); |