1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-13 13:31:48 +00:00

Merge pull request #68140 from quinnyo/auto-complete-option

Add editor setting to toggle automatic code completion
This commit is contained in:
Yuri Sizov
2023-07-12 17:15:51 +02:00
4 changed files with 9 additions and 2 deletions

View File

@@ -837,6 +837,9 @@
<member name="text_editor/completion/code_complete_delay" type="float" setter="" getter=""> <member name="text_editor/completion/code_complete_delay" type="float" setter="" getter="">
The delay in seconds after which autocompletion suggestions should be displayed when the user stops typing. The delay in seconds after which autocompletion suggestions should be displayed when the user stops typing.
</member> </member>
<member name="text_editor/completion/code_complete_enabled" type="bool" setter="" getter="">
If [code]true[/code], code completion will be triggered automatically after [member text_editor/completion/code_complete_delay]. If [code]false[/code], you can still trigger completion manually by pressing [kbd]Ctrl + Space[/kbd] ([kbd]Cmd + Space[/kbd] on macOS).
</member>
<member name="text_editor/completion/complete_file_paths" type="bool" setter="" getter=""> <member name="text_editor/completion/complete_file_paths" type="bool" setter="" getter="">
If [code]true[/code], provides autocompletion suggestions for file paths in methods such as [code]load()[/code] and [code]preload()[/code]. If [code]true[/code], provides autocompletion suggestions for file paths in methods such as [code]load()[/code] and [code]preload()[/code].
</member> </member>

View File

@@ -905,7 +905,7 @@ void CodeTextEditor::_line_col_changed() {
} }
void CodeTextEditor::_text_changed() { void CodeTextEditor::_text_changed() {
if (text_editor->is_insert_text_operation()) { if (code_complete_enabled && text_editor->is_insert_text_operation()) {
code_complete_timer_line = text_editor->get_caret_line(); code_complete_timer_line = text_editor->get_caret_line();
code_complete_timer->start(); code_complete_timer->start();
} }
@@ -1737,6 +1737,7 @@ void CodeTextEditor::_apply_settings_change() {
text_editor->set_code_hint_draw_below(EDITOR_GET("text_editor/completion/put_callhint_tooltip_below_current_line")); text_editor->set_code_hint_draw_below(EDITOR_GET("text_editor/completion/put_callhint_tooltip_below_current_line"));
code_complete_enabled = EDITOR_GET("text_editor/completion/code_complete_enabled");
code_complete_timer->set_wait_time(EDITOR_GET("text_editor/completion/code_complete_delay")); code_complete_timer->set_wait_time(EDITOR_GET("text_editor/completion/code_complete_delay"));
idle->set_wait_time(EDITOR_GET("text_editor/completion/idle_parse_delay")); idle->set_wait_time(EDITOR_GET("text_editor/completion/idle_parse_delay"));
} }
@@ -2011,6 +2012,7 @@ CodeTextEditor::CodeTextEditor() {
idle->set_one_shot(true); idle->set_one_shot(true);
idle->set_wait_time(EDITOR_GET("text_editor/completion/idle_parse_delay")); idle->set_wait_time(EDITOR_GET("text_editor/completion/idle_parse_delay"));
code_complete_enabled = EDITOR_GET("text_editor/completion/code_complete_enabled");
code_complete_timer = memnew(Timer); code_complete_timer = memnew(Timer);
add_child(code_complete_timer); add_child(code_complete_timer);
code_complete_timer->set_one_shot(true); code_complete_timer->set_one_shot(true);

View File

@@ -157,6 +157,7 @@ class CodeTextEditor : public VBoxContainer {
Label *info = nullptr; Label *info = nullptr;
Timer *idle = nullptr; Timer *idle = nullptr;
bool code_complete_enabled = true;
Timer *code_complete_timer = nullptr; Timer *code_complete_timer = nullptr;
int code_complete_timer_line = 0; int code_complete_timer_line = 0;

View File

@@ -597,7 +597,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
// Completion // Completion
EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "text_editor/completion/idle_parse_delay", 2.0, "0.1,10,0.01") EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "text_editor/completion/idle_parse_delay", 2.0, "0.1,10,0.01")
_initial_set("text_editor/completion/auto_brace_complete", true); _initial_set("text_editor/completion/auto_brace_complete", true);
EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "text_editor/completion/code_complete_delay", 0.3, "0.01,5,0.01") _initial_set("text_editor/completion/code_complete_enabled", true);
EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "text_editor/completion/code_complete_delay", 0.3, "0.01,5,0.01,or_greater")
_initial_set("text_editor/completion/put_callhint_tooltip_below_current_line", true); _initial_set("text_editor/completion/put_callhint_tooltip_below_current_line", true);
_initial_set("text_editor/completion/complete_file_paths", true); _initial_set("text_editor/completion/complete_file_paths", true);
_initial_set("text_editor/completion/add_type_hints", false); _initial_set("text_editor/completion/add_type_hints", false);