diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 836293494fe..fe4530572b8 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -48,7 +48,9 @@ #ifdef TOOLS_ENABLED #include "core/config/project_settings.h" #include "editor/editor_file_system.h" +#include "editor/editor_node.h" #include "editor/editor_settings.h" +#include "editor/editor_string_names.h" #endif Vector GDScriptLanguage::get_comment_delimiters() const { @@ -945,6 +947,19 @@ static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_a option.insert_text = option.display.quote(p_quote_style); r_result.insert(option.display, option); } + } else if (p_annotation->name == SNAME("@export_tool_button")) { + if (p_argument == 1) { + const Ref theme = EditorNode::get_singleton()->get_editor_theme(); + if (theme.is_valid()) { + List icon_list; + theme->get_icon_list(EditorStringName(EditorIcons), &icon_list); + for (const StringName &E : icon_list) { + ScriptLanguage::CodeCompletionOption option(E, ScriptLanguage::CODE_COMPLETION_KIND_CLASS); + option.insert_text = option.display.quote(p_quote_style); + r_result.insert(option.display, option); + } + } + } } else if (p_annotation->name == SNAME("@export_custom")) { switch (p_argument) { case 0: {