aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CUSTOM_SERVERS.md4
-rw-r--r--README.md1
-rw-r--r--lua/nvim-lsp-installer/_generated/filetype_map.lua4
-rw-r--r--lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua1
-rw-r--r--lua/nvim-lsp-installer/_generated/metadata.lua3
-rw-r--r--lua/nvim-lsp-installer/installers/go.lua22
-rw-r--r--lua/nvim-lsp-installer/servers/arduino_language_server/init.lua2
-rw-r--r--lua/nvim-lsp-installer/servers/efm/init.lua2
-rw-r--r--lua/nvim-lsp-installer/servers/golangci_lint_ls/init.lua18
-rw-r--r--lua/nvim-lsp-installer/servers/gopls/init.lua2
-rw-r--r--lua/nvim-lsp-installer/servers/init.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/jsonnet_ls/init.lua2
-rw-r--r--lua/nvim-lsp-installer/servers/sqls/init.lua2
13 files changed, 48 insertions, 16 deletions
diff --git a/CUSTOM_SERVERS.md b/CUSTOM_SERVERS.md
index c73c4213..dc3252f2 100644
--- a/CUSTOM_SERVERS.md
+++ b/CUSTOM_SERVERS.md
@@ -24,7 +24,7 @@ available installers that are available out of the box.
- ### Go
- #### `go.package(package: string)`
+ #### `go.packages(packages: string[])`
Returns an installer that installs the provided list of `packages`.
@@ -33,7 +33,7 @@ available installers that are available out of the box.
```lua
local go = require "nvim-lsp-installer.installers.go"
- local installer = go.package "golang.org/x/tools/gopls@latest"
+ local installer = go.packages { "golang.org/x/tools/gopls@latest" }
```
- ### npm
diff --git a/README.md b/README.md
index 6a89216b..b48e22e2 100644
--- a/README.md
+++ b/README.md
@@ -213,6 +213,7 @@ lsp_installer.settings({
| F# | `fsautocomplete` |
| Foam (OpenFOAM) | `foam_ls` |
| Fortran | `fortls` |
+| Go | `golangci_lint_ls` |
| Go | `gopls` |
| Grammarly | `grammarly` |
| GraphQL | `graphql` |
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua
index 8358215f..6486097f 100644
--- a/lua/nvim-lsp-installer/_generated/filetype_map.lua
+++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua
@@ -35,9 +35,9 @@ return {
fsharp = { "fsautocomplete" },
genie = { "vala_ls" },
gitcommit = { "ltex" },
- go = { "gopls" },
+ go = { "golangci_lint_ls", "gopls" },
gohtml = { "tailwindcss" },
- gomod = { "gopls" },
+ gomod = { "golangci_lint_ls", "gopls" },
gotmpl = { "gopls" },
graphql = { "graphql" },
groovy = { "groovyls" },
diff --git a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua
index 995ab5f3..b29792d1 100644
--- a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua
+++ b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua
@@ -13,6 +13,7 @@ return {
d = { "serve_d" },
["f#"] = { "fsautocomplete" },
fortran = { "fortls" },
+ go = { "golangci_lint_ls", "gopls" },
haskell = { "hls" },
java = { "jdtls" },
javascript = { "eslint", "quick_lint_js", "rome", "tsserver" },
diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua
index 5095ae0d..eede9210 100644
--- a/lua/nvim-lsp-installer/_generated/metadata.lua
+++ b/lua/nvim-lsp-installer/_generated/metadata.lua
@@ -91,6 +91,9 @@ return {
fsautocomplete = {
filetypes = { "fsharp" }
},
+ golangci_lint_ls = {
+ filetypes = { "go", "gomod" }
+ },
gopls = {
filetypes = { "go", "gomod", "gotmpl" }
},
diff --git a/lua/nvim-lsp-installer/installers/go.lua b/lua/nvim-lsp-installer/installers/go.lua
index d7857498..bfa7bc54 100644
--- a/lua/nvim-lsp-installer/installers/go.lua
+++ b/lua/nvim-lsp-installer/installers/go.lua
@@ -4,8 +4,8 @@ local process = require "nvim-lsp-installer.process"
local M = {}
----@param package string The Go package to install.
-function M.package(package)
+---@param packages string[] The Go packages to install. The first item in this list will be the recipient of the server version, should the user request a specific one.
+function M.packages(packages)
return installers.pipe {
std.ensure_executables { { "go", "go was not found in path, refer to https://golang.org/doc/install." } },
---@type ServerInstallerFunction
@@ -18,12 +18,20 @@ function M.package(package)
stdio_sink = ctx.stdio_sink,
}
- ctx.receipt:with_primary_source(ctx.receipt.go(package))
+ -- Install the head package
+ do
+ local head_package = packages[1]
+ ctx.receipt:with_primary_source(ctx.receipt.go(head_package))
+ local version = ctx.requested_server_version or "latest"
+ c.run("go", { "install", "-v", ("%s@%s"):format(head_package, version) })
+ end
- local version = ctx.requested_server_version or "latest"
- local pkg = ("%s@%s"):format(package, version)
-
- c.run("go", { "install", "-v", pkg })
+ -- Install secondary packages
+ for i = 2, #packages do
+ local package = packages[i]
+ ctx.receipt:with_secondary_source(ctx.receipt.go(package))
+ c.run("go", { "install", "-v", ("%s@latest"):format(package) })
+ end
c.spawn(callback)
end,
diff --git a/lua/nvim-lsp-installer/servers/arduino_language_server/init.lua b/lua/nvim-lsp-installer/servers/arduino_language_server/init.lua
index f075ef0c..49da467a 100644
--- a/lua/nvim-lsp-installer/servers/arduino_language_server/init.lua
+++ b/lua/nvim-lsp-installer/servers/arduino_language_server/init.lua
@@ -63,7 +63,7 @@ return function(name, root_dir)
local arduino_language_server_installer = installers.branch_context {
context.set_working_dir "arduino-language-server",
- go.package "github.com/arduino/arduino-language-server",
+ go.packages { "github.com/arduino/arduino-language-server" },
}
local clangd_installer = installers.branch_context {
diff --git a/lua/nvim-lsp-installer/servers/efm/init.lua b/lua/nvim-lsp-installer/servers/efm/init.lua
index 415c6d92..c665df7a 100644
--- a/lua/nvim-lsp-installer/servers/efm/init.lua
+++ b/lua/nvim-lsp-installer/servers/efm/init.lua
@@ -7,7 +7,7 @@ return function(name, root_dir)
root_dir = root_dir,
homepage = "https://github.com/mattn/efm-langserver",
languages = {},
- installer = go.package "github.com/mattn/efm-langserver",
+ installer = go.packages { "github.com/mattn/efm-langserver" },
default_options = {
cmd_env = go.env(root_dir),
},
diff --git a/lua/nvim-lsp-installer/servers/golangci_lint_ls/init.lua b/lua/nvim-lsp-installer/servers/golangci_lint_ls/init.lua
new file mode 100644
index 00000000..7dc0156c
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/golangci_lint_ls/init.lua
@@ -0,0 +1,18 @@
+local server = require "nvim-lsp-installer.server"
+local go = require "nvim-lsp-installer.installers.go"
+
+return function(name, root_dir)
+ return server.Server:new {
+ name = name,
+ root_dir = root_dir,
+ homepage = "https://github.com/nametake/golangci-lint-langserver",
+ languages = { "go" },
+ installer = go.packages {
+ "github.com/nametake/golangci-lint-langserver",
+ "github.com/golangci/golangci-lint/cmd/golangci-lint",
+ },
+ default_options = {
+ cmd_env = go.env(root_dir),
+ },
+ }
+end
diff --git a/lua/nvim-lsp-installer/servers/gopls/init.lua b/lua/nvim-lsp-installer/servers/gopls/init.lua
index a8914156..9b1f8c09 100644
--- a/lua/nvim-lsp-installer/servers/gopls/init.lua
+++ b/lua/nvim-lsp-installer/servers/gopls/init.lua
@@ -7,7 +7,7 @@ return function(name, root_dir)
root_dir = root_dir,
homepage = "https://pkg.go.dev/golang.org/x/tools/gopls",
languages = { "go" },
- installer = go.package "golang.org/x/tools/gopls",
+ installer = go.packages { "golang.org/x/tools/gopls" },
default_options = {
cmd_env = go.env(root_dir),
},
diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua
index 2f175a3a..4a5370ab 100644
--- a/lua/nvim-lsp-installer/servers/init.lua
+++ b/lua/nvim-lsp-installer/servers/init.lua
@@ -61,6 +61,7 @@ local CORE_SERVERS = Data.set_of {
"foam_ls",
"fortls",
"fsautocomplete",
+ "golangci_lint_ls",
"gopls",
"grammarly",
"graphql",
diff --git a/lua/nvim-lsp-installer/servers/jsonnet_ls/init.lua b/lua/nvim-lsp-installer/servers/jsonnet_ls/init.lua
index b9c20d42..6ac0f995 100644
--- a/lua/nvim-lsp-installer/servers/jsonnet_ls/init.lua
+++ b/lua/nvim-lsp-installer/servers/jsonnet_ls/init.lua
@@ -7,7 +7,7 @@ return function(name, root_dir)
name = name,
root_dir = root_dir,
homepage = "https://github.com/jdbaldry/jsonnet-language-server",
- installer = go.package "github.com/jdbaldry/jsonnet-language-server",
+ installer = go.packages { "github.com/jdbaldry/jsonnet-language-server" },
default_options = {
-- TODO: use env instead of cmd once https://github.com/neovim/nvim-lspconfig/pull/1559 is merged
cmd = { path.concat { root_dir, "jsonnet-language-server" } },
diff --git a/lua/nvim-lsp-installer/servers/sqls/init.lua b/lua/nvim-lsp-installer/servers/sqls/init.lua
index 4e508eb1..40a11d67 100644
--- a/lua/nvim-lsp-installer/servers/sqls/init.lua
+++ b/lua/nvim-lsp-installer/servers/sqls/init.lua
@@ -7,7 +7,7 @@ return function(name, root_dir)
root_dir = root_dir,
languages = { "sql" },
homepage = "https://github.com/lighttiger2505/sqls",
- installer = go.package "github.com/lighttiger2505/sqls",
+ installer = go.packages { "github.com/lighttiger2505/sqls" },
default_options = {
cmd_env = go.env(root_dir),
},