diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-07-05 08:00:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-05 08:00:40 +0200 |
commit | 259a3fb1e99ecd5a4c79d4083e6db19496b8556d (patch) | |
tree | aefd9364d1a11db7c3c0f874aed004c5f3ed301e /editor/code_editor.cpp | |
parent | ed96e4a20fbcb63f03fb19e4b92636dcc12d17cb (diff) | |
parent | 10cfd87414f1e39a31c2ac13ead61cbca9353afd (diff) |
Merge pull request #29744 from GodotExplorer/gdscript-completion-icons
Show icons for code completion options
Diffstat (limited to 'editor/code_editor.cpp')
-rw-r--r-- | editor/code_editor.cpp | 51 |
1 files changed, 45 insertions, 6 deletions
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index d5aae7b562..00d026baa4 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -734,15 +734,54 @@ void CodeTextEditor::_complete_request() { if (entries.size() == 0) return; - Vector<String> options; - options.resize(entries.size()); - size_t i = 0; for (List<ScriptCodeCompletionOption>::Element *E = entries.front(); E; E = E->next()) { - options.write[i] = E->get().insert_text; - i++; + E->get().icon = _get_completion_icon(E->get()); } + text_editor->code_complete(entries, forced); +} - text_editor->code_complete(options, forced); +Ref<Texture> CodeTextEditor::_get_completion_icon(const ScriptCodeCompletionOption &p_option) { + Ref<Texture> tex; + switch (p_option.kind) { + case ScriptCodeCompletionOption::KIND_CLASS: { + if (has_icon(p_option.display, "EditorIcons")) { + tex = get_icon(p_option.display, "EditorIcons"); + } else { + tex = get_icon("Object", "EditorIcons"); + } + } break; + case ScriptCodeCompletionOption::KIND_ENUM: + tex = get_icon("Enum", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_FILE_PATH: + tex = get_icon("File", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_NODE_PATH: + tex = get_icon("NodePath", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_VARIABLE: + tex = get_icon("Variant", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_CONSTANT: + tex = get_icon("MemberConstant", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_MEMBER: + tex = get_icon("MemberProperty", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_SIGNAL: + tex = get_icon("MemberSignal", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_FUNCTION: + tex = get_icon("MemberMethod", "EditorIcons"); + break; + case ScriptCodeCompletionOption::KIND_PLAIN_TEXT: + tex = get_icon("CubeMesh", "EditorIcons"); + break; + default: + tex = get_icon("String", "EditorIcons"); + break; + } + return tex; } void CodeTextEditor::_font_resize_timeout() { |