|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 | <!-- Add all new changes here. They will be moved under a version at release --> |
| 5 | + |
| 6 | +## 3.19.0 |
| 7 | +`2026-08-08` |
| 8 | +* `NEW` Support LuaJIT 3.0 extension syntax when `Lua.runtime.version` is `LuaJIT` and the new `Lua.runtime.enableLuaJITExtensions` setting is enabled: ternary conditional `?:`, safe navigation `?.` (including method forms `obj?.:method`, `obj:method?.`), nil-coalescing `??`, arithmetic shift `~>>` with `~>>=` compound assignment, `..=` concatenation assignment, `const` declarations, short function expressions (`x -> expr`, `|x| -> expr`, `-> do ... end`), and number underscores (`1_000`) [#3434](https://github.com/LuaLS/lua-language-server/issues/3434) |
5 | 9 | * `NEW` `@operator` declarations on generic classes now resolve class type parameters through the instantiated type: with `---@class Box<T>` and `---@operator call(): T?`, calling a `Box<string>` instance infers `string?` |
| 10 | +* `NEW` Support type inference for `@field` and `@type` function declarations in method overrides [#3367](https://github.com/LuaLS/lua-language-server/issues/3367) |
| 11 | +* `FIX` Fix invalid LSP responses in files containing string literals with escaped bytes. |
| 12 | +* `FIX` Fix method-level generic return type being overwritten by receiver class generic resolution [#3438](https://github.com/LuaLS/lua-language-server/discussions/3438) |
6 | 13 | * `FIX` Generic type parameters used in `@operator` annotations are now recognized as generics (and highlighted as such) instead of being treated as undefined type names |
7 | | -* `NEW` Support LuaJIT 3.0 extension syntax when `Lua.runtime.version` is `LuaJIT` and the new `Lua.runtime.enableLuaJITExtensions` setting is enabled: ternary conditional `?:`, safe navigation `?.` (including method forms `obj?.:method`, `obj:method?.`), nil-coalescing `??`, arithmetic shift `~>>` with `~>>=` compound assignment, `..=` concatenation assignment, `const` declarations, short function expressions (`x -> expr`, `|x| -> expr`, `-> do ... end`), and number underscores (`1_000`) [#3434](https://github.com/LuaLS/lua-language-server/issues/3434) |
8 | 14 | * `FIX` Infer `pcall`/`xpcall` second result from their own declaration when the called function returns nothing [#3440](https://github.com/LuaLS/lua-language-server/pull/3440) |
9 | 15 | * `FIX` Recognize a class inheriting a generic class as a child of that generic's own parent [#3441](https://github.com/LuaLS/lua-language-server/pull/3441) |
10 | | -* `NEW` Support type inference for `@field` and `@type` function declarations in method overrides [#3367](https://github.com/LuaLS/lua-language-server/issues/3367) |
11 | 16 | * `FIX` Deduplicate documentation bindings for parameters |
12 | 17 | * `FIX` Correct `math.type` meta return annotation to use `nil` instead of the string literal `'nil'` |
13 | 18 | * `FIX` Fix initial `nameStyle.config` not getting loaded in the appropriate workspace. |
14 | | -* `FIX` Fix method-level generic return type being overwritten by receiver class generic resolution [#3438](https://github.com/LuaLS/lua-language-server/discussions/3438) |
15 | | -* `FIX` Fix invalid LSP responses in files containing string literals with escaped bytes. |
16 | 19 |
|
17 | 20 | ## 3.18.2 |
18 | 21 | * `CHG` `duplicate-set-field` diagnostic now supports linked suppression: when any occurrence of a duplicate field is suppressed with `---@diagnostic disable` or `---@diagnostic disable-next-line`, all warnings for that field name will be suppressed |
|
0 commit comments