diff options
| author | awy <awy@awy.one> | 2025-10-20 20:55:26 +0300 | 
|---|---|---|
| committer | awy <awy@awy.one> | 2025-10-20 20:55:26 +0300 | 
| commit | 662dafc52b2c8a9426bb2197ab9246a8cda318e4 (patch) | |
| tree | f9d1f20e3864360bf941fd6bc02848ed77b037a8 /.config/nvim/lsp/lua_ls.lua | |
| parent | 8131d9f2898b991a2d2c7a2ac601ce9e07cc9c9f (diff) | |
| download | hyprdots-662dafc52b2c8a9426bb2197ab9246a8cda318e4.tar.gz | |
nvqw
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), +			} +		} +	} +}  |