I see that multi-line lambdas are now well supported in Godot:
camera.tween.finished.connect(func():
camera.tween.stop()
# Switch to linear tween for a smoother follow
camera.tween\
.tween_method(set_pos, 0.0, 1.0, time)\
.set_trans(Tween.TRANS_LINEAR)
camera.tween.play()
)
Any chance we could support such?
Using Gdformat 4.2.2
Currently:
▶ gdlint test.gd
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/lark/lexer.py", line 590, in lex
yield lexer.next_token(lexer_state, parser_state)
File "/usr/local/lib/python3.9/site-packages/lark/lexer.py", line 528, in next_token
raise UnexpectedCharacters(lex_state.text, line_ctr.char_pos, line_ctr.line, line_ctr.column,
lark.exceptions.UnexpectedCharacters:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/gdtoolkit/linter/__main__.py", line 134, in _lint_file
problems = lint_code(content, config)
File "/usr/local/lib/python3.9/site-packages/gdtoolkit/linter/__init__.py", line 118, in lint_code
parse_tree = parser.parse(gdscript_code, gather_metadata=True)
File "/usr/local/lib/python3.9/site-packages/gdtoolkit/parser/parser.py", line 62, in parse
self._parser_with_metadata.parse(adjusted_code)
File "/usr/local/lib/python3.9/site-packages/lark/lark.py", line 645, in parse
return self.parser.parse(text, start=start, on_error=on_error)
File "/usr/local/lib/python3.9/site-packages/lark/parser_frontends.py", line 96, in parse
return self.parser.parse(stream, chosen_start, **kw)
File "/usr/local/lib/python3.9/site-packages/lark/parsers/lalr_parser.py", line 41, in parse
return self.parser.parse(lexer, start)
File "/usr/local/lib/python3.9/site-packages/lark/parsers/lalr_parser.py", line 171, in parse
return self.parse_from_state(parser_state)
File "/usr/local/lib/python3.9/site-packages/lark/parsers/lalr_parser.py", line 193, in parse_from_state
raise e
File "/usr/local/lib/python3.9/site-packages/lark/parsers/lalr_parser.py", line 183, in parse_from_state
for token in state.lexer.lex(state):
File "/usr/local/lib/python3.9/site-packages/lark/indenter.py", line 45, in _process
for token in stream:
File "/usr/local/lib/python3.9/site-packages/lark/lexer.py", line 599, in lex
raise UnexpectedToken(token, e.allowed, state=parser_state, token_history=[last_token], terminals_by_name=self.root_lexer.terminals_by_name)
lark.exceptions.UnexpectedToken:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/gdtoolkit/common/exceptions.py", line 14, in lark_unexpected_token_to_str
return f"{exception.get_context(code)}\n{exception}"
File "/usr/local/lib/python3.9/site-packages/lark/exceptions.py", line 256, in __str__
% (self.token, self.line, self.column, self._format_expected(self.accepts or self.expected)))
File "/usr/local/lib/python3.9/site-packages/lark/exceptions.py", line 142, in _format_expected
expected = [d[t_name].user_repr() if t_name in d else t_name for t_name in expected]
File "/usr/local/lib/python3.9/site-packages/lark/exceptions.py", line 142, in
expected = [d[t_name].user_repr() if t_name in d else t_name for t_name in expected]
File "/usr/local/lib/python3.9/site-packages/lark/lexer.py", line 124, in user_repr
return self.pattern.raw or self.name
AttributeError: 'PatternStr' object has no attribute 'raw'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/gdlint", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/gdtoolkit/linter/__main__.py", line 66, in main
problems_total += _lint_file(file_path, config)
File "/usr/local/lib/python3.9/site-packages/gdtoolkit/linter/__main__.py", line 148, in _lint_file
lark_unexpected_token_to_str(exception, content),
File "/usr/local/lib/python3.9/site-packages/gdtoolkit/common/exceptions.py", line 16, in lark_unexpected_token_to_str
return f"{exception}".strip()
File "/usr/local/lib/python3.9/site-packages/lark/exceptions.py", line 256, in __str__
% (self.token, self.line, self.column, self._format_expected(self.accepts or self.expected)))
File "/usr/local/lib/python3.9/site-packages/lark/exceptions.py", line 142, in _format_expected
expected = [d[t_name].user_repr() if t_name in d else t_name for t_name in expected]
File "/usr/local/lib/python3.9/site-packages/lark/exceptions.py", line 142, in
expected = [d[t_name].user_repr() if t_name in d else t_name for t_name in expected]
File "/usr/local/lib/python3.9/site-packages/lark/lexer.py", line 124, in user_repr
return self.pattern.raw or self.name
AttributeError: 'PatternStr' object has no attribute 'raw'
I see that multi-line lambdas are now well supported in Godot:
Any chance we could support such?
Using
Gdformat 4.2.2
Currently: