mirror of
https://github.com/neovim/neovim.git
synced 2026-07-21 16:41:38 +00:00
refactor(lsp): remove implicit rpc error tostring #38707
Problem: LSP error responses implicitly rely on a custom `__tostring` function (`vim.lsp.rpc.format_rpc_error`) for formatting. This causes errors that are not created via `vim.lsp.rpc.error` to behave inconsistently with those that are. Furthermore, we usually use `log.error` to print these errors, which uses `vim.inspect` under the hood, so the custom `__tostring` provides little benefit. This increases the difficulty of refactoring the code, as it tightly couples RPC error handling with the LSP. Solution: Convert every potential `__tostring` call to an explicit one. Since we don't describe this behavior in the documentation, this should not be a breaking change.
This commit is contained in:
@@ -578,7 +578,9 @@ function Client:initialize()
|
||||
local rpc = self.rpc
|
||||
|
||||
rpc.request('initialize', init_params, function(init_err, result)
|
||||
assert(not init_err, tostring(init_err))
|
||||
if init_err then
|
||||
error(lsp.rpc.format_rpc_error(init_err))
|
||||
end
|
||||
assert(result, 'server sent empty result')
|
||||
rpc.notify('initialized', vim.empty_dict())
|
||||
self.initialized = true
|
||||
|
||||
Reference in New Issue
Block a user