diff --git a/native_configs/neovim/init.lua b/native_configs/neovim/init.lua index f04cdc8..366a7d2 100644 --- a/native_configs/neovim/init.lua +++ b/native_configs/neovim/init.lua @@ -958,42 +958,20 @@ local setup = { } end, ["gopls"] = function() - local util = require 'lspconfig.util' - local mod_cache = nil - - require('lspconfig').gopls.setup { - { - -- NOTE: might just change to `nix run nixpkgs#gopls` for simplicity here - 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 = util.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 = 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, - }, - 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")]], + local lspconfig = require('lspconfig') + lspconfig.gopls.setup { + cmd = { "gopls" }, + settings = { + gopls = { + analyses = { + unusedparams = true, + }, + staticcheck = true, }, - } + }, + root_dir = lspconfig.util.root_pattern('.git', 'go.mod'), + on_attach = on_attach, + capabilities = capabilities, } end }