From 9c9e1d639c28d14204a23ad60f7f1fffd6f0c592 Mon Sep 17 00:00:00 2001 From: jdhao Date: Thu, 12 Aug 2021 00:12:07 +0800 Subject: [PATCH] Add sumneko_lua LSP --- lua/config/lsp.lua | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index eae789f..1728c5d 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -108,6 +108,42 @@ lspconfig.vimls.setup{ } } +local sumneko_binary_path = vim.fn.exepath('lua-language-server') +if vim.g.is_mac > 0 or vim.g.is_linux > 0 and sumneko_binary_path ~= '' then + local sumneko_root_path = vim.fn.fnamemodify(sumneko_binary_path, ':h:h:h') + + 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 { + on_attach = on_attach, + cmd = {sumneko_binary_path, "-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, + }, + }, + }, + } +end + -- Change diagnostic signs. vim.fn.sign_define('LspDiagnosticsSignError', { text = "✗", texthl = "LspDiagnosticsDefaultError" }) vim.fn.sign_define('LspDiagnosticsSignWarning', { text = "!", texthl = "LspDiagnosticsDefaultWarning" })