---@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' -- }, -- -- 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) -- return { cmd = { 'lua-language-server' }, filetypes = { 'lua' }, root_markers = { '.luarc.json', '.luarc.jsonc', '.luacheckrc', '.stylua.toml', 'stylua.toml', 'selene.toml', 'selene.yml', '.git', }, }