diff options
Diffstat (limited to 'lua/lspconfig/server_configurations/sumneko_lua.lua')
| -rw-r--r-- | lua/lspconfig/server_configurations/sumneko_lua.lua | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/lua/lspconfig/server_configurations/sumneko_lua.lua b/lua/lspconfig/server_configurations/sumneko_lua.lua new file mode 100644 index 00000000..d11ff739 --- /dev/null +++ b/lua/lspconfig/server_configurations/sumneko_lua.lua @@ -0,0 +1,73 @@ +local util = require 'lspconfig/util' + +return { + default_config = { + filetypes = { 'lua' }, + root_dir = util.find_git_ancestor, + single_file_support = true, + log_level = vim.lsp.protocol.MessageType.Warning, + settings = { Lua = { telemetry = { enable = false } } }, + }, + docs = { + package_json = 'https://raw.githubusercontent.com/sumneko/vscode-lua/master/package.json', + description = [[ +https://github.com/sumneko/lua-language-server + +Lua language server. + +`lua-language-server` can be installed by following the instructions [here](https://github.com/sumneko/lua-language-server/wiki/Build-and-Run). + +**By default, lua-language-server doesn't have a `cmd` set.** This is because nvim-lspconfig does not make assumptions about your path. You must add the following to your init.vim or init.lua to set `cmd` to the absolute path ($HOME and ~ are not expanded) of your unzipped and compiled lua-language-server. + +```lua +local system_name +if vim.fn.has("mac") == 1 then + system_name = "macOS" +elseif vim.fn.has("unix") == 1 then + system_name = "Linux" +elseif vim.fn.has('win32') == 1 then + system_name = "Windows" +else + print("Unsupported system for sumneko") +end + +-- set the path to the sumneko installation; if you previously installed via the now deprecated :LspInstall, use +local sumneko_root_path = vim.fn.stdpath('cache')..'/lspconfig/sumneko_lua/lua-language-server' +local sumneko_binary = sumneko_root_path.."/bin/"..system_name.."/lua-language-server" + +local runtime_path = vim.split(package.path, ';') +table.insert(runtime_path, "lua/?.lua") +table.insert(runtime_path, "lua/?/init.lua") + +require'lspconfig'.sumneko_lua.setup { + cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}; + settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + -- Setup your lua path + path = runtime_path, + }, + 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, + }, + }, + }, +} +``` +]], + default_config = { + root_dir = [[root_pattern(".git") or bufdir]], + }, + }, +} |
