mirror of
https://github.com/neovim/neovim.git
synced 2025-10-21 17:21:49 +00:00
fix(lsp): call on_list()
even for single location (#25830)
Problem: Currently there is no way of customizing behavior of `declaration`, `definition`, `typeDefinition`, and `implementation` methods in `vim.lsp.buf` when LSP server returns `Location`. Instead, cursor jumps to that location directly. Solution: Normalize LSP response to be `Location[]` for those four cases.
This commit is contained in:

committed by
GitHub

parent
c1a93285d2
commit
adbe7f3683
@@ -62,7 +62,8 @@ end
|
||||
---
|
||||
---@param options table|nil additional options
|
||||
--- - reuse_win: (boolean) Jump to existing window if buffer is already open.
|
||||
--- - on_list: (function) handler for list results. See |lsp-on-list-handler|
|
||||
--- - on_list: (function) |lsp-on-list-handler| replacing the default handler.
|
||||
--- Called for any non-empty result.
|
||||
function M.declaration(options)
|
||||
local params = util.make_position_params()
|
||||
request_with_options(ms.textDocument_declaration, params, options)
|
||||
@@ -72,7 +73,8 @@ end
|
||||
---
|
||||
---@param options table|nil additional options
|
||||
--- - reuse_win: (boolean) Jump to existing window if buffer is already open.
|
||||
--- - on_list: (function) handler for list results. See |lsp-on-list-handler|
|
||||
--- - on_list: (function) |lsp-on-list-handler| replacing the default handler.
|
||||
--- Called for any non-empty result.
|
||||
function M.definition(options)
|
||||
local params = util.make_position_params()
|
||||
request_with_options(ms.textDocument_definition, params, options)
|
||||
@@ -82,7 +84,8 @@ end
|
||||
---
|
||||
---@param options table|nil additional options
|
||||
--- - reuse_win: (boolean) Jump to existing window if buffer is already open.
|
||||
--- - on_list: (function) handler for list results. See |lsp-on-list-handler|
|
||||
--- - on_list: (function) |lsp-on-list-handler| replacing the default handler.
|
||||
--- Called for any non-empty result.
|
||||
function M.type_definition(options)
|
||||
local params = util.make_position_params()
|
||||
request_with_options(ms.textDocument_typeDefinition, params, options)
|
||||
@@ -92,7 +95,8 @@ end
|
||||
--- quickfix window.
|
||||
---
|
||||
---@param options table|nil additional options
|
||||
--- - on_list: (function) handler for list results. See |lsp-on-list-handler|
|
||||
--- - on_list: (function) |lsp-on-list-handler| replacing the default handler.
|
||||
--- Called for any non-empty result.
|
||||
function M.implementation(options)
|
||||
local params = util.make_position_params()
|
||||
request_with_options(ms.textDocument_implementation, params, options)
|
||||
|
Reference in New Issue
Block a user