diff --git a/lsp/lua_ls.lua b/lsp/lua_ls.lua index 85bd884..9940cd4 100644 --- a/lsp/lua_ls.lua +++ b/lsp/lua_ls.lua @@ -12,74 +12,68 @@ --- analysis, and location handling for plugins on runtime path, you can use the following --- settings. --- ---- ```lua ---- 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 = {} ---- } ---- }) ---- ``` ---- ---- See `lua-language-server`'s [documentation](https://luals.github.io/wiki/settings/) for an explanation of the above fields: ---- * [Lua.runtime.path](https://luals.github.io/wiki/settings/#runtimepath) ---- * [Lua.workspace.library](https://luals.github.io/wiki/settings/#workspacelibrary) ---- +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, + -- vim.fn.expand("~/.local/share/love2d/library"), + -- Depending on the usage, you might want to add additional paths + -- here. + '${3rd}/love2d/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 = {} + } +}) ---@type vim.lsp.Config return { - cmd = { 'lua-language-server' }, - filetypes = { 'lua' }, - root_markers = { - '.luarc.json', - '.luarc.jsonc', - '.luacheckrc', - '.stylua.toml', - 'stylua.toml', - 'selene.toml', - 'selene.yml', - '.git', - }, + cmd = { 'lua-language-server' }, + filetypes = { 'lua' }, + root_markers = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', + '.git', + }, }