From 51b55e22a4443ea4b90aa8fb45fdc1875586278c Mon Sep 17 00:00:00 2001 From: oaue Date: Fri, 16 Jun 2017 18:34:40 +0200 Subject: [PATCH 1/3] handle column number in javac linter --- ale_linters/java/javac.vim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim index 0b429e055a..2ee5b6fb70 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] From 58594421c0613f244bb385ba1dba10ab59c4797a Mon Sep 17 00:00:00 2001 From: oaue Date: Mon, 19 Jun 2017 08:39:59 +0200 Subject: [PATCH 2/3] Updated tests with column number for javac errors. --- test/handler/test_javac_handler.vader | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/handler/test_javac_handler.vader b/test/handler/test_javac_handler.vader index d190ab7869..2cf32072b4 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', \ }, From b9b95e9f566a93b373d07184138014fa70c7341d Mon Sep 17 00:00:00 2001 From: oaue Date: Mon, 19 Jun 2017 08:39:59 +0200 Subject: [PATCH 3/3] Updated tests with column number for javac errors. --- ale_linters/java/javac.vim | 4 ++-- test/handler/test_javac_handler.vader | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim index 2ee5b6fb70..975308826d 100644 --- a/ale_linters/java/javac.vim +++ b/ale_linters/java/javac.vim @@ -65,8 +65,8 @@ function! ale_linters#java#javac#Handle(buffer, lines) abort 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]) + 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 d190ab7869..2cf32072b4 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', \ },