diff options
Diffstat (limited to 'tools/editor/code_editor.cpp')
-rw-r--r-- | tools/editor/code_editor.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/editor/code_editor.cpp b/tools/editor/code_editor.cpp index a780c0173e..994e3e1e68 100644 --- a/tools/editor/code_editor.cpp +++ b/tools/editor/code_editor.cpp @@ -479,10 +479,15 @@ void CodeTextEditor::_line_col_changed() { void CodeTextEditor::_text_changed() { - + code_complete_timer->start(); idle->start(); } +void CodeTextEditor::_code_complete_timer_timeout() { + + text_editor->query_code_comple(); +} + void CodeTextEditor::_complete_request(const String& p_request, int p_line) { List<String> entries; @@ -551,6 +556,7 @@ void CodeTextEditor::_bind_methods() { ObjectTypeDB::bind_method("_text_changed",&CodeTextEditor::_text_changed); ObjectTypeDB::bind_method("_on_settings_change",&CodeTextEditor::_on_settings_change); ObjectTypeDB::bind_method("_text_changed_idle_timeout",&CodeTextEditor::_text_changed_idle_timeout); + ObjectTypeDB::bind_method("_code_complete_timer_timeout",&CodeTextEditor::_code_complete_timer_timeout); ObjectTypeDB::bind_method("_complete_request",&CodeTextEditor::_complete_request); } @@ -575,6 +581,11 @@ CodeTextEditor::CodeTextEditor() { idle->set_one_shot(true); idle->set_wait_time(EDITOR_DEF("text_editor/idle_parse_delay",2)); + code_complete_timer = memnew(Timer); + add_child(code_complete_timer); + code_complete_timer->set_one_shot(true); + code_complete_timer->set_wait_time(EDITOR_DEF("text_editor/code_complete_delay",.3f)); + error = memnew( Label ); add_child(error); error->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN,5); @@ -593,6 +604,7 @@ CodeTextEditor::CodeTextEditor() { cs.push_back("."); text_editor->set_completion(true,cs); idle->connect("timeout", this,"_text_changed_idle_timeout"); + code_complete_timer->connect("timeout", this,"_code_complete_timer_timeout"); EditorSettings::get_singleton()->connect("settings_changed",this,"_on_settings_change"); } |