diff options
| author | awy <awy@awy.one> | 2025-10-18 00:10:58 +0300 | 
|---|---|---|
| committer | awy <awy@awy.one> | 2025-10-18 00:10:58 +0300 | 
| commit | abf932d721142a35e01a57ab9187ca35896cb237 (patch) | |
| tree | 2cce67586b1792f33fd703072673b2a0767b473e /.config/nvim/lsp/gopls.lua | |
| parent | de009fd679e10d053fdcc10785f91ad5317449ea (diff) | |
| download | hyprdots-abf932d721142a35e01a57ab9187ca35896cb237.tar.gz | |
revert
Diffstat (limited to '.config/nvim/lsp/gopls.lua')
| -rw-r--r-- | .config/nvim/lsp/gopls.lua | 99 | 
1 files changed, 0 insertions, 99 deletions
diff --git a/.config/nvim/lsp/gopls.lua b/.config/nvim/lsp/gopls.lua deleted file mode 100644 index 558f0a9..0000000 --- a/.config/nvim/lsp/gopls.lua +++ /dev/null @@ -1,99 +0,0 @@ ----@brief ---- ---- https://github.com/golang/tools/tree/master/gopls ---- ---- Google's lsp server for golang. - ---- @class go_dir_custom_args ---- ---- @field envvar_id string ---- ---- @field custom_subdir string? - -local mod_cache = nil -local std_lib = nil - ----@param custom_args go_dir_custom_args ----@param on_complete fun(dir: string | nil) -local function identify_go_dir(custom_args, on_complete) -  local cmd = { 'go', 'env', custom_args.envvar_id } -  vim.system(cmd, { text = true }, function(output) -    local res = vim.trim(output.stdout or '') -    if output.code == 0 and res ~= '' then -      if custom_args.custom_subdir and custom_args.custom_subdir ~= '' then -        res = res .. custom_args.custom_subdir -      end -      on_complete(res) -    else -      vim.schedule(function() -        vim.notify( -          ('[gopls] identify ' .. custom_args.envvar_id .. ' dir cmd failed with code %d: %s\n%s'):format( -            output.code, -            vim.inspect(cmd), -            output.stderr -          ) -        ) -      end) -      on_complete(nil) -    end -  end) -end - ----@return string? -local function get_std_lib_dir() -  if std_lib and std_lib ~= '' then -    return std_lib -  end - -  identify_go_dir({ envvar_id = 'GOROOT', custom_subdir = '/src' }, function(dir) -    if dir then -      std_lib = dir -    end -  end) -  return std_lib -end - ----@return string? -local function get_mod_cache_dir() -  if mod_cache and mod_cache ~= '' then -    return mod_cache -  end - -  identify_go_dir({ envvar_id = 'GOMODCACHE' }, function(dir) -    if dir then -      mod_cache = dir -    end -  end) -  return mod_cache -end - ----@param fname string ----@return string? -local function get_root_dir(fname) -  if mod_cache and fname:sub(1, #mod_cache) == mod_cache then -    local clients = vim.lsp.get_clients({ name = 'gopls' }) -    if #clients > 0 then -      return clients[#clients].config.root_dir -    end -  end -  if std_lib and fname:sub(1, #std_lib) == std_lib then -    local clients = vim.lsp.get_clients({ name = 'gopls' }) -    if #clients > 0 then -      return clients[#clients].config.root_dir -    end -  end -  return vim.fs.root(fname, 'go.work') or vim.fs.root(fname, 'go.mod') or vim.fs.root(fname, '.git') -end - ----@type vim.lsp.Config -return { -  cmd = { 'gopls' }, -  filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' }, -  root_dir = function(bufnr, on_dir) -    local fname = vim.api.nvim_buf_get_name(bufnr) -    get_mod_cache_dir() -    get_std_lib_dir() -    -- see: https://github.com/neovim/nvim-lspconfig/issues/804 -    on_dir(get_root_dir(fname)) -  end, -}  |