Skip to content

Commit

Permalink
Merge pull request #43328 from gvekan/better-keyword-completion
Browse files Browse the repository at this point in the history
Add bracket or space to some keyword completions
  • Loading branch information
akien-mga authored Dec 3, 2020
2 parents d7460bb + dff3875 commit ea7dd1b
Showing 1 changed file with 29 additions and 4 deletions.
33 changes: 29 additions & 4 deletions modules/gdscript/gdscript_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
};

Expand All @@ -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) {
Expand Down

0 comments on commit ea7dd1b

Please sign in to comment.