mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 09:40:06 +08:00
78 lines
2.6 KiB
Lua
78 lines
2.6 KiB
Lua
local configs = require 'lspconfig/configs'
|
|
local util = require 'lspconfig/util'
|
|
|
|
local name = 'sumneko_lua'
|
|
|
|
configs[name] = {
|
|
default_config = {
|
|
filetypes = { 'lua' },
|
|
root_dir = function(fname)
|
|
return util.find_git_ancestor(fname) or util.path.dirname(fname)
|
|
end,
|
|
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-(Standalone)).
|
|
|
|
**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]],
|
|
},
|
|
},
|
|
}
|