LuaLS / lua-language-server

A language server that offers Lua language support - programmed in Lua
https://luals.github.io
MIT License
3.39k stars 320 forks source link

Undefined global for builtins #1788

Open ddickstein opened 1 year ago

ddickstein commented 1 year ago

How are you using the lua-language-server?

NeoVim

Which OS are you using?

Linux

What is the issue affecting?

Diagnostics/Syntax Checking

Expected Behaviour

I think I'm encountering the same issue as https://github.com/sumneko/lua-language-server/issues/1600. In my case it happens sporadically - reloading a lua file in Neovim will often randomly introduce or resolve this behavior.

I'm running version 3.6.4-1 installed from pacman.

Actual Behaviour

Seeing warnings on all builtins as "undefined global"

Reproduction steps

I'm not sure how to reproduce reliably - it seems to happen somewhat randomly when I load the buffer.

Additional Notes

No response

Log File

(I'm time-constrained at the moment but I plan to add this later)

andrewferrier commented 1 year ago

Ditto - I'm seeing the same problem:

MacOS 12.5.1 NVIM v0.8.0 Sumneko 3.6.3

zenoli commented 1 year ago

Same for me. The problem sometimes disappears when I open certain lua files but it's hard to reproduce consistently.

Ubuntu LTS 22.04 Nvim v0.9.0-dev-47-gcfdb4cbad Sumneko v3.6.4

sumneko commented 1 year ago

Check https://github.com/neovim/nvim-lspconfig/issues/2355

caldwell-63 commented 1 year ago

Nothing really helpful there.

In my case, out of all globals, I'm getting warnings only for the type standard function: Undefined global 'type'

Really weird, I can't tell where is the root of the problem, is it the Language Server, nvim-lspconfig, the neovim lsp implementation, or something else.

sumneko commented 1 year ago

Nothing really helpful there.

In my case, out of all globals, I'm getting warnings only for the type standard function: Undefined global 'type'

Really weird, I can't tell where is the root of the problem, is it the Language Server, nvim-lspconfig, the neovim lsp implementation, or something else.

Please open an issue about it.

L3MON4D3 commented 1 year ago

I've also had this issue, and for me explicitly extending Lua.workspace.library with one of the meta-directories worked, ie.

nvim_lsp.lua_ls.setup {
    settings = {
        Lua = {
            workspace = {
                library = vim.tbl_extend("keep",
                    -- this will probably vary depending on setup, not sure if plugins like mason even install it.
                    {"/usr/lib/lua-language-server/meta/template"},
                    -- and runtime-directories.
                    vim.api.nvim_get_runtime_file("", true)),
            },
        },
    },
}

(might have undesired consequences, but I haven't found any so far :shrug:)

sumneko commented 1 year ago

Please try to startup server with parameters --meta=<WRITEABLE_PATH>. Maybe it generated meta files failed.

L3MON4D3 commented 1 year ago

Ah, yes you're right :+1: cmd = {sumneko_binary, "--logpath", "/home/simon/.cache/lua-language-server/", "--metapath", "/home/simon/.cache/lua-language-server/meta/"} works perfectly, thank you!

benjamineskola commented 1 year ago

I've encountered this when the directory lua-language-server is installed into is not writable by the user. As with the above comment I had to set logpath (or the LS failed to start at all) and metapath (or there would be these undefined global errors).

Perhaps the defaults for logpath and metapath ought to be in a writable directory by default (like $XDG_CONFIG_HOME or $HOME/.cache or on macOS $HOME/Library/Caches?)

godalming123 commented 1 year ago

For me when I use lsp-zero I do not get this error but with the kickstart.nvim default config I do? strange

wsdjeg commented 1 year ago

I got same issue in win 11, and fix by this suggession, https://github.com/LuaLS/lua-language-server/issues/1788#issuecomment-1464886248

idbrii commented 1 year ago

L3MON4D3's comment helped solve this undefined built-ins for me too, but since I'm using vim-lsp-settings, I solved it with this in my vimrc:

call lsp_settings#set('sumneko-lua-language-server', 'args', ["--metapath", expand('~/.vim-cache/lsp/meta')])