From e55ae08e9d0f085223a9ac310aeb2dc16a9db9a1 Mon Sep 17 00:00:00 2001 From: ray-x Date: Wed, 6 Apr 2022 06:47:47 +1000 Subject: [PATCH] bugfix #163 defination not found --- lua/navigator.lua | 5 +---- lua/navigator/reference.lua | 8 ++++++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lua/navigator.lua b/lua/navigator.lua index cb0f8cb..03639aa 100755 --- a/lua/navigator.lua +++ b/lua/navigator.lua @@ -143,10 +143,6 @@ local extend_config = function(opts) if next(opts) == nil then return end - if opts.lsp and opts.lsp.servers then - require('navigator.lspclient.clients').add_servers(opts.lsp.servers) - opts.lsp.server = nil - end for key, value in pairs(opts) do if _NgConfigValues[key] == nil then warn( @@ -227,6 +223,7 @@ M.setup = function(cfg) vim.cmd([[autocmd FileType,BufEnter * lua require'navigator.lspclient.clients'.on_filetype()]]) -- BufWinEnter BufNewFile,BufRead ? require('navigator.lazyloader').init() require('navigator.lspclient.clients').setup(_NgConfigValues) + require('navigator.reference') require('navigator.definition') require('navigator.hierarchy') diff --git a/lua/navigator/reference.lua b/lua/navigator/reference.lua index 6efdfbc..1e65f5e 100644 --- a/lua/navigator/reference.lua +++ b/lua/navigator/reference.lua @@ -153,6 +153,10 @@ local async_ref = function() ref_params.context = { includeDeclaration = false } lsp.call_async('textDocument/definition', ref_params, function(err, result, ctx, config) trace(err, result, ctx, config) + if err ~= nil or result == nil then + log('failed to get def', err, result, ctx, config) + result = {} + end for i = 1, #result do if result[i].range == nil and result[i].targetRange then result[i].range = result[i].targetRange @@ -166,6 +170,10 @@ local async_ref = function() ref_view(err, result, ctx, config) end) -- return asyncresult, canceller lsp.call_async('textDocument/references', ref_params, function(err, result, ctx, config) + if err ~= nil or result == nil then + log('failed to get ref', err, result, ctx, config) + result = {} + end trace(err, result, ctx, config) results.references = { error = err, result = result, ctx = ctx, config = config } ctx = ctx or {}