Skip to content

Literal values in the type definition lead to empty docs #69

@mfussenegger

Description

@mfussenegger

lua-language-server supports defining literals/an sum type inline in the type definition. An example: @param x "foo"|"bar"

But this seems to break lemmy-help:

local M = {}

--- Foobar
---@param t? "foo"|"bar"
function M.foo(t)
  print(t)
end

return M

Results in:

❮ lemmy-help -f foo.lua
M.foo()                                                                  *M.foo*


vim:tw=78:ts=8:noet:ft=help:norl:

image

Compared with a regular type definition:

local M = {}

--- Foobar
---@param t? string
function M.foo(t)
  print(t)
end

return M

Which works as expected:

❮ lemmy-help -f foo.lua
M.foo({t?})                                                              *M.foo*
     Foobar

    Parameters: ~
        {t?}  (string)


vim:tw=78:ts=8:noet:ft=help:norl:

The long form also works:

local M = {}

--- Foobar
---@param t? string
---|"foo"
---|"bar"
function M.foo(t)
  print(t)
end

return M
❮ lemmy-help -f foo.lua
M.foo({t?})                                                              *M.foo*
     Foobar

    Parameters: ~
        {t?}  (string)  |"foo"
                        |"bar"


vim:tw=78:ts=8:noet:ft=help:norl:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions