Hammerspoon / Hammerspoon/Spoons

[EmmyLua] incorrect annotations for `hs.fnutils`

Open
#309 0 comments 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.