summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroaue <pofman@free.fr>2017-06-19 12:45:09 +0200
committerw0rp <w0rp@users.noreply.github.com>2017-06-19 11:45:09 +0100
commitb44bd4e24f0c5cf139c428c1239307f3428a0af4 (patch)
tree0470762697b8ed2159333f82af45f7efed6fcab8
parent66b9d025bb87ed941aeff4ce0c72b4ef9f98d431 (diff)
downloadale-b44bd4e24f0c5cf139c428c1239307f3428a0af4.zip
handle column number in javac linter (#660)
* handle column number in javac linter * Updated tests with column number for javac errors. * Updated tests with column number for javac errors.
-rw-r--r--ale_linters/java/javac.vim7
-rw-r--r--test/handler/test_javac_handler.vader3
2 files changed, 8 insertions, 2 deletions
diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim
index 0b429e05..97530882 100644
--- a/ale_linters/java/javac.vim
+++ b/ale_linters/java/javac.vim
@@ -59,11 +59,14 @@ function! ale_linters#java#javac#Handle(buffer, lines) abort
" Main.java:16: error: ';' expected
let l:pattern = '\v^.*:(\d+): (.+):(.+)$'
+ let l:col_pattern = '\v^(\s*\^)$'
let l:symbol_pattern = '\v^ +symbol: *(class|method) +([^ ]+)'
let l:output = []
- for l:match in ale#util#GetMatches(a:lines, [l:pattern, l:symbol_pattern])
- if empty(l:match[3])
+ for l:match in ale#util#GetMatches(a:lines, [l:pattern, l:col_pattern, l:symbol_pattern])
+ if empty(l:match[2]) && empty(l:match[3])
+ let l:output[-1].col = len(l:match[1])
+ elseif empty(l:match[3])
" Add symbols to 'cannot find symbol' errors.
if l:output[-1].text ==# 'error: cannot find symbol'
let l:output[-1].text .= ': ' . l:match[2]
diff --git a/test/handler/test_javac_handler.vader b/test/handler/test_javac_handler.vader
index d190ab78..2cf32072 100644
--- a/test/handler/test_javac_handler.vader
+++ b/test/handler/test_javac_handler.vader
@@ -14,11 +14,13 @@ Execute(The javac handler should handle cannot find symbol errors):
\ },
\ {
\ 'lnum': 2,
+ \ 'col': 5,
\ 'text': 'error: cannot find symbol: BadName',
\ 'type': 'E',
\ },
\ {
\ 'lnum': 34,
+ \ 'col': 5,
\ 'text': 'error: cannot find symbol: BadName2',
\ 'type': 'E',
\ },
@@ -29,6 +31,7 @@ Execute(The javac handler should handle cannot find symbol errors):
\ },
\ {
\ 'lnum': 42,
+ \ 'col': 11,
\ 'text': 'error: cannot find symbol: bar()',
\ 'type': 'E',
\ },