mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 08:47:28 +01:00
[apps/code] Handle acception/dismissal of autocompletion
This commit is contained in:
@@ -196,6 +196,27 @@ KDRect PythonTextArea::ContentView::dirtyRectFromPosition(const char * position,
|
||||
);
|
||||
}
|
||||
|
||||
bool PythonTextArea::handleEvent(Ion::Events::Event event) {
|
||||
if (m_contentView.isAutocompleting()) {
|
||||
// Handle event with autocompletion
|
||||
if (event == Ion::Events::Toolbox || event == Ion::Events::Var) {
|
||||
} else if (event == Ion::Events::Right
|
||||
|| event == Ion::Events::ShiftRight
|
||||
|| event == Ion::Events::OK)
|
||||
{
|
||||
acceptAutocompletion(event != Ion::Events::ShiftRight);
|
||||
if (event != Ion::Events::ShiftRight) {
|
||||
// Do not process the event more
|
||||
scrollToCursor();
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
removeAutocompletion();
|
||||
}
|
||||
}
|
||||
return TextArea::handleEvent(event);
|
||||
}
|
||||
|
||||
bool PythonTextArea::handleEventWithText(const char * text, bool indentation, bool forceCursorRightOfText) {
|
||||
if (*text == 0) {
|
||||
return false;
|
||||
@@ -230,4 +251,14 @@ void PythonTextArea::addAutocompletion() {
|
||||
}
|
||||
}
|
||||
|
||||
void PythonTextArea::acceptAutocompletion(bool moveCursorToEndOfAutocompletion) {
|
||||
assert(m_contentView.isAutocompleting());
|
||||
m_contentView.setAutocompleting(false);
|
||||
if (moveCursorToEndOfAutocompletion) {
|
||||
const char * autocompleteEnd = UTF8Helper::EndOfWord(m_contentView.cursorLocation());
|
||||
setCursorLocation(autocompleteEnd);
|
||||
addAutocompletion();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user