fix(lsp): schedule call to vim.lsp.start for async root_dir (#31998)

When `root_dir` is a function it can (and often will) call the provided
callback function in a fast API context (e.g. in the `on_exit` handler
of `vim.system`). When the callback function is executed we should
ensure that it runs vim.lsp.start on the main event loop.
This commit is contained in:
Gregory Anders
2025-01-14 08:19:54 -06:00
committed by GitHub
parent f1c45fc7a4
commit e8a6c1b021
2 changed files with 33 additions and 26 deletions

View File

@ -513,7 +513,9 @@ local function lsp_enable_callback(bufnr)
---@param root_dir string
config.root_dir(function(root_dir)
config.root_dir = root_dir
start(config)
vim.schedule(function()
start(config)
end)
end)
else
start(config)