mirror of
https://github.com/neovim/neovim.git
synced 2025-10-21 17:21:49 +00:00
feat(lsp): add bufnr option to lsp.start (#20473)
This commit is contained in:

committed by
GitHub

parent
c651152a9d
commit
b075f49d92
@@ -825,6 +825,8 @@ start({config}, {opts}) *vim.lsp.start()*
|
|||||||
Predicate used to decide if a client should be re-used.
|
Predicate used to decide if a client should be re-used.
|
||||||
Used on all running clients. The default implementation
|
Used on all running clients. The default implementation
|
||||||
re-uses a client if name and root_dir matches.
|
re-uses a client if name and root_dir matches.
|
||||||
|
• bufnr (number) Buffer handle to attach to if starting or
|
||||||
|
re-using a client (0 for current).
|
||||||
|
|
||||||
Return: ~
|
Return: ~
|
||||||
(number|nil) client_id
|
(number|nil) client_id
|
||||||
|
@@ -860,6 +860,9 @@ end
|
|||||||
--- Used on all running clients.
|
--- Used on all running clients.
|
||||||
--- The default implementation re-uses a client if name
|
--- The default implementation re-uses a client if name
|
||||||
--- and root_dir matches.
|
--- and root_dir matches.
|
||||||
|
--- - bufnr (number)
|
||||||
|
--- Buffer handle to attach to if starting or re-using a
|
||||||
|
--- client (0 for current).
|
||||||
---@return number|nil client_id
|
---@return number|nil client_id
|
||||||
function lsp.start(config, opts)
|
function lsp.start(config, opts)
|
||||||
opts = opts or {}
|
opts = opts or {}
|
||||||
@@ -871,7 +874,10 @@ function lsp.start(config, opts)
|
|||||||
if not config.name and type(config.cmd) == 'table' then
|
if not config.name and type(config.cmd) == 'table' then
|
||||||
config.name = config.cmd[1] and vim.fs.basename(config.cmd[1]) or nil
|
config.name = config.cmd[1] and vim.fs.basename(config.cmd[1]) or nil
|
||||||
end
|
end
|
||||||
local bufnr = api.nvim_get_current_buf()
|
local bufnr = opts.bufnr
|
||||||
|
if bufnr == nil or bufnr == 0 then
|
||||||
|
bufnr = api.nvim_get_current_buf()
|
||||||
|
end
|
||||||
for _, clients in ipairs({ uninitialized_clients, lsp.get_active_clients() }) do
|
for _, clients in ipairs({ uninitialized_clients, lsp.get_active_clients() }) do
|
||||||
for _, client in pairs(clients) do
|
for _, client in pairs(clients) do
|
||||||
if reuse_client(client, config) then
|
if reuse_client(client, config) then
|
||||||
|
Reference in New Issue
Block a user