From 522d56557b00246286d803425751a4334f3a94a5 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Mon, 15 Jul 2024 20:05:47 +0100 Subject: Update lspconfig, add indent-blankline indent-blankline is probably old because I've actually been using it for ages, but I have a strict if-it-ain't-broke policy, so I'm not going to update it. lspconfig *was* broke though with nvim 0.10, so now it's fixed. --- .../lua/lspconfig/server_configurations/gopls.lua | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 start/lspconfig-0.1.8/lua/lspconfig/server_configurations/gopls.lua (limited to 'start/lspconfig-0.1.8/lua/lspconfig/server_configurations/gopls.lua') diff --git a/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/gopls.lua b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/gopls.lua new file mode 100644 index 0000000..aceb38d --- /dev/null +++ b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/gopls.lua @@ -0,0 +1,37 @@ +local util = require 'lspconfig.util' +local async = require 'lspconfig.async' +local mod_cache = nil + +return { + default_config = { + cmd = { 'gopls' }, + filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' }, + root_dir = function(fname) + -- see: https://github.com/neovim/nvim-lspconfig/issues/804 + if not mod_cache then + local result = async.run_command { 'go', 'env', 'GOMODCACHE' } + if result and result[1] then + mod_cache = vim.trim(result[1]) + end + end + if fname:sub(1, #mod_cache) == mod_cache then + local clients = util.get_lsp_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, + }, + docs = { + description = [[ +https://github.com/golang/tools/tree/master/gopls + +Google's lsp server for golang. +]], + default_config = { + root_dir = [[root_pattern("go.work", "go.mod", ".git")]], + }, + }, +} -- cgit v1.2.3