You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
navigator.lua/lua/navigator/reference.lua

42 lines
1.4 KiB
Lua

3 years ago
local util = require "navigator.util"
local log = util.log
3 years ago
local lsphelper = require "navigator.lspwrapper"
local gui = require "navigator.gui"
local lsp = require "navigator.lspwrapper"
3 years ago
local verbose = require "navigator.util".verbose
3 years ago
-- local log = util.log
-- local partial = util.partial
-- local cwd = vim.fn.getcwd(0)
-- local lsphelper = require "navigator.lspwrapper"
local locations_to_items = lsphelper.locations_to_items
--vim.api.nvim_set_option("navtator_options", {width = 90, height = 60, location = require "navigator.location".center})
-- local options = vim.g.navtator_options or {width = 60, height = 40, location = location.center}
local function ref_hdlr(arg1, api, locations, num, bufnr)
local opts = {}
-- log("arg1", arg1)
-- log(api)
-- log(locations)
3 years ago
-- log("num", num)
-- log("bfnr", bufnr)
if locations == nil or vim.tbl_isempty(locations) then
print "References not found"
return
end
3 years ago
verbose(locations)
3 years ago
local items = locations_to_items(locations)
gui.new_list_view({items = items, api = "Reference"})
3 years ago
end
local async_reference_request = function()
local method = {"textDocument/references"}
local ref_params = vim.lsp.util.make_position_params()
ref_params.context = {includeDeclaration = true}
return lsp.call_async(method[1], ref_params, ref_hdlr) -- return asyncresult, canceller
end
return {
reference_handler = ref_hdlr,
show_reference = async_reference_request
}