Open somebody1234 opened 2 years ago
(added a new suggestion)
@class
suppresses "global variable in lowercase initial" warning:
Do you want ---@class
do not suppress warnings?
on second thought, i guess it depends? so maybe an option may be the way to go here... or just treat it as [wontfix]
it's just something i noticed, i usually use modules so in my case at least, there should never ever be global variables
on second thought, i guess it depends? so maybe an option may be the way to go here... or just treat it as [wontfix]
it's just something i noticed, i usually use modules so in my case at least, there should never ever be global variables
You can try to color global variables with striking color with server on latest master:
// color global variables to red
"editor.semanticTokenColorCustomizations": {
"rules": {
"variable.global": "#ff0000"
}
}
It can also set font style.
- retaining flow typing for declarations with initializers:
--- @type foo | nil local x x = { foo = 1 } x.foo -- works --- @type foo | nil local x = { foo = 1 } x.foo -- need check nil (| nil overrides flow typing from the initializer)
Won't fix
- [ ]
@class
suppresses "global variable in lowercase initial" warning:--- @class foo function f() end
As design
[ ] recursive types (not necessarily generic) - in my case i have an
@alias tree_node table<string, tree_leaf | tree_node>
- i've seen Generics referencing generics #1161 which seems to imply that recursive generics are too complex - not sure if this applies to normal types
Alias need to be expanded, so I can not support recursive alias.
disallowing assigning decimal literals to integer variables, and numbers to different numbers (it already does this between string/number/table/string literals/integer literals etc.):
- [ ] i guess the real issue is not having decimal literal types?
--- @type integer local foo = 1.1 --- @type 10 local foo = 1.1 -- this should error at least
You need set Lua.type.castNumberToInteger
to false
(it's okay to close this if they're not possible, just wondering if they're possible)
ffi.cdef([[]])
, not just the version without parensstring + anything
,table + anything
,anything + string
,anything + table
--- @param foo foo local function fn(foo) end --- @param foos foo[] local function fn2(foos) end local f --- @type foo local b --- @type bar fn(f) -- ok fn(b) -- error fn({ f }) -- ok (incorrect) fn2({ f }) -- ok fn2(f) -- ok (incorrect) fn2(b) -- ok (incorrect)
string|string[]
andnumber
so even just handling it only for primitives and arrays would be quite helpful@alias tree_node table<string, tree_leaf | tree_node>
@type my_function_alias
as an alternative to@param
+@return
fun(req: request, res: response): nil
local foo = function
andlocal function foo
. doesn't seem to work forreturn function
return
, etc) would go a long way