You've already forked godot
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:
@@ -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.)*");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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")
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
GDTEST_OK
|
||||||
|
Ok
|
||||||
Reference in New Issue
Block a user