Handle LSP codes for %code% in message formats

fixes #1767
This commit is contained in:
Fred Emmott 2018-07-30 15:19:59 -07:00
parent 16d0c52d24
commit 2768bf15ba
No known key found for this signature in database
GPG Key ID: 06C22A9D789FCA28
5 changed files with 27 additions and 5 deletions

View File

@ -47,8 +47,13 @@ function! ale#lsp#response#ReadDiagnostics(response) abort
endif
if has_key(l:diagnostic, 'code')
if type(l:diagnostic.code) == v:t_string
let l:loclist_item.code = l:diagnostic.code
elseif type(l:diagnostic.code) == v:t_number && l:diagnostic.code != -1
let l:loclist_item.code = string(l:diagnostic.code)
let l:loclist_item.nr = l:diagnostic.code
endif
endif
call add(l:loclist, l:loclist_item)
endfor
@ -70,8 +75,13 @@ function! ale#lsp#response#ReadTSServerDiagnostics(response) abort
\}
if has_key(l:diagnostic, 'code')
if type(l:diagnostic.code) == v:t_string
let l:loclist_item.code = l:diagnostic.code
elseif type(l:diagnostic.code) == v:t_number && l:diagnostic.code != -1
let l:loclist_item.code = string(l:diagnostic.code)
let l:loclist_item.nr = l:diagnostic.code
endif
endif
if get(l:diagnostic, 'category') is# 'warning'
let l:loclist_item.type = 'W'

View File

@ -2318,6 +2318,12 @@ ale#linter#Define(filetype, linter) *ale#linter#Define()*
`type` - Defaults to `'E'`.
`nr` - Defaults to `-1`.
Numeric error code. If `nr` is not `-1`, `code` should have
the same value.
`code` - No default.
String error code.
`executable` A |String| naming the executable itself which
will be run. This value will be used to check if the
program requested is installed or not.

View File

@ -18,7 +18,7 @@ Execute(ale#lsp#response#ReadDiagnostics() should handle errors):
\ 'col': 11,
\ 'end_lnum': 5,
\ 'end_col': 16,
\ 'nr': 'some-error',
\ 'code': 'some-error',
\ }
\ ],
\ ale#lsp#response#ReadDiagnostics({'params': {'uri': 'filename.ts', 'diagnostics': [
@ -39,7 +39,7 @@ Execute(ale#lsp#response#ReadDiagnostics() should handle warnings):
\ 'col': 4,
\ 'end_lnum': 2,
\ 'end_col': 4,
\ 'nr': 'some-warning',
\ 'code': 'some-warning',
\ }
\ ],
\ ale#lsp#response#ReadDiagnostics({'params': {'uri': 'filename.ts', 'diagnostics': [
@ -60,7 +60,7 @@ Execute(ale#lsp#response#ReadDiagnostics() should treat messages with missing se
\ 'col': 11,
\ 'end_lnum': 5,
\ 'end_col': 16,
\ 'nr': 'some-error',
\ 'code': 'some-error',
\ }
\ ],
\ ale#lsp#response#ReadDiagnostics({'params': {'uri': 'filename.ts', 'diagnostics': [
@ -126,6 +126,7 @@ Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle tsserver respon
\ {
\ 'type': 'E',
\ 'nr': 2365,
\ 'code': '2365',
\ 'text': 'Operator ''''+'''' cannot be applied to types ''''3'''' and ''''{}''''.',
\ 'lnum': 1,
\ 'col': 11,
@ -142,6 +143,7 @@ Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle warnings from t
\ 'lnum': 27,
\ 'col': 3,
\ 'nr': 2515,
\ 'code': '2515',
\ 'end_lnum': 27,
\ 'type': 'W',
\ 'end_col': 14,
@ -157,6 +159,7 @@ Execute(ale#lsp#response#ReadTSServerDiagnostics() should handle suggestions fro
\ 'lnum': 27,
\ 'col': 3,
\ 'nr': 2515,
\ 'code': '2515',
\ 'end_lnum': 27,
\ 'type': 'I',
\ 'end_col': 14,

View File

@ -62,6 +62,7 @@ Execute(tsserver syntax error responses should be handled correctly):
\ 'col': 14,
\ 'vcol': 0,
\ 'nr': 1005,
\ 'code': '1005',
\ 'type': 'E',
\ 'text': ''','' expected.',
\ 'valid': 1,
@ -135,6 +136,7 @@ Execute(tsserver semantic error responses should be handled correctly):
\ 'col': 14,
\ 'vcol': 0,
\ 'nr': 1005,
\ 'code': '1005',
\ 'type': 'E',
\ 'text': 'Some semantic error',
\ 'valid': 1,

View File

@ -190,6 +190,7 @@ Execute(Buffer ignore lists should be applied for tsserver):
\ 'lnum': 2,
\ 'col': 14,
\ 'nr': 1005,
\ 'code': '1005',
\ 'type': 'E',
\ 'end_col': 15,
\ 'end_lnum': 2,