Extract error code from message

This commit is contained in:
Franco Victorio 2017-12-05 16:02:15 -03:00
parent 57e1b03435
commit 85e0bd3314
2 changed files with 15 additions and 8 deletions

View file

@ -5,7 +5,7 @@ function! ale_linters#solidity#solhint#Handle(buffer, lines) abort
" Matches patterns like the following: " Matches patterns like the following:
" /path/to/file/file.sol: line 1, col 10, Error - 'addOne' is defined but never used. (no-unused-vars) " /path/to/file/file.sol: line 1, col 10, Error - 'addOne' is defined but never used. (no-unused-vars)
let l:pattern = '\v^[^:]+: line (\d+), col (\d+), (Error|Warning) - (.*)$' let l:pattern = '\v^[^:]+: line (\d+), col (\d+), (Error|Warning) - (.*) \((.*)\)$'
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)
@ -14,7 +14,8 @@ function! ale_linters#solidity#solhint#Handle(buffer, lines) abort
\ 'lnum': l:match[1] + 0, \ 'lnum': l:match[1] + 0,
\ 'col': l:match[2] + 0, \ 'col': l:match[2] + 0,
\ 'text': l:match[4], \ 'text': l:match[4],
\ 'type': l:isError ? 'E' : 'W' \ 'code': l:match[5],
\ 'type': l:isError ? 'E' : 'W',
\}) \})
endfor endfor

View file

@ -10,37 +10,43 @@ Execute(The vint handler should parse error messages correctly):
\ { \ {
\ 'lnum': 1, \ 'lnum': 1,
\ 'col': 17, \ 'col': 17,
\ 'text': 'Compiler version must be fixed (compiler-fixed)', \ 'text': 'Compiler version must be fixed',
\ 'code': 'compiler-fixed',
\ 'type': 'W', \ 'type': 'W',
\ }, \ },
\ { \ {
\ 'lnum': 4, \ 'lnum': 4,
\ 'col': 8, \ 'col': 8,
\ 'text': 'Use double quotes for string literals (quotes)', \ 'text': 'Use double quotes for string literals',
\ 'code': 'quotes',
\ 'type': 'E', \ 'type': 'E',
\ }, \ },
\ { \ {
\ 'lnum': 5, \ 'lnum': 5,
\ 'col': 8, \ 'col': 8,
\ 'text': 'Use double quotes for string literals (quotes)', \ 'text': 'Use double quotes for string literals',
\ 'code': 'quotes',
\ 'type': 'E', \ 'type': 'E',
\ }, \ },
\ { \ {
\ 'lnum': 13, \ 'lnum': 13,
\ 'col': 3, \ 'col': 3,
\ 'text': 'Expected indentation of 4 spaces but found 2 (indent)', \ 'text': 'Expected indentation of 4 spaces but found 2',
\ 'code': 'indent',
\ 'type': 'E', \ 'type': 'E',
\ }, \ },
\ { \ {
\ 'lnum': 14, \ 'lnum': 14,
\ 'col': 3, \ 'col': 3,
\ 'text': 'Expected indentation of 4 spaces but found 2 (indent)', \ 'text': 'Expected indentation of 4 spaces but found 2',
\ 'code': 'indent',
\ 'type': 'E', \ 'type': 'E',
\ }, \ },
\ { \ {
\ 'lnum': 47, \ 'lnum': 47,
\ 'col': 3, \ 'col': 3,
\ 'text': 'Function order is incorrect, public function can not go after internal function. (func-order)', \ 'text': 'Function order is incorrect, public function can not go after internal function.',
\ 'code': 'func-order',
\ 'type': 'E', \ 'type': 'E',
\ }, \ },
\ ], \ ],