1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-09 12:50:35 +00:00

GDScript: Allow multiple lines in signal parameters declaration

This commit is contained in:
George Marques
2021-09-21 13:40:39 -03:00
parent db028ac700
commit bab0afc821
3 changed files with 26 additions and 1 deletions

View File

@@ -1053,7 +1053,9 @@ GDScriptParser::SignalNode *GDScriptParser::parse_signal() {
SignalNode *signal = alloc_node<SignalNode>(); SignalNode *signal = alloc_node<SignalNode>();
signal->identifier = parse_identifier(); signal->identifier = parse_identifier();
if (match(GDScriptTokenizer::Token::PARENTHESIS_OPEN)) { if (check(GDScriptTokenizer::Token::PARENTHESIS_OPEN)) {
push_multiline(true);
advance();
do { do {
if (check(GDScriptTokenizer::Token::PARENTHESIS_CLOSE)) { if (check(GDScriptTokenizer::Token::PARENTHESIS_CLOSE)) {
// Allow for trailing comma. // Allow for trailing comma.
@@ -1076,6 +1078,7 @@ GDScriptParser::SignalNode *GDScriptParser::parse_signal() {
} }
} while (match(GDScriptTokenizer::Token::COMMA) && !is_at_end()); } while (match(GDScriptTokenizer::Token::COMMA) && !is_at_end());
pop_multiline();
consume(GDScriptTokenizer::Token::PARENTHESIS_CLOSE, R"*(Expected closing ")" after signal parameters.)*"); consume(GDScriptTokenizer::Token::PARENTHESIS_CLOSE, R"*(Expected closing ")" after signal parameters.)*");
} }

View File

@@ -0,0 +1,20 @@
#GDTEST_OK
# No parentheses.
signal a
# No parameters.
signal b()
# With paramters.
signal c(a, b, c)
# With parameters multiline.
signal d(
a,
b,
c,
)
func test():
print("Ok")

View File

@@ -0,0 +1,2 @@
GDTEST_OK
Ok