Hammerspoon / Hammerspoon/Spoons
[EmmyLua] incorrect annotations for `hs.fnutils`
- Dominant language
- Lua
- Stars
- 567
- Forks
- 171
- PR merge metrics
- No merged PRs in 30d
Description
#240 added the `EmmyLua` spoon to generate EmmyLua annotations for hs modules. I am not sure if the logic used to generate annotations has gone out of date or there was always an issue, but I've noticed that many of the annotations for `hs.fnutils` are missing or incorrect. For example, here is the annotation for `hs.fnutils.map`:
```
-- Execute a function across a table (in arbitrary order) and collect the results
--
-- Parameters:
-- * table - A table; it can have both a list (or array) part and a hash (or dict) part
-- * fn - A function that accepts a single parameter (a table element). For the hash part, the values returned
-- from this function (if non-nil) will be assigned to the same key in the result list. For the array part, this function
-- behaves like `hs.fnutils.imap()` (i.e. `nil` results are discarded); however all keys, including integer keys after
-- a "hole" in `table`, will be iterated over.
--
-- Returns:
-- * A table containing the results of calling the function on every element in the table
--
-- Notes:
-- * If `table` is a pure array table (list-like) without "holes", use `hs.fnutils.imap()` if you need guaranteed in-order
-- processing and for better performance.
function M.map(table, fn, ...) end
```
This is interpreted by current versions of `lua_language_server` as a `nil` return value. You end up with tons of false positive diagnostics wherever `hs.fnutils` is used.
It is possible there is a similar issue with other `hs.*` modules, I haven't checked.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.