diff options
| -rw-r--r-- | CUSTOM_SERVERS.md | 4 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/filetype_map.lua | 4 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/metadata.lua | 3 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/installers/go.lua | 22 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/arduino_language_server/init.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/efm/init.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/golangci_lint_ls/init.lua | 18 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/gopls/init.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/jsonnet_ls/init.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/sqls/init.lua | 2 |
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 @@ -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), }, |
