mirror of
https://github.com/neovim/neovim.git
synced 2026-04-19 05:50:39 +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:
@@ -1460,7 +1460,8 @@ function M.selection_range(direction, timeout_ms)
|
||||
timeout_ms = timeout_ms or 1000
|
||||
local result, err = lsp.buf_request_sync(0, method, params, timeout_ms)
|
||||
if err then
|
||||
lsp.log.error('selectionRange request failed: ' .. err)
|
||||
local err_message = type(err) == 'table' and lsp.rpc.format_rpc_error(err) or err
|
||||
lsp.log.error('selectionRange request failed: ' .. err_message)
|
||||
return
|
||||
end
|
||||
if not result or not result[client.id] or not result[client.id].result then
|
||||
|
||||
Reference in New Issue
Block a user