v0.12.0
Features
wsformatcommand-line formatter: format.wsfiles or whole directories from the terminal, with a--checkmode that lists unformatted files without rewriting them- Formatting now reads a
.wsformat.tomlconfig; thewsformatCLI and your editor both pick up the nearest config in the directory tree and format identically - Many more of the game's built-in enums are now defined, so autocomplete and unknown-symbol warnings recognise them
- Calls with the wrong number of arguments are now flagged: too many arguments, or a missing required (non-
optional) one - Using
parentorvirtual_parentoutside a state is now flagged as an error
Bug fixes
- Go-to-definition and type checking now work on a field accessed through an array element, e.g. the
.fieldinarr[i].field - Cross-file errors now clear once you fix the file they came from, instead of lingering
- The wrong-arguments squiggle now underlines the offending arguments, not the function name
- The formatter no longer drops skipped argument slots (e.g.
f(a, , b)) when wrapping a long call //end-of-line comments no longer add or remove blank lines when formatting- Member completion now works on a line with no trailing
; - Member completion no longer suggests the wrong members when typing before an existing
; - Editing a file rapidly no longer occasionally corrupts highlighting and error positions
Improvements
- A long function call on the right of an assignment now wraps its arguments across lines, matching plain call statements
What's Changed
- Add wsformat command-line formatter by @webspam in #273
- Flag calls with the wrong number of arguments by @webspam in #274
- Fix member access on indexed array elements by @webspam in #275
- Fix stale cross-file diagnostics by @webspam in #276
- Flag parent/virtual_parent used outside a state by @webspam in #278
- Refactor: Remove diagnostics boilerplate by @webspam in #279
- Fix "incorrect params" diagnostic underlining the function name by @webspam in #280
- Fix formatter dropping skipped call arguments when wrapping by @webspam in #281
- Add all unknown enum declarations by @webspam in #282
- Fix EOL comments corrupting blank-line spacing by @webspam in #283
- Fix member completion when a line has no semicolon by @webspam in #285
- Use clippy auto fix by default by @webspam in #286
- Fix data race corrupting syntax tree offsets by @webspam in #288
- Fix incorrect completions show in partial line by @webspam in #289
- Wrap long assignment call arguments across lines by @webspam in #290
- Add a precommit recipe and slim down
just testby @webspam in #291 - Version 0.12.0 by @webspam in #292
Full Changelog: v0.11.0...v0.12.0