summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/lsp/response.vim8
-rw-r--r--test/lsp/test_read_lsp_diagnostics.vader35
2 files changed, 41 insertions, 2 deletions
diff --git a/autoload/ale/lsp/response.vim b/autoload/ale/lsp/response.vim
index 13219ef6..5a431287 100644
--- a/autoload/ale/lsp/response.vim
+++ b/autoload/ale/lsp/response.vim
@@ -59,6 +59,14 @@ function! ale#lsp#response#ReadTSServerDiagnostics(response) abort
let l:loclist_item.nr = l:diagnostic.code
endif
+ if get(l:diagnostic, 'category') is# 'warning'
+ let l:loclist_item.type = 'W'
+ endif
+
+ if get(l:diagnostic, 'category') is# 'suggestion'
+ let l:loclist_item.type = 'I'
+ 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 3e637418..444272aa 100644
--- a/test/lsp/test_read_lsp_diagnostics.vader
+++ b/test/lsp/test_read_lsp_diagnostics.vader
@@ -121,7 +121,8 @@ Execute(ale#lsp#response#ReadDiagnostics() should handle multiple messages):
\ ]}})
Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle tsserver responses):
- AssertEqual [
+ AssertEqual
+ \ [
\ {
\ 'type': 'E',
\ 'nr': 2365,
@@ -131,5 +132,35 @@ Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle tsserver respon
\ 'end_lnum': 1,
\ 'end_col': 17,
\ },
- \],
+ \ ],
\ ale#lsp#response#ReadTSServerDiagnostics({"seq":0,"type":"event","event":"semanticDiag","body":{"file":"/bar/foo.ts","diagnostics":[{"start":{"line":1,"offset":11},"end":{"line":1,"offset":17},"text":"Operator ''+'' cannot be applied to types ''3'' and ''{}''.","code":2365}]}})
+
+Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle warnings from tsserver):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 27,
+ \ 'col': 3,
+ \ 'nr': 2515,
+ \ 'end_lnum': 27,
+ \ 'type': 'W',
+ \ 'end_col': 14,
+ \ 'text': 'Calls to ''console.log'' are not allowed. (no-console)',
+ \ }
+ \ ],
+ \ ale#lsp#response#ReadTSServerDiagnostics({"seq":0,"type":"event","event":"semanticDiag","body":{"file":"<removed>","diagnostics":[{"start":{"line":27,"offset":3},"end":{"line":27,"offset":14},"text":"Calls to 'console.log' are not allowed. (no-console)","code":2515,"category":"warning","source":"tslint"}]}})
+
+Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle suggestions from tsserver):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 27,
+ \ 'col': 3,
+ \ 'nr': 2515,
+ \ 'end_lnum': 27,
+ \ 'type': 'I',
+ \ 'end_col': 14,
+ \ 'text': 'Some info',
+ \ }
+ \ ],
+ \ ale#lsp#response#ReadTSServerDiagnostics({"seq":0,"type":"event","event":"semanticDiag","body":{"file":"<removed>","diagnostics":[{"start":{"line":27,"offset":3},"end":{"line":27,"offset":14},"text":"Some info","code":2515,"category":"suggestion","source":"tslint"}]}})