From f428358c69d0359c62e2a3bcda518971e614d54e Mon Sep 17 00:00:00 2001 From: mu3657 <527063370@qq.com> Date: Mon, 3 Nov 2025 19:10:17 +0800 Subject: [PATCH] Fix: Add Variant to type autocompletion and filter out Nil option in autocompletion --- modules/gdscript/gdscript_editor.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 38f710ae1a8..9de8226d468 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -1027,15 +1027,13 @@ static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_a } } -static void _find_built_in_variants(HashMap &r_result, bool exclude_nil = false) { +static void _find_built_in_variants(HashMap &r_result) { for (int i = 0; i < Variant::VARIANT_MAX; i++) { - if (!exclude_nil && Variant::Type(i) == Variant::Type::NIL) { - ScriptLanguage::CodeCompletionOption option("null", ScriptLanguage::CODE_COMPLETION_KIND_CLASS); - r_result.insert(option.display, option); - } else { - ScriptLanguage::CodeCompletionOption option(Variant::get_type_name(Variant::Type(i)), ScriptLanguage::CODE_COMPLETION_KIND_CLASS); - r_result.insert(option.display, option); + if (Variant::Type(i) == Variant::Type::NIL) { + continue; } + ScriptLanguage::CodeCompletionOption option(Variant::get_type_name(Variant::Type(i)), ScriptLanguage::CODE_COMPLETION_KIND_CLASS); + r_result.insert(option.display, option); } } @@ -1050,7 +1048,13 @@ static void _find_global_enums(HashMap &r_result) { // Built-in Variant Types - _find_built_in_variants(r_result, true); + _find_built_in_variants(r_result); + + // Variant meta-type + if (!p_inherit_only) { + ScriptLanguage::CodeCompletionOption variant_option("Variant", ScriptLanguage::CODE_COMPLETION_KIND_CLASS); + r_result.insert(variant_option.display, variant_option); + } LocalVector native_types; ClassDB::get_class_list(native_types);