fix: lsp references now work

This commit is contained in:
Martin Larsson 2026-04-11 14:55:35 +02:00
parent dab09b0cf6
commit 6f695cee9f

View file

@ -20,8 +20,8 @@ for name, type in vim.fs.dir(lsp_dir) do
end end
local lsp_pick_ns = vim.api.nvim_create_namespace("lsp_pick") local lsp_pick_ns = vim.api.nvim_create_namespace("lsp_pick")
local function lsp_pick(scope) local function lsp_pick(fn)
vim.lsp.buf[scope]({ local opts = {
on_list = function(options) on_list = function(options)
if #options.items == 1 then if #options.items == 1 then
local item = options.items[1] local item = options.items[1]
@ -51,7 +51,7 @@ local function lsp_pick(scope)
end end
MiniPick.start({ MiniPick.start({
source = { source = {
name = string.format("LSP (%s)", scope), name = "LSP",
items = options.items, items = options.items,
show = function(buf_id, items_to_show, query) show = function(buf_id, items_to_show, query)
MiniPick.default_show(buf_id, items_to_show, query) MiniPick.default_show(buf_id, items_to_show, query)
@ -74,7 +74,8 @@ local function lsp_pick(scope)
}, },
}) })
end, end,
}) }
fn(opts)
end end
vim.lsp.enable(servers) vim.lsp.enable(servers)
@ -100,11 +101,11 @@ vim.api.nvim_create_autocmd("LspAttach", {
n = { n = {
{ "K", function() vim.lsp.buf.hover() end, { buf = bufnr } }, { "K", function() vim.lsp.buf.hover() end, { buf = bufnr } },
{ "<leader>a", function() vim.lsp.buf.code_action() end, { buf = bufnr } }, { "<leader>a", function() vim.lsp.buf.code_action() end, { buf = bufnr } },
{ "gd", function() lsp_pick("definition") end, { buf = bufnr } }, { "gd", function() lsp_pick(vim.lsp.buf.definition) end, { buf = bufnr } },
{ "gD", function() lsp_pick("declaration") end, { buf = bufnr } }, { "gD", function() lsp_pick(vim.lsp.buf.declaration) end, { buf = bufnr } },
{ "gr", function() lsp_pick("references") end, { buf = bufnr, nowait = true } }, { "gr", function() lsp_pick(function(opts) vim.lsp.buf.references(nil, opts) end) end, { buf = bufnr, nowait = true } },
{ "gi", function() lsp_pick("implementation") end, { buf = bufnr } }, { "gi", function() lsp_pick(vim.lsp.buf.implementation) end, { buf = bufnr } },
{ "gt", function() lsp_pick("type_definition") end, { buf = bufnr } }, { "gt", function() lsp_pick(vim.lsp.buf.type_definition) end, { buf = bufnr } },
}, },
i = { i = {
{ "<C-s>", function() vim.lsp.buf.signature_help() end, { buf = bufnr } }, { "<C-s>", function() vim.lsp.buf.signature_help() end, { buf = bufnr } },