Skip to content

Commit

Permalink
Merge pull request #82326 from adeneve/gdscript_dict_highlighter_fix
Browse files Browse the repository at this point in the history
Fix for GDScriptHighlighter dictionaries as function arguments
  • Loading branch information
akien-mga committed Oct 5, 2023
2 parents 68926d5 + 978fcaf commit 1edf0f3
Showing 1 changed file with 25 additions and 11 deletions.
36 changes: 25 additions & 11 deletions modules/gdscript/editor/gdscript_highlighter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,13 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l
bool in_lambda = false;

bool in_function_name = false;
bool in_function_args = false;
bool in_variable_declaration = false;
bool in_signal_declaration = false;
bool expect_type = false;

int in_function_args = 0;
int in_function_arg_dicts = 0;

Color keyword_color;
Color color;

Expand Down Expand Up @@ -472,12 +474,24 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l
}

if (is_a_symbol) {
if (in_function_name) {
in_function_args = true;
}

if (in_function_args && str[j] == ')') {
in_function_args = false;
if (in_function_args > 0) {
switch (str[j]) {
case '(':
in_function_args += 1;
break;
case ')':
in_function_args -= 1;
break;
case '{':
in_function_arg_dicts += 1;
break;
case '}':
in_function_arg_dicts -= 1;
break;
}
} else if (in_function_name && str[j] == '(') {
in_function_args = 1;
in_function_arg_dicts = 0;
}

if (expect_type && (prev_is_char || str[j] == '=') && str[j] != '[' && str[j] != '.') {
Expand All @@ -488,15 +502,15 @@ Dictionary GDScriptSyntaxHighlighter::_get_line_syntax_highlighting_impl(int p_l
expect_type = true;
}

if (in_variable_declaration || in_function_args) {
if (in_variable_declaration || in_function_args > 0) {
int k = j;
// Skip space
// Skip space.
while (k < line_length && is_whitespace(str[k])) {
k++;
}

if (str[k] == ':') {
// has type hint
if (str[k] == ':' && in_function_arg_dicts == 0) {
// Has type hint.
expect_type = true;
}
}
Expand Down

0 comments on commit 1edf0f3

Please sign in to comment.