diff options
| -rw-r--r-- | lua/lspconfig/server_configurations/nim_langserver.lua | 29 | ||||
| -rw-r--r-- | lua/lspconfig/server_configurations/nimls.lua | 8 |
2 files changed, 36 insertions, 1 deletions
diff --git a/lua/lspconfig/server_configurations/nim_langserver.lua b/lua/lspconfig/server_configurations/nim_langserver.lua new file mode 100644 index 00000000..3a9877b3 --- /dev/null +++ b/lua/lspconfig/server_configurations/nim_langserver.lua @@ -0,0 +1,29 @@ +local util = require 'lspconfig.util' +local bin_name = 'nimlangserver' +local cmd = { bin_name } + +if vim.fn.has 'win32' == 1 then + cmd = { 'cmd.exe', '/C', bin_name } +end + +return { + default_config = { + cmd = cmd, + filetypes = { 'nim' }, + root_dir = function(fname) + return util.root_pattern '*.nimble'(fname) or util.find_git_ancestor(fname) + end, + single_file_support = true, + }, + docs = { + description = [[ +https://github.com/nim-lang/langserver + + +`nim-langserver` can be installed via the `nimble` package manager: +```sh +nimble install nimlangserver +``` + ]], + }, +} diff --git a/lua/lspconfig/server_configurations/nimls.lua b/lua/lspconfig/server_configurations/nimls.lua index 3c1aeb2b..82540afa 100644 --- a/lua/lspconfig/server_configurations/nimls.lua +++ b/lua/lspconfig/server_configurations/nimls.lua @@ -1,8 +1,14 @@ local util = require 'lspconfig.util' +local bin_name = 'nimlsp' +local cmd = { bin_name } + +if vim.fn.has 'win32' == 1 then + cmd = { 'cmd.exe', '/C', bin_name } +end return { default_config = { - cmd = { 'nimlsp' }, + cmd = cmd, filetypes = { 'nim' }, root_dir = function(fname) return util.root_pattern '*.nimble'(fname) or util.find_git_ancestor(fname) |
