aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/server_configurations/sumneko_lua.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-11-24 23:01:07 -0500
committerMichael Lingelbach <m.j.lbach@gmail.com>2021-11-25 23:46:21 -0500
commit6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e (patch)
tree7f2bf25ca5456b23304295dba8fe0005e85a5c10 /lua/lspconfig/server_configurations/sumneko_lua.lua
parentfix: only set cmd_cwd if filepath exists (#1485) (diff)
downloadnvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar
nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.gz
nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.bz2
nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.lz
nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.xz
nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.tar.zst
nvim-lspconfig-6c2fb86c6a03e20abea5ddd17d735885f0b7cb5e.zip
feat: expose configs
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]],
+ },
+ },
+}