diff options
author | tsjordan-eng <55999897+tsjordan-eng@users.noreply.github.com> | 2021-09-03 07:31:17 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-03 22:31:17 +0900 |
commit | b9fdb91e9294b091a56a9da0b8ae705490cd95c6 (patch) | |
tree | 9775fa05ebbeaa5352aefe4691162381e8d93740 /autoload | |
parent | d53a085096306c890897385692693ee653aaddce (diff) | |
download | ale-b9fdb91e9294b091a56a9da0b8ae705490cd95c6.zip |
Cppcheck backwards compat 1.34 (#3887)
* Add support for cppcheck 1.34
* Add cppcheck 1.34 tests, correct pattern
Co-authored-by: Tyler S. Jordan <tsjorda@sandia.gov>
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/ale/handlers/cppcheck.vim | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/autoload/ale/handlers/cppcheck.vim b/autoload/ale/handlers/cppcheck.vim index b70ae1bf..a07d0aed 100644 --- a/autoload/ale/handlers/cppcheck.vim +++ b/autoload/ale/handlers/cppcheck.vim @@ -43,21 +43,25 @@ endfunction function! ale#handlers#cppcheck#HandleCppCheckFormat(buffer, lines) abort " Look for lines like the following. " - "test.cpp:974:6: error: Array 'n[3]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]\ + "test.cpp:974:6: error:inconclusive Array 'n[3]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]\ " n[3]=3; " ^ - let l:pattern = '\v^(\f+):(\d+):(\d+): (\w+): (.*) \[(\w+)\]\' + "" OR if cppcheck doesn't support {column} or {inconclusive:text}: + "test.cpp:974:{column}: error:{inconclusive:inconclusive} Array 'n[3]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]\ + " n[3]=3; + " ^ + let l:pattern = '\v(\f+):(\d+):(\d+|\{column\}): (\w+):(\{inconclusive:inconclusive\})? ?(.*) \[(\w+)\]\' let l:output = [] for l:match in ale#util#GetMatches(a:lines, l:pattern) if ale#path#IsBufferPath(a:buffer, l:match[1]) call add(l:output, { \ 'lnum': str2nr(l:match[2]), - \ 'col': str2nr(l:match[3]), + \ 'col': match(l:match[3],'{column}') >= 0 ? 1 : str2nr(l:match[3]), \ 'type': l:match[4] is# 'error' ? 'E' : 'W', \ 'sub_type': l:match[4] is# 'style' ? 'style' : '', - \ 'text': l:match[5], - \ 'code': l:match[6] + \ 'text': l:match[6], + \ 'code': l:match[7] \}) endif endfor |