|
@@ -1210,6 +1210,8 @@ static void _find_identifiers_in_base(const GDScriptCompletionIdentifier &p_base
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ int location = ScriptLanguage::LOCATION_OTHER;
|
|
|
+
|
|
|
if (!p_only_functions) {
|
|
|
List<PropertyInfo> members;
|
|
|
if (p_base.value.get_type() != Variant::NIL) {
|
|
@@ -1223,7 +1225,11 @@ static void _find_identifiers_in_base(const GDScriptCompletionIdentifier &p_base
|
|
|
continue;
|
|
|
}
|
|
|
if (!String(E.name).contains("/")) {
|
|
|
- ScriptLanguage::CodeCompletionOption option(E.name, ScriptLanguage::CODE_COMPLETION_KIND_MEMBER);
|
|
|
+ ScriptLanguage::CodeCompletionOption option(E.name, ScriptLanguage::CODE_COMPLETION_KIND_MEMBER, location);
|
|
|
+ if (base_type.kind == GDScriptParser::DataType::ENUM) {
|
|
|
+ // Sort enum members in their declaration order.
|
|
|
+ location += 1;
|
|
|
+ }
|
|
|
if (GDScriptParser::theme_color_names.has(E.name)) {
|
|
|
option.theme_color_name = GDScriptParser::theme_color_names[E.name];
|
|
|
}
|
|
@@ -1239,7 +1245,7 @@ static void _find_identifiers_in_base(const GDScriptCompletionIdentifier &p_base
|
|
|
// Enum types are static and cannot change, therefore we skip non-const dictionary methods.
|
|
|
continue;
|
|
|
}
|
|
|
- ScriptLanguage::CodeCompletionOption option(E.name, ScriptLanguage::CODE_COMPLETION_KIND_FUNCTION);
|
|
|
+ ScriptLanguage::CodeCompletionOption option(E.name, ScriptLanguage::CODE_COMPLETION_KIND_FUNCTION, location);
|
|
|
if (E.arguments.size()) {
|
|
|
option.insert_text += "(";
|
|
|
} else {
|