Merge pull request #1232 from languitar/vale-json

Use JSON output with vale
This commit is contained in:
w0rp 2017-12-18 10:11:57 +00:00 committed by GitHub
commit fdde8af894
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 109 additions and 6 deletions

View file

@ -0,0 +1,36 @@
" Author: Johannes Wienke <languitar@semipol.de>
" Description: output handler for the vale JSON format
function! ale#handlers#vale#GetType(severity) abort
if a:severity is? 'warning'
return 'W'
endif
return 'E'
endfunction
function! ale#handlers#vale#Handle(buffer, lines) abort
try
let l:errors = json_decode(join(a:lines, ''))
catch
return []
endtry
if empty(l:errors)
return []
endif
let l:output = []
for l:error in l:errors[keys(l:errors)[0]]
call add(l:output, {
\ 'lnum': l:error['Line'],
\ 'col': l:error['Span'][0],
\ 'end_col': l:error['Span'][1],
\ 'code': l:error['Check'],
\ 'text': l:error['Message'],
\ 'type': ale#handlers#vale#GetType(l:error['Severity']),
\})
endfor
return l:output
endfunction