Merge pull request #1720 from MTDL9/fix-error-response-string-data

Fix E712 error in ale#lsp#response#GetErrorMessage when receiving string primitives in the error.data field
This commit is contained in:
w0rp 2018-07-13 09:30:54 +01:00 committed by GitHub
commit 6d6cd6663e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 4 deletions

View File

@ -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

View File

@ -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',
\ },
\})