- Fixed linter problem reports when global scope is used
- Fixed false-positive
expression-not-assigned
linter check on lambdas - Fixed erroneous DedentError raised in case of inline lambas
- Added support for multi-statement lambdas (#191)
- Added support for typed dictionaries (#322)
- Removed
private-method-call
linter check due to false positives when callingsuper._foo()
- Fixed support for
get_node
syntax to accommodate for$/(...)
- Fixed
gd2py
andgdradon
to support latest GDScript - Changed formatting of some uni-statement lambdas
- Changed formatting of multi-statement, inline lambdas
- Changed formatting of dot-chains containing a lambda(s)
- Changed linter check
class-definitions-order
in a way that static class variables are recommended to be placed just after constants
- Added support for
is not
type test
- Added
gdformatrc
configuration file togdformat
- Added support for Allman-style enum definitions to parser
- Added support for string-based unique node names
- Added support for properties in
gd2py
- Added support for
get():
property syntax - Added support for multiline arrays and dictionaries in
match
statement branches - Added support for guarded
match
branches
- Fixed support for
breakpoint
statement in formatter - Fixed nested unique name (
%
)
- Fixed support for r-strings
- Added support for multiline patterns within
match
statement branches - Added support for r-strings
- Added support for
breakpoint
statement - Added support for function-level annotations
- Added support for typed
for
loop iterator (#241) - Added the
--use-spaces=<int>
option togdformat
so that space-based indentations can be used instead of tab-based ones
- Fixed
max-public-methods
linter check disabling (#222) - Default regex for names of constants now allows underscore as a prefix to denote private contants (#223)
- Fixed parsing of files without newline at the end of file ending with comment (#237)
- Fixed linter support for docstrings (#233)
- Fixed linter support for trailing comma in function's args list (#206)
- Fixed linter support for static variables and classnames bundled with
extends
(#242) - Enforced function statement annotations to be formatted to separate lines (#252)
- Added support for
not in
operator - Added support for
static
class variables
- Improved exceptions formatting
- Added support for user-defined types in type hints
- Added support for annotations with empty argument list (e.g.
@onready()
) - Added support for power operator
**
- Fixed
max-returns
check's message - Fixed formatting of
static
functions
- Added new GDScript
2.0
constructs to the core testcases - Added support for
await
- Added support for typed arrays
- Added support for annotations
- Added support for unique node names
- Added support for property etters
- Added support for inline-lambdas
- Added support for func-level constants
- Added support for typed signal arguments
- Removed support for legacy (Godot
3.x
) GDScript from core testcases - Updated
lark
dependency to the latest release -1.1.5
- Improved
subscr_expr
/getattr
/getattr_call
chains formatting
- Added
no-elif-return
linter check - Added
no-else-return
linter check - Added
gd2py
(GDScript-to-python) converter tool - Added
gdradon
code metrics tool
- Workarounded a lark error impacting pretty print in frontends
- Fixed lack of trailing comma handler in some corner cases
- Fixed lack of support for plus prefixed expressions
- Fixed lack of support for
Vector2/3()
inmatch
patterns - Fixed formatter's corner case in
func()
- Added support for
export onready var
statement onclass
level - Added support for
mastersync
andpuppetsync
functions - Added support for standalone comments in expressions (except for few corner-cases)
- Added
--diff
option togdformat
which acts the same as--check
, but with additional difference printing - Added support for single line pattern formatting (forced for now)
- Added
--fast
option togdformat
to skip safety checks (thus being faster)
- Fixed exception handling in
gdparse
,gdlint
, andgdformat
- Fixed adding newlines around non-standard functions like
static func
,master func
etc. - Fixed if-stmt-related corner case where formatting shred a colon
- Changed formatter to keep going despite failures
- Added support for
pass
statement onclass
level - Added a possibility to disable linter checks in range from e.g.
# gdlint: disable=function-name
to# gdlint: enable=function-name
- Added support for
puppet var
- Added string formatting according to
GDScript style guide
('x'
->"x"
,'"'
->'"'
."'"
->"'"
,'"\''
->"\"'"
) - Added linter option
tab-characters
that allows treating tabs as multiple characters while calculating line length
- Fixed comment persistence check
- Improved comments handling
- Improved utf-8 support
- Fixed type cast (e.g.
1 as String
) to always be in one line (this is forced by Godot's bug)
- Added support for legacy (godot
3.1
) parentheseslessassert
(e.g.assert 1 == 1
) - Added support for recursive file finding in
gdlint
(e.g.gdlint dir1/ dir2/
) - Added pre-commit hooks which can consumed by
pre-commit
project - Added a possibility to ignore linter checks inplace (e.g.
# gdlint: ignore=function-name
inline or in the line before) - Added support for underscored numeric literals such as
1_000_000
,1_000.000
, and0xff_99_00
- Introduced WA for Godot's
preload
bug - Improved formatter to remove trailing whitespaces also from comments
- Added missing
class_name (...) extends (...)
statement support in grammar and formatter - Fixed false positive
TreeInvariantViolation
forneg_expr
var x = load('some.tres')
is allowed since it may be custom resource instance loading
- Added missing expression operators (
^=
,>>=
, and<<=
)
- Improved comment parsing time by a tiny chunk
- Improved formatting time due to loosen grammar removal
- Improved formatting time due to grammar caching
- Improved formatting time due to parse tree reuse in safety checks
- Fixed bug in grammar causing func suite to consume statements from outer scope
- Enum doesn't add trailing comma unless it was in place from the very beginning
- Level-0 standalone comments are not indented anymore
- Formatting strings with hash inside
- Fixed getattr call formatting bug
- Fixed 'extends' formatting bug
- Fixed parent block comments in if-elif-else
- Fixed parentheses handling in formatter
- Improved fromatter's dedent lookup
- Fixed 'extends' bug in grammar
- Fixed grammar - types allow dots now
- Type inference in grammar
- Improved linter exec user experience
- Fixed linter hanging on config file not present
- Missing grammar file added
- Package metadata
- Grammar
- Parser (
gdparse
) - Linter (
gdlint
) with some basic checks - Formatter (
gdformat
) which should work for most of real-life scenarios