You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Changelog:
## 3.8.3
`2024-4-23`
* `FIX` server may crash when the workspace is using a non-English path.
## 3.8.2
`2024-4-23`
* This is a fake version only for the new version of VSCode, with a core of 3.8.0.
## 3.8.1
`2024-4-23`
* This is a fake version only for the old version of VSCode, with a core of `3.7.4`. Starting from the next minor version, the version requirement for VSCode will be raised to prevent users still using the old version of VSCode from updating to the new version and experiencing compatibility issues.
## 3.8.0
`2024-4-22`
* `NEW` supports tuple type (@[lizho])
```lua
---@type [string, number, boolean]
local t
local x = t[1] --> x is `string`
local y = t[2] --> y is `number`
local z = t[3] --> z is `boolean`
```
* `NEW` generic pattern (@[fesily])
```lua
---@Generic T
---@param t Cat.`T`
---@return T
local function f(t) end
local t = f('Smile') --> t is `Cat.Smile`
```
* `NEW` alias and enums supports attribute `partial`
```lua
---@alias Animal Cat
---@alias(partial) Animal Dog
---@type Animal
local animal --> animal is `Cat|Dog` here
```
```lua
---@enum(key) ErrorCodes
local codes1 = {
OK = 0,
ERROR = 1,
FATAL = 2,
}
---@enum(key, partial) ErrorCodes
local codes2 = {
WARN = 3,
INFO = 4,
}
---@type ErrorCodes
local code
code = 'ERROR' --> OK
code = 'WARN' --> OK
```
* `NEW` plugin: add `OnTransFormAst` interface (@[fesily])
* `NEW` plugin: add `OnNodeCompileFunctionParam` interface (@[fesily])
* `NEW` plugin: add `ResolveRequire` interface (@[Artem Dzhemesiuk])
* `NEW` plugin: support multi plugins (@[fesily])
+ setting: `Lua.runtime.plugin` can be `string|string[]`
+ setting: `Lua.runtime.pluginArgs` can be `string[]|table<string, string>`
* `NEW` CLI: `--doc` add option `--doc_out_path <PATH>` (@[Andreas Matthias])
* `NEW` CLI: `--doc_update`, update an existing `doc.json` without using `--doc` again (@[Andreas Matthias])
* `NEW` CLI: `--trust_all_plugins`, this is potentially unsafe for normal use and meant for usage in CI environments only (@[Paul Emmerich])
* `CHG` CLI: `--check` will run plugins (@[Daniel Farrell])
* `FIX` diagnostic: `discard-returns` not works in some blocks (@clay-golem)
* `FIX` rename in library files
## 3.7.4
`2024-1-5`
* `FIX` rename to unicode with `Lua.runtime.unicodeName = true`
## 3.7.3
`2023-11-14`
* `FIX` can not infer arg type in some cases.
## 3.7.2
`2023-11-9`
* `FIX` [#2407]
[#2407]: LuaLS/lua-language-server#2407
## 3.7.1
`2023-11-7`
* `FIX` [#2299]
* `FIX` [#2335]
[#2299]: LuaLS/lua-language-server#2299
[#2335]: LuaLS/lua-language-server#2335
## 3.7.0
`2023-8-24`
* `NEW` support `---@type` and `--[[@as]]` for return statement
* `NEW` commandline parameter `--force-accept-workspace`: allowing the use of the root directory or home directory as the workspace
* `NEW` diagnostic: `inject-field`
* `NEW` `---@enum` supports attribute `key`
```lua
---@enum (key) AnimalType
local enum = {
Cat = 1,
Dog = 2,
}
---@param animal userdata
---@param atp AnimalType
---@return boolean
local function isAnimalType(animal, atp)
return API.isAnimalType(animal, enum[atp])
end
assert(isAnimalType(animal, 'Cat'))
```
* `NEW` `---@class` supports attribute `exact`
```lua
---@Class (exact) Point
---@field x number
---@field y number
local m = {}
m.x = 1 -- OK
m.y = 2 -- OK
m.z = 3 -- Warning
```
* `FIX` wrong hover and signature for method with varargs and overloads
* `FIX` [#2155]
* `FIX` [#2224]
* `FIX` [#2252]
* `FIX` [#2267]
[#2155]: LuaLS/lua-language-server#2155
[#2224]: LuaLS/lua-language-server#2224
[#2252]: LuaLS/lua-language-server#2252
[#2267]: LuaLS/lua-language-server#2267
## 3.6.25
`2023-7-26`
* `FIX` [#2214]
[#2214]: LuaLS/lua-language-server#2214
## 3.6.24
`2023-7-21`
* `NEW` diagnostic: `missing-fields`
* `FIX` shake of `codeLens`
* `FIX` [#2145]
[#2145]: LuaLS/lua-language-server#2145
## 3.6.23
`2023-7-7`
* `CHG` signature: narrow by inputed literal
## 3.6.22
`2023-6-14`
* `FIX` [#2038]
* `FIX` [#2042]
* `FIX` [#2062]
* `FIX` [#2083]
* `FIX` [#2088]
* `FIX` [#2110]
* `FIX` [#2129]
[#2038]: LuaLS/lua-language-server#2038
[#2042]: LuaLS/lua-language-server#2042
[#2062]: LuaLS/lua-language-server#2062
[#2083]: LuaLS/lua-language-server#2083
[#2088]: LuaLS/lua-language-server#2088
[#2110]: LuaLS/lua-language-server#2110
[#2129]: LuaLS/lua-language-server#2129
0 commit comments