diff options
| author | Ilia Choly <ilia.choly@gmail.com> | 2023-06-09 21:00:04 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-10 09:00:04 +0800 |
| commit | 179803f537807fff5b5961a2b3efd9e7ddac54a2 (patch) | |
| tree | 13b5f041b556435352842c7462fb8bc3a33be5c6 | |
| parent | docs: update server_configurations.md (diff) | |
| download | nvim-lspconfig-179803f537807fff5b5961a2b3efd9e7ddac54a2.tar nvim-lspconfig-179803f537807fff5b5961a2b3efd9e7ddac54a2.tar.gz nvim-lspconfig-179803f537807fff5b5961a2b3efd9e7ddac54a2.tar.bz2 nvim-lspconfig-179803f537807fff5b5961a2b3efd9e7ddac54a2.tar.lz nvim-lspconfig-179803f537807fff5b5961a2b3efd9e7ddac54a2.tar.xz nvim-lspconfig-179803f537807fff5b5961a2b3efd9e7ddac54a2.tar.zst nvim-lspconfig-179803f537807fff5b5961a2b3efd9e7ddac54a2.zip | |
feat(gopls): attach previous lsp instance for GOMODCACHE (#2661)
| -rw-r--r-- | lua/lspconfig/server_configurations/gopls.lua | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lua/lspconfig/server_configurations/gopls.lua b/lua/lspconfig/server_configurations/gopls.lua index fa84c40c..fd470beb 100644 --- a/lua/lspconfig/server_configurations/gopls.lua +++ b/lua/lspconfig/server_configurations/gopls.lua @@ -1,10 +1,19 @@ local util = require 'lspconfig.util' +local mod_cache = vim.trim(vim.fn.system 'go env GOMODCACHE') + return { default_config = { cmd = { 'gopls' }, filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' }, root_dir = function(fname) + -- see: https://github.com/neovim/nvim-lspconfig/issues/804 + if fname:sub(1, #mod_cache) == mod_cache then + local clients = vim.lsp.get_active_clients { name = 'gopls' } + if #clients > 0 then + return clients[#clients].config.root_dir + end + end return util.root_pattern('go.work', 'go.mod', '.git')(fname) end, single_file_support = true, |
