diff options
| author | ache <ache@ache.one> | 2026-02-19 18:31:55 +0100 |
|---|---|---|
| committer | ache <ache@ache.one> | 2026-02-19 18:31:55 +0100 |
| commit | 61257dbb8f198a0943d4c1120d484268f4ed04be (patch) | |
| tree | 0c861b2604b11867571083d923e092a6cd876671 /lua/ache/plugins/lsp/mason-lspconf.lua | |
| parent | feat: Lint based on LSP (diff) | |
feat: Configure lua_ls
Diffstat (limited to 'lua/ache/plugins/lsp/mason-lspconf.lua')
| -rw-r--r-- | lua/ache/plugins/lsp/mason-lspconf.lua | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lua/ache/plugins/lsp/mason-lspconf.lua b/lua/ache/plugins/lsp/mason-lspconf.lua index df242e6..1be4b4c 100644 --- a/lua/ache/plugins/lsp/mason-lspconf.lua +++ b/lua/ache/plugins/lsp/mason-lspconf.lua @@ -20,6 +20,55 @@ return { local lspconfig = require("lspconfig") local capabilities = require("cmp_nvim_lsp").default_capabilities() + vim.lsp.config("lua_ls", { + on_init = function(client) + if client.workspace_folders then + local path = client.workspace_folders[1].name + if + path ~= vim.fn.stdpath("config") + and (vim.uv.fs_stat(path .. "/.luarc.json") or vim.uv.fs_stat(path .. "/.luarc.jsonc")) + then + return + end + end + + client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, { + runtime = { + -- Tell the language server which version of Lua you're using (most + -- likely LuaJIT in the case of Neovim) + version = "LuaJIT", + -- Tell the language server how to find Lua modules same way as Neovim + -- (see `:h lua-module-load`) + path = { + "lua/?.lua", + "lua/?/init.lua", + }, + }, + -- Make the server aware of Neovim runtime files + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + -- Depending on the usage, you might want to add additional paths + -- here. + -- '${3rd}/luv/library' + -- '${3rd}/busted/library' + }, + -- Or pull in all of 'runtimepath'. + -- NOTE: this is a lot slower and will cause issues when working on + -- your own configuration. + -- See https://github.com/neovim/nvim-lspconfig/issues/3189 + -- library = { + -- vim.api.nvim_get_runtime_file('', true), + -- } + }, + }) + end, + settings = { + Lua = {}, + }, + }) + mason_lspconfig.setup({ ensure_installed = { "lua_ls", |