aboutsummaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
Diffstat (limited to 'editor')
-rw-r--r--editor/code_editor.cpp6
-rw-r--r--editor/code_editor.h2
-rw-r--r--editor/plugins/script_text_editor.cpp8
-rw-r--r--editor/plugins/script_text_editor.h4
4 files changed, 11 insertions, 9 deletions
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index 4575bfcb0..d49b240c8 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -1036,8 +1036,9 @@ void CodeTextEditor::_complete_request() {
List<String> entries;
String ctext = text_editor->get_text_for_completion();
_code_complete_script(ctext, &entries);
+ bool forced = false;
if (code_complete_func) {
- code_complete_func(code_complete_ud, ctext, &entries);
+ code_complete_func(code_complete_ud, ctext, &entries, forced);
}
// print_line("COMPLETE: "+p_request);
if (entries.size() == 0)
@@ -1050,7 +1051,7 @@ void CodeTextEditor::_complete_request() {
strs[i++] = E->get();
}
- text_editor->code_complete(strs);
+ text_editor->code_complete(strs, forced);
}
void CodeTextEditor::_font_resize_timeout() {
@@ -1267,6 +1268,7 @@ CodeTextEditor::CodeTextEditor() {
cs.push_back(".");
cs.push_back(",");
cs.push_back("(");
+ cs.push_back("=");
cs.push_back("$");
text_editor->set_completion(true, cs);
idle->connect("timeout", this, "_text_changed_idle_timeout");
diff --git a/editor/code_editor.h b/editor/code_editor.h
index 8d48c5650..e56d7f7fa 100644
--- a/editor/code_editor.h
+++ b/editor/code_editor.h
@@ -186,7 +186,7 @@ public:
FindReplaceDialog();
};
-typedef void (*CodeTextEditorCodeCompleteFunc)(void *p_ud, const String &p_code, List<String> *r_options);
+typedef void (*CodeTextEditorCodeCompleteFunc)(void *p_ud, const String &p_code, List<String> *r_options, bool &r_forced);
class CodeTextEditor : public VBoxContainer {
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index e69fa6da8..e86ff8cac 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -602,13 +602,13 @@ void ScriptEditor::_update_modified_scripts_for_external_editor(Ref<Script> p_fo
}
}
-void ScriptTextEditor::_code_complete_scripts(void *p_ud, const String &p_code, List<String> *r_options) {
+void ScriptTextEditor::_code_complete_scripts(void *p_ud, const String &p_code, List<String> *r_options, bool &r_force) {
ScriptTextEditor *ste = (ScriptTextEditor *)p_ud;
- ste->_code_complete_script(p_code, r_options);
+ ste->_code_complete_script(p_code, r_options, r_force);
}
-void ScriptTextEditor::_code_complete_script(const String &p_code, List<String> *r_options) {
+void ScriptTextEditor::_code_complete_script(const String &p_code, List<String> *r_options, bool &r_force) {
if (color_panel->is_visible_in_tree()) return;
Node *base = get_tree()->get_edited_scene_root();
@@ -616,7 +616,7 @@ void ScriptTextEditor::_code_complete_script(const String &p_code, List<String>
base = _find_node_for_script(base, base, script);
}
String hint;
- Error err = script->get_language()->complete_code(p_code, script->get_path().get_base_dir(), base, r_options, hint);
+ Error err = script->get_language()->complete_code(p_code, script->get_path().get_base_dir(), base, r_options, r_force, hint);
if (hint != "") {
code_editor->get_text_edit()->set_code_hint(hint);
}
diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h
index c50597622..561fa26c7 100644
--- a/editor/plugins/script_text_editor.h
+++ b/editor/plugins/script_text_editor.h
@@ -94,12 +94,12 @@ class ScriptTextEditor : public ScriptEditorBase {
};
protected:
- static void _code_complete_scripts(void *p_ud, const String &p_code, List<String> *r_options);
+ static void _code_complete_scripts(void *p_ud, const String &p_code, List<String> *r_options, bool &r_force);
void _breakpoint_toggled(int p_row);
//no longer virtual
void _validate_script();
- void _code_complete_script(const String &p_code, List<String> *r_options);
+ void _code_complete_script(const String &p_code, List<String> *r_options, bool &r_force);
void _load_theme_settings();
void _notification(int p_what);