Merge pull request #43328 from gvekan/better-keyword-completion

Add bracket or space to some keyword completions
This commit is contained in:
Rémi Verschelde 2020-12-03 17:14:32 +01:00 committed by GitHub
commit ea7dd1be36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1058,10 +1058,8 @@ static void _find_identifiers(GDScriptParser::CompletionContext &p_context, bool
}
static const char *_keywords[] = {
"and", "in", "not", "or", "false", "PI", "TAU", "INF", "NAN", "self", "true", "as", "assert",
"breakpoint", "class", "extends", "is", "func", "preload", "signal", "tool", "await",
"const", "enum", "static", "super", "var", "break", "continue", "if", "elif",
"else", "for", "pass", "return", "match", "while",
"false", "PI", "TAU", "INF", "NAN", "self", "true", "breakpoint", "tool", "super",
"break", "continue", "pass", "return",
0
};
@ -1072,6 +1070,33 @@ static void _find_identifiers(GDScriptParser::CompletionContext &p_context, bool
kw++;
}
static const char *_keywords_with_space[] = {
"and", "in", "not", "or", "as", "class", "extends", "is", "func", "signal", "await",
"const", "enum", "static", "var", "if", "elif", "else", "for", "match", "while",
0
};
const char **kws = _keywords_with_space;
while (*kws) {
ScriptCodeCompletionOption option(*kws, ScriptCodeCompletionOption::KIND_PLAIN_TEXT);
option.insert_text += " ";
r_result.insert(option.display, option);
kws++;
}
static const char *_keywords_with_args[] = {
"assert", "preload",
0
};
const char **kwa = _keywords_with_args;
while (*kwa) {
ScriptCodeCompletionOption option(*kwa, ScriptCodeCompletionOption::KIND_FUNCTION);
option.insert_text += "(";
r_result.insert(option.display, option);
kwa++;
}
Map<StringName, ProjectSettings::AutoloadInfo> autoloads = ProjectSettings::get_singleton()->get_autoload_list();
for (const Map<StringName, ProjectSettings::AutoloadInfo>::Element *E = autoloads.front(); E != nullptr; E = E->next()) {
if (!E->value().is_singleton) {