diff options
-rw-r--r-- | autoload/ale/lsp/response.vim | 4 | ||||
-rw-r--r-- | test/lsp/test_read_lsp_diagnostics.vader | 21 |
2 files changed, 24 insertions, 1 deletions
diff --git a/autoload/ale/lsp/response.vim b/autoload/ale/lsp/response.vim index 69e88d56..08b36808 100644 --- a/autoload/ale/lsp/response.vim +++ b/autoload/ale/lsp/response.vim @@ -66,6 +66,10 @@ function! ale#lsp#response#ReadDiagnostics(response) abort let l:loclist_item.detail = l:diagnostic.message . "\n" . join(l:related, "\n") endif + if has_key(l:diagnostic, 'source') + let l:loclist_item.detail = printf('[%s] %s', l:diagnostic.source, l:diagnostic.message) + endif + call add(l:loclist, l:loclist_item) endfor diff --git a/test/lsp/test_read_lsp_diagnostics.vader b/test/lsp/test_read_lsp_diagnostics.vader index be50fbe8..a5c5ded3 100644 --- a/test/lsp/test_read_lsp_diagnostics.vader +++ b/test/lsp/test_read_lsp_diagnostics.vader @@ -89,6 +89,26 @@ Execute(ale#lsp#response#ReadDiagnostics() should handle messages without codes) \ }, \ ]}}) +Execute(ale#lsp#response#ReadDiagnostics() should include sources in detail): + AssertEqual [ + \ { + \ 'type': 'E', + \ 'text': 'Something went wrong!', + \ 'detail': '[tslint] Something went wrong!', + \ 'lnum': 10, + \ 'col': 15, + \ 'end_lnum': 12, + \ 'end_col': 23, + \ } + \ ], + \ ale#lsp#response#ReadDiagnostics({'params': {'uri': 'filename.ts', 'diagnostics': [ + \ { + \ 'range': Range(9, 14, 11, 22), + \ 'message': 'Something went wrong!', + \ 'source': 'tslint', + \ } + \ ]}}) + Execute(ale#lsp#response#ReadDiagnostics() should consider -1 to be a meaningless code): AssertEqual [ \ { @@ -108,7 +128,6 @@ Execute(ale#lsp#response#ReadDiagnostics() should consider -1 to be a meaningles \ }, \ ]}}) - Execute(ale#lsp#response#ReadDiagnostics() should handle multiple messages): AssertEqual [ \ { |