From b44bd4e24f0c5cf139c428c1239307f3428a0af4 Mon Sep 17 00:00:00 2001 From: oaue Date: Mon, 19 Jun 2017 12:45:09 +0200 Subject: [PATCH] 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. --- ale_linters/java/javac.vim | 7 +++++-- test/handler/test_javac_handler.vader | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim index 0b429e0..9753088 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 d190ab7..2cf3207 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', \ },