aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/server_configurations/sumneko_lua.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lspconfig/server_configurations/sumneko_lua.lua')
-rw-r--r--lua/lspconfig/server_configurations/sumneko_lua.lua73
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]],
+ },
+ },
+}