diff options
| author | figsoda <figsoda@pm.me> | 2023-02-11 21:30:20 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-12 10:30:20 +0800 |
| commit | 6669f2d8ebc38cfb9e639145569f94be5556d916 (patch) | |
| tree | 934155be3fa1d7d69fa1c3331dbd729d4ddd3fae /lua/lspconfig/server_configurations/lua_ls.lua | |
| parent | docs: update server_configurations.md (diff) | |
| download | nvim-lspconfig-6669f2d8ebc38cfb9e639145569f94be5556d916.tar nvim-lspconfig-6669f2d8ebc38cfb9e639145569f94be5556d916.tar.gz nvim-lspconfig-6669f2d8ebc38cfb9e639145569f94be5556d916.tar.bz2 nvim-lspconfig-6669f2d8ebc38cfb9e639145569f94be5556d916.tar.lz nvim-lspconfig-6669f2d8ebc38cfb9e639145569f94be5556d916.tar.xz nvim-lspconfig-6669f2d8ebc38cfb9e639145569f94be5556d916.tar.zst nvim-lspconfig-6669f2d8ebc38cfb9e639145569f94be5556d916.zip | |
feat: rename sumneko_lua -> lua_ls (#2439)
* feat: rename sumneko_lua -> lua_language_server
* refactor(sumneko_lua): use vim.deprecate
* refactor: handle deprecated server aliases in one place
* refactor: put server aliases in a function
* feat: rename lua_language_server -> lua_ls
Diffstat (limited to 'lua/lspconfig/server_configurations/lua_ls.lua')
| -rw-r--r-- | lua/lspconfig/server_configurations/lua_ls.lua | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/lua/lspconfig/server_configurations/lua_ls.lua b/lua/lspconfig/server_configurations/lua_ls.lua new file mode 100644 index 00000000..7ab54cf8 --- /dev/null +++ b/lua/lspconfig/server_configurations/lua_ls.lua @@ -0,0 +1,91 @@ +local util = require 'lspconfig.util' + +local root_files = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', +} + +local bin_name = 'lua-language-server' +local cmd = { bin_name } + +if vim.fn.has 'win32' == 1 then + cmd = { 'cmd.exe', '/C', bin_name } +end + +return { + default_config = { + cmd = cmd, + filetypes = { 'lua' }, + root_dir = function(fname) + local root = util.root_pattern(unpack(root_files))(fname) + if root and root ~= vim.env.HOME then + return root + end + root = util.root_pattern 'lua/'(fname) + if root then + return root .. '/lua/' + end + return util.find_git_ancestor(fname) + end, + single_file_support = true, + log_level = vim.lsp.protocol.MessageType.Warning, + settings = { Lua = { telemetry = { enable = false } } }, + }, + docs = { + description = [[ +https://github.com/luals/lua-language-server + +Lua language server. + +`lua-language-server` can be installed by following the instructions [here](https://github.com/luals/lua-language-server/wiki/Getting-Started#command-line). + +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. + +Note: that these settings will meaningfully increase the time until `lua-language-server` can service +initial requests (completion, location) upon starting as well as time to first diagnostics. +Completion results will include a workspace indexing progress message until the server has finished indexing. + +```lua +require'lspconfig'.lua_ls.setup { + settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = {'vim'}, + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = vim.api.nvim_get_runtime_file("", true), + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = { + enable = false, + }, + }, + }, +} +``` + +See `lua-language-server`'s [documentation](https://github.com/luals/lua-language-server/blob/master/locale/en-us/setting.lua) for an explanation of the above fields: +* [Lua.runtime.path](https://github.com/luals/lua-language-server/blob/076dd3e5c4e03f9cef0c5757dfa09a010c0ec6bf/locale/en-us/setting.lua#L5-L13) +* [Lua.workspace.library](https://github.com/luals/lua-language-server/blob/076dd3e5c4e03f9cef0c5757dfa09a010c0ec6bf/locale/en-us/setting.lua#L77-L78) + +]], + default_config = { + root_dir = [[root_pattern(".luarc.json", ".luarc.jsonc", ".luacheckrc", ".stylua.toml", "stylua.toml", "selene.toml", "selene.yml", ".git")]], + }, + }, +} |
