#852 - Capture error codes for checkstyle

This commit is contained in:
w0rp 2017-11-18 18:29:12 +00:00
parent 49ccfb1a00
commit 7455e2e97d
2 changed files with 15 additions and 22 deletions

View File

@ -2,27 +2,17 @@
" Description: checkstyle for Java files
function! ale_linters#java#checkstyle#Handle(buffer, lines) abort
let l:patterns = [
\ '\v\[(WARN|ERROR)\] .*:(\d+):(\d+): (.*)',
\ '\v\[(WARN|ERROR)\] .*:(\d+): (.*)',
\]
let l:pattern = '\v\[(WARN|ERROR)\] [a-zA-Z]?:?[^:]+:(\d+):(\d+)?:? (.*) \[(.+)\]$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:patterns)
let l:args = {
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'type': l:match[1] is? 'WARN' ? 'W' : 'E',
\ 'lnum': l:match[2] + 0,
\ 'type': l:match[1] =~? 'WARN' ? 'W' : 'E'
\ }
let l:col = l:match[3] + 0
if l:col > 0
let l:args['col'] = l:col
let l:args['text'] = l:match[4]
else
let l:args['text'] = l:match[3]
endif
call add(l:output, l:args)
\ 'col': l:match[3] + 0,
\ 'text': l:match[4],
\ 'code': l:match[5],
\})
endfor
return l:output

View File

@ -9,17 +9,20 @@ Execute(The checkstyle handler should parse lines correctly):
\ [
\ {
\ 'lnum': 101,
\ 'text': "'method def rcurly' has incorrect indentation level 4, expected level should be 2. [Indentation]",
\ 'col': 0,
\ 'text': '''method def rcurly'' has incorrect indentation level 4, expected level should be 2.',
\ 'code': 'Indentation',
\ 'type': 'W',
\ },
\ {
\ 'lnum': 63,
\ 'col': 3,
\ 'text': "Missing a Javadoc comment. [JavadocMethod]",
\ 'text': 'Missing a Javadoc comment.',
\ 'code': 'JavadocMethod',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#java#checkstyle#Handle(666, [
\ "[WARN] whatever:101: 'method def rcurly' has incorrect indentation level 4, expected level should be 2. [Indentation]",
\ "[WARN] whatever:63:3: Missing a Javadoc comment. [JavadocMethod]",
\ '[WARN] whatever:101: ''method def rcurly'' has incorrect indentation level 4, expected level should be 2. [Indentation]',
\ '[WARN] whatever:63:3: Missing a Javadoc comment. [JavadocMethod]',
\ ])