Merge pull request #1815 from fredemmott/lsp-related-information
If present, use new-ish LSP 'relatedInformation' field for :ALEDetail
This commit is contained in:
commit
a366d325a7
@ -55,6 +55,17 @@ function! ale#lsp#response#ReadDiagnostics(response) abort
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if has_key(l:diagnostic, 'relatedInformation')
|
||||||
|
let l:related = deepcopy(l:diagnostic.relatedInformation)
|
||||||
|
call map(l:related, {key, val ->
|
||||||
|
\ ale#path#FromURI(val.location.uri) .
|
||||||
|
\ ':' . (val.location.range.start.line + 1) .
|
||||||
|
\ ':' . (val.location.range.start.character + 1) .
|
||||||
|
\ ":\n\t" . val.message
|
||||||
|
\ })
|
||||||
|
let l:loclist_item.detail = l:diagnostic.message . "\n" . join(l:related, "\n")
|
||||||
|
endif
|
||||||
|
|
||||||
call add(l:loclist, l:loclist_item)
|
call add(l:loclist, l:loclist_item)
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
|
@ -140,6 +140,35 @@ Execute(ale#lsp#response#ReadDiagnostics() should handle multiple messages):
|
|||||||
\ },
|
\ },
|
||||||
\ ]}})
|
\ ]}})
|
||||||
|
|
||||||
|
Execute(ale#lsp#response#ReadDiagnostics() should use relatedInformation for detail):
|
||||||
|
AssertEqual [
|
||||||
|
\ {
|
||||||
|
\ 'type': 'E',
|
||||||
|
\ 'text': 'Something went wrong!',
|
||||||
|
\ 'lnum': 1,
|
||||||
|
\ 'col': 3,
|
||||||
|
\ 'end_lnum': 1,
|
||||||
|
\ 'end_col': 3,
|
||||||
|
\ 'detail': "Something went wrong!\n/tmp/someotherfile.txt:43:80:\n\tmight be this"
|
||||||
|
\ }
|
||||||
|
\ ],
|
||||||
|
\ ale#lsp#response#ReadDiagnostics({'params': {'uri': 'filename.ts', 'diagnostics': [
|
||||||
|
\ {
|
||||||
|
\ 'range': Range(0, 2, 0, 2),
|
||||||
|
\ 'message': 'Something went wrong!',
|
||||||
|
\ 'relatedInformation': [{
|
||||||
|
\ 'message': 'might be this',
|
||||||
|
\ 'location': {
|
||||||
|
\ 'uri': 'file:///tmp/someotherfile.txt',
|
||||||
|
\ 'range': {
|
||||||
|
\ 'start': { 'line': 42, 'character': 79 },
|
||||||
|
\ 'end': { 'line': 142, 'character': 179},
|
||||||
|
\ }
|
||||||
|
\ }
|
||||||
|
\ }]
|
||||||
|
\ }
|
||||||
|
\ ]}})
|
||||||
|
|
||||||
Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle tsserver responses):
|
Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle tsserver responses):
|
||||||
AssertEqual
|
AssertEqual
|
||||||
\ [
|
\ [
|
||||||
|
Loading…
Reference in New Issue
Block a user