[apps/code] Reload the variable box less often

This commit is contained in:
Léa Saviot
2020-03-26 15:54:52 +01:00
committed by Émilie Feral
parent e32a5ccc17
commit bc4d96bc3f
4 changed files with 10 additions and 3 deletions

View File

@@ -124,9 +124,10 @@ bool EditorController::textAreaDidReceiveEvent(TextArea * textArea, Ion::Events:
VariableBoxController * EditorController::variableBoxForInputEventHandler(InputEventHandler * textInput) {
VariableBoxController * varBox = App::app()->variableBoxController();
int length = 0;
const char * text = m_editorView.textToAutocomplete(&length);
varBox->loadFunctionsAndVariables(m_scriptIndex, text, length);
// If the editor is autocompleting, the variable box has already been loaded
if (!m_editorView.isAutocompleting()) {
varBox->loadFunctionsAndVariables(m_scriptIndex, nullptr, 0);
}
return varBox;
}

View File

@@ -20,6 +20,10 @@ const char * EditorView::textToAutocomplete(int * length) const {
return m_textArea.textToAutocomplete(length);
}
bool EditorView::isAutocompleting() const {
return m_textArea.isAutocompleting();
}
void EditorView::resetSelection() {
m_textArea.resetSelection();
}

View File

@@ -10,6 +10,7 @@ class EditorView : public Responder, public View, public ScrollViewDelegate {
public:
EditorView(Responder * parentResponder, App * pythonDelegate);
bool isAutocompleting() const;
/* Returns the beginning of the text to autocomplete, and loads its length in
* the method parameter length */
const char * textToAutocomplete(int * length) const;

View File

@@ -19,6 +19,7 @@ public:
bool handleEvent(Ion::Events::Event event) override;
bool handleEventWithText(const char * text, bool indentation = false, bool forceCursorRightOfText = false) override;
const char * textToAutocomplete(int * length = nullptr) const;
bool isAutocompleting() const { return m_contentView.isAutocompleting(); }
protected:
class ContentView : public TextArea::ContentView {
public: