Support strings in data field of error responses
This commit is contained in:
parent
d22b9bf1a6
commit
021f59b3f4
2 changed files with 19 additions and 4 deletions
|
@ -105,12 +105,18 @@ function! ale#lsp#response#GetErrorMessage(response) abort
|
|||
return ''
|
||||
endif
|
||||
|
||||
" Include the traceback as details, if it's there.
|
||||
let l:traceback = get(get(a:response.error, 'data', {}), 'traceback', [])
|
||||
" Include the traceback or error data as details, if present.
|
||||
let l:error_data = get(a:response.error, 'data', {})
|
||||
|
||||
if type(l:error_data) is type('')
|
||||
let l:message .= "\n" . l:error_data
|
||||
else
|
||||
let l:traceback = get(l:error_data, 'traceback', [])
|
||||
|
||||
if type(l:traceback) is type([]) && !empty(l:traceback)
|
||||
let l:message .= "\n" . join(l:traceback, "\n")
|
||||
endif
|
||||
endif
|
||||
|
||||
return l:message
|
||||
endfunction
|
||||
|
|
|
@ -63,3 +63,12 @@ Execute(Messages with tracebacks should be handled):
|
|||
\ },
|
||||
\ },
|
||||
\})
|
||||
|
||||
Execute(Messages with string data should be handled):
|
||||
AssertEqual "xyz\nUncaught Exception", ale#lsp#response#GetErrorMessage({
|
||||
\ 'error': {
|
||||
\ 'code': -32602,
|
||||
\ 'message': 'xyz',
|
||||
\ 'data': 'Uncaught Exception',
|
||||
\ },
|
||||
\})
|
||||
|
|
Reference in a new issue