diff options
Diffstat (limited to '.config/nvim/lsp/lua_ls.lua')
| -rw-r--r-- | .config/nvim/lsp/lua_ls.lua | 92 | 
1 files changed, 92 insertions, 0 deletions
diff --git a/.config/nvim/lsp/lua_ls.lua b/.config/nvim/lsp/lua_ls.lua new file mode 100644 index 0000000..c8a46c1 --- /dev/null +++ b/.config/nvim/lsp/lua_ls.lua @@ -0,0 +1,92 @@ +---@brief +--- +--- https://github.com/luals/lua-language-server +--- +--- Lua language server. +--- +--- `lua-language-server` can be installed by following the instructions [here](https://luals.github.io/#neovim-install). +--- +--- The default `cmd` assumes that the `lua-language-server` binary can be found in `$PATH`. +--- +--- If you primarily use `lua-language-server` for Neovim, and want to provide completions, +--- 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) +--- + +---@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', +  }, +	settings = { +		Lua = { +			workspace = { +				library = vim.api.nvim_get_runtime_file("", true), +			} +		} +	} +}  |