aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/lspconfig/server_configurations/nim_langserver.lua29
-rw-r--r--lua/lspconfig/server_configurations/nimls.lua8
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)