commit 0501c5fd0959895b18d8166c6c034cdf1832edf3
parent 1355640d6a19fabc1e74d79b0bd49acf90253445
Author: Maria Solano <majosolano99@gmail.com>
Date: Sun, 1 Feb 2026 04:18:16 -0800
fix(lsp): call `on_list` before reading `loclist` #37645
Problem:
`on_list` is supposed to replace the default list-handler. With the current order of these `if` statements `on_list` won't be called if `loclist` is true.
Solution:
Change the order of the relevant blocks.
Diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua
@@ -870,12 +870,12 @@ function M.references(context, opts)
bufnr = bufnr,
},
}
- if opts.loclist then
- vim.fn.setloclist(0, {}, ' ', list)
- vim.cmd.lopen()
- elseif opts.on_list then
+ if opts.on_list then
assert(vim.is_callable(opts.on_list), 'on_list is not a function')
opts.on_list(list)
+ elseif opts.loclist then
+ vim.fn.setloclist(0, {}, ' ', list)
+ vim.cmd.lopen()
else
vim.fn.setqflist({}, ' ', list)
vim.cmd('botright copen')