You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think I'm encountering the same issue as #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)
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.
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.
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 🤷)
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?)
I'm sorry if this is too late, but I would think this is a relevant issue to the problem I'm also seeing:
-- Require the hello-world modulelocalhello_world=require("hello-world")
-- Define a module named hello-world. This module should return a single-- function named hello that takes no arguments and returns a string.describe("hello-world", function()
it("says hello world", function()
localresult=hello_world.hello()
assert.are.equal("Hello, World!", result)
end)
end)
This hello-world_spec.lua gives me warnings for Undefined global 'describe'., Undefined global 'it'. and Undefined field 'are'. while using lua_ls in mason within the LazyVim distro.
I tried setting the command in the lsp config without much success. How can I better investigate the problem?
This also happens on some example configs from LazyVim, e.g. the supertab extension gives an Undefined type or alias 'cmp.ConfigSchema'.
Activity
andrewferrier commentedon Dec 28, 2022
Ditto - I'm seeing the same problem:
MacOS 12.5.1
NVIM v0.8.0
Sumneko 3.6.3
zenoli commentedon Dec 29, 2022
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 commentedon Jan 3, 2023
Check neovim/nvim-lspconfig#2355
caldwell-63 commentedon Feb 9, 2023
Nothing really helpful there.
In my case, out of all globals, I'm getting warnings only for the
typestandard 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 commentedon Feb 13, 2023
Please open an issue about it.
L3MON4D3 commentedon Mar 10, 2023
I've also had this issue, and for me explicitly extending
Lua.workspace.librarywith one of themeta-directories worked, ie.(might have undesired consequences, but I haven't found any so far 🤷)
sumneko commentedon Mar 11, 2023
Please try to startup server with parameters
--meta=<WRITEABLE_PATH>.Maybe it generated meta files failed.
L3MON4D3 commentedon Mar 11, 2023
Ah, yes you're right 👍
cmd = {sumneko_binary, "--logpath", "/home/simon/.cache/lua-language-server/", "--metapath", "/home/simon/.cache/lua-language-server/meta/"}works perfectly, thank you!benjamineskola commentedon Mar 31, 2023
I've encountered this when the directory
lua-language-serveris installed into is not writable by the user. As with the above comment I had to setlogpath(or the LS failed to start at all) andmetapath(or there would be theseundefined globalerrors).Perhaps the defaults for logpath and metapath ought to be in a writable directory by default (like
$XDG_CONFIG_HOMEor$HOME/.cacheor on macOS$HOME/Library/Caches?)godalming123 commentedon Apr 20, 2023
For me when I use lsp-zero I do not get this error but with the kickstart.nvim default config I do? strange
wsdjeg commentedon Jun 19, 2023
I got same issue in win 11, and fix by this suggession, #1788 (comment)
idbrii commentedon Aug 10, 2023
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:
feat(neovim): add support for C/C++, Lua, Rust, and Java
massimopavoni commentedon Jan 31, 2025
I'm sorry if this is too late, but I would think this is a relevant issue to the problem I'm also seeing:
This
hello-world_spec.luagives me warnings forUndefined global 'describe'.,Undefined global 'it'.andUndefined field 'are'.while using lua_ls in mason within the LazyVim distro.I tried setting the command in the lsp config without much success. How can I better investigate the problem?
This also happens on some example configs from LazyVim, e.g. the supertab extension gives an
Undefined type or alias 'cmp.ConfigSchema'.tkatter commentedon Apr 9, 2026
Chiming in to say that the solution suggested here still worked for me 3 years later.