Fix Script editor completion doesn't suggest members of a script for type hints
(cherry picked from commit 7afbd5904e
)
This commit is contained in:
parent
eb100cbddb
commit
f1231a7c7e
2 changed files with 11 additions and 1 deletions
|
@ -2983,8 +2983,17 @@ Error GDScriptLanguage::complete_code(const String &p_code, const String &p_path
|
||||||
base_type.has_type = false;
|
base_type.has_type = false;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case GDScriptParser::DataType::SCRIPT:
|
|
||||||
case GDScriptParser::DataType::GDSCRIPT: {
|
case GDScriptParser::DataType::GDSCRIPT: {
|
||||||
|
Ref<GDScript> scr = base_type.script_type;
|
||||||
|
if (scr.is_valid()) {
|
||||||
|
for (const Map<StringName, Ref<GDScript>>::Element *E = scr->get_subclasses().front(); E; E = E->next()) {
|
||||||
|
ScriptCodeCompletionOption option(E->key().operator String(), ScriptCodeCompletionOption::KIND_CLASS);
|
||||||
|
options.insert(option.display, option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FALLTHROUGH;
|
||||||
|
}
|
||||||
|
case GDScriptParser::DataType::SCRIPT: {
|
||||||
Ref<Script> scr = base_type.script_type;
|
Ref<Script> scr = base_type.script_type;
|
||||||
if (scr.is_valid()) {
|
if (scr.is_valid()) {
|
||||||
Map<StringName, Variant> constants;
|
Map<StringName, Variant> constants;
|
||||||
|
|
|
@ -5746,6 +5746,7 @@ bool GDScriptParser::_parse_type(DataType &r_type, bool p_can_be_void) {
|
||||||
can_index = false;
|
can_index = false;
|
||||||
tokenizer->advance();
|
tokenizer->advance();
|
||||||
} break;
|
} break;
|
||||||
|
case GDScriptTokenizer::TK_CURSOR:
|
||||||
case GDScriptTokenizer::TK_IDENTIFIER: {
|
case GDScriptTokenizer::TK_IDENTIFIER: {
|
||||||
if (can_index) {
|
if (can_index) {
|
||||||
_set_error("Unexpected identifier.");
|
_set_error("Unexpected identifier.");
|
||||||
|
|
Loading…
Reference in a new issue