Ported "Fix Script editor completion doesn't suggest members of a script for type hints"

ray90514 - 7afbd5904e
For CScript.
This commit is contained in:
Relintai 2022-12-22 16:45:10 +01:00
parent 4baf6dd61d
commit 711d08be2b
2 changed files with 12 additions and 1 deletions

View File

@ -2909,8 +2909,18 @@ Error CScriptLanguage::complete_code(const String &p_code, const String &p_path,
base_type.has_type = false;
}
} break;
case CScriptParser::DataType::SCRIPT:
case CScriptParser::DataType::CSCRIPT: {
Ref<CScript> scr = base_type.script_type;
if (scr.is_valid()) {
for (const Map<StringName, Ref<CScript>>::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 CScriptParser::DataType::SCRIPT: {
Ref<Script> scr = base_type.script_type;
if (scr.is_valid()) {
Map<StringName, Variant> constants;

View File

@ -5557,6 +5557,7 @@ bool CScriptParser::_parse_type(DataType &r_type, bool p_can_be_void) {
can_index = false;
tokenizer->advance();
} break;
case CScriptTokenizer::TK_CURSOR:
case CScriptTokenizer::TK_IDENTIFIER: {
if (can_index) {
_set_error("Unexpected identifier.");