如何在lspconfig中配置lua_ls?添加后出现访问配置错误
解决lua_ls在lspconfig中无法访问配置的问题
问题根源
你仅通过mason-lspconfig的ensure_installed列表安装了lua_ls,但未让lspconfig正确加载该服务器的配置。mason-lspconfig的ensure_installed仅负责自动安装LSP服务器,不会自动完成lspconfig的配置注册。
解决方案
方法1:用mason-lspconfig的setup_handlers自动关联配置
修改你的mason-lspconfig配置,添加setup_handlers逻辑,自动让lspconfig加载对应服务器的默认配置(也可单独定制lua_ls的配置):
{ "williamboman/mason-lspconfig.nvim", dependencies = { "neovim/nvim-lspconfig", "williamboman/mason.nvim" }, config = function() require("mason-lspconfig").setup({ ensure_installed = { "angularls", "bashls", "cssls", "eslint", "gopls", "html", "jsonls", "lua_ls", "rust_analyzer", "svelte", "tailwindcss", "tsserver", "yamlls", }, }) -- 自动注册所有已安装的LSP服务器 require("mason-lspconfig").setup_handlers({ -- 默认处理逻辑:加载服务器默认配置 function(server_name) require("lspconfig")[server_name].setup({}) end, -- 单独定制lua_ls的配置(适配neovim lua环境) ["lua_ls"] = function() require("lspconfig").lua_ls.setup({ settings = { Lua = { diagnostics = { -- 识别neovim全局变量,避免误报 globals = {"vim"} } } } }) end }) end, },
方法2:手动在lspconfig中注册lua_ls
若不想用setup_handlers,可单独在配置中添加lua_ls的lspconfig注册逻辑:
确保neovim/nvim-lspconfig已通过lazy.nvim安装,然后添加:
-- 可放在独立的LSP配置文件,或mason-lspconfig的config代码之后 require("lspconfig").lua_ls.setup({ settings = { Lua = { diagnostics = { globals = {"vim"} } } } })
注意事项
- 确认
neovim/nvim-lspconfig插件已正确安装,它是mason-lspconfig依赖的核心LSP配置插件。 - 可通过
:Mason命令检查lua_ls是否已成功安装,若未安装,mason会自动触发安装流程。
内容的提问来源于stack exchange,提问作者zer09
相关产品推荐
相关产品推荐

