#852 - Capture error codes for cpplint

This commit is contained in:
w0rp 2017-11-15 11:28:16 +00:00
parent ff5c6b0509
commit 8f80708da6
2 changed files with 11 additions and 8 deletions

View file

@ -4,14 +4,15 @@
function! ale#handlers#cpplint#HandleCppLintFormat(buffer, lines) abort function! ale#handlers#cpplint#HandleCppLintFormat(buffer, lines) abort
" Look for lines like the following. " Look for lines like the following.
" test.cpp:5: Estra space after ( in function call [whitespace/parents] [4] " test.cpp:5: Estra space after ( in function call [whitespace/parents] [4]
let l:pattern = '^.\{-}:\(\d\+\): \(.\+\)' let l:pattern = '^.\{-}:\(\d\+\): *\(.\+\) *\[\(.*/.*\)\] '
let l:output = [] let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern) for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, { call add(l:output, {
\ 'lnum': l:match[1] + 0, \ 'lnum': l:match[1] + 0,
\ 'col': 0, \ 'col': 0,
\ 'text': l:match[2], \ 'text': join(split(l:match[2])),
\ 'code': l:match[3],
\ 'type': 'W', \ 'type': 'W',
\}) \})
endfor endfor

View file

@ -1,6 +1,9 @@
Before: Before:
runtime ale_linters/cpp/cpplint.vim runtime ale_linters/cpp/cpplint.vim
After:
call ale#linter#Reset()
Execute(cpplint warnings from included files should be parsed correctly): Execute(cpplint warnings from included files should be parsed correctly):
AssertEqual AssertEqual
@ -8,20 +11,19 @@ Execute(cpplint warnings from included files should be parsed correctly):
\ { \ {
\ 'lnum': 5, \ 'lnum': 5,
\ 'col': 0, \ 'col': 0,
\ 'text': ' Estra space after ( in function call [whitespace/parents] [4]', \ 'text': 'Extra space after ( in function call',
\ 'code': 'whitespace/parents',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ { \ {
\ 'lnum': 120, \ 'lnum': 120,
\ 'col': 0, \ 'col': 0,
\ 'text': ' At least two spaces is best between code and comments [whitespace/comments] [2]', \ 'text': 'At least two spaces is best between code and comments',
\ 'code': 'whitespace/comments',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ ], \ ],
\ ale#handlers#cpplint#HandleCppLintFormat(347, [ \ ale#handlers#cpplint#HandleCppLintFormat(347, [
\ 'test.cpp:5: Estra space after ( in function call [whitespace/parents] [4]', \ 'test.cpp:5: Extra space after ( in function call [whitespace/parents] [4]',
\ 'keymap_keys.hpp:120: At least two spaces is best between code and comments [whitespace/comments] [2]', \ 'keymap_keys.hpp:120: At least two spaces is best between code and comments [whitespace/comments] [2]',
\ ]) \ ])
After:
call ale#linter#Reset()