GDScript: Allow multiple lines in signal parameters declaration
This commit is contained in:
parent
db028ac700
commit
bab0afc821
3 changed files with 26 additions and 1 deletions
|
@ -1053,7 +1053,9 @@ GDScriptParser::SignalNode *GDScriptParser::parse_signal() {
|
|||
SignalNode *signal = alloc_node<SignalNode>();
|
||||
signal->identifier = parse_identifier();
|
||||
|
||||
if (match(GDScriptTokenizer::Token::PARENTHESIS_OPEN)) {
|
||||
if (check(GDScriptTokenizer::Token::PARENTHESIS_OPEN)) {
|
||||
push_multiline(true);
|
||||
advance();
|
||||
do {
|
||||
if (check(GDScriptTokenizer::Token::PARENTHESIS_CLOSE)) {
|
||||
// Allow for trailing comma.
|
||||
|
@ -1076,6 +1078,7 @@ GDScriptParser::SignalNode *GDScriptParser::parse_signal() {
|
|||
}
|
||||
} while (match(GDScriptTokenizer::Token::COMMA) && !is_at_end());
|
||||
|
||||
pop_multiline();
|
||||
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
|
Loading…
Add table
Reference in a new issue