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

GDScript: Add autocompletion for @export_tool_button

This commit is contained in:
Danil Alexeev
2025-04-06 08:21:43 +03:00
parent a210fe6dbd
commit 4b9bcda113

View File

@@ -48,7 +48,9 @@
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
#include "core/config/project_settings.h" #include "core/config/project_settings.h"
#include "editor/editor_file_system.h" #include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_settings.h" #include "editor/editor_settings.h"
#include "editor/editor_string_names.h"
#endif #endif
void GDScriptLanguage::get_comment_delimiters(List<String> *p_delimiters) const { void GDScriptLanguage::get_comment_delimiters(List<String> *p_delimiters) const {
@@ -942,6 +944,19 @@ static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_a
option.insert_text = option.display.quote(p_quote_style); option.insert_text = option.display.quote(p_quote_style);
r_result.insert(option.display, option); r_result.insert(option.display, option);
} }
} else if (p_annotation->name == SNAME("@export_tool_button")) {
if (p_argument == 1) {
const Ref<Theme> theme = EditorNode::get_singleton()->get_editor_theme();
if (theme.is_valid()) {
List<StringName> 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")) { } else if (p_annotation->name == SNAME("@export_custom")) {
switch (p_argument) { switch (p_argument) {
case 0: { case 0: {