Improve sorting of enum autocompletion
This commit is contained in:
parent
13a0d6e9b2
commit
76fd7ec394
1 changed files with 8 additions and 2 deletions
|
@ -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 {
|
||||
|
|
Loading…
Add table
Reference in a new issue