summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid LANDREAU <david.landreau@cgi.com>2018-12-09 18:22:50 +0100
committerDavid LANDREAU <david.landreau@cgi.com>2018-12-09 18:22:50 +0100
commitc7292ce892fbf3b6f35c44e1cd44d138160da981 (patch)
tree78c52b69050163fb4de179e336971fc082d3736f
parent9226e13b31474ac17d0c25cd27aa55bff21d55c2 (diff)
downloadale-c7292ce892fbf3b6f35c44e1cd44d138160da981.zip
javac linter: fix handling of error messages containing ':' character
-rw-r--r--ale_linters/java/javac.vim2
-rw-r--r--test/handler/test_javac_handler.vader12
2 files changed, 12 insertions, 2 deletions
diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim
index 63dcdd94..659f7d04 100644
--- a/ale_linters/java/javac.vim
+++ b/ale_linters/java/javac.vim
@@ -92,7 +92,7 @@ function! ale_linters#java#javac#Handle(buffer, lines) abort
" Main.java:13: warning: [deprecation] donaught() in Testclass has been deprecated
" Main.java:16: error: ';' expected
let l:directory = expand('#' . a:buffer . ':p:h')
- let l:pattern = '\v^(.*):(\d+): (.+):(.+)$'
+ let l:pattern = '\v^(.*):(\d+): (.{-1,}):(.+)$'
let l:col_pattern = '\v^(\s*\^)$'
let l:symbol_pattern = '\v^ +symbol: *(class|method) +([^ ]+)'
let l:output = []
diff --git a/test/handler/test_javac_handler.vader b/test/handler/test_javac_handler.vader
index ff4e1631..3dc245af 100644
--- a/test/handler/test_javac_handler.vader
+++ b/test/handler/test_javac_handler.vader
@@ -44,6 +44,13 @@ Execute(The javac handler should handle cannot find symbol errors):
\ 'text': 'error: cannot find symbol: bar()',
\ 'type': 'E',
\ },
+ \ {
+ \ 'filename': ale#path#Simplify('/tmp/vLPr4Q5/33/foo.java'),
+ \ 'lnum': 58,
+ \ 'col': 19,
+ \ 'text': 'error: incompatible types: Bar cannot be converted to Foo',
+ \ 'type': 'E',
+ \ },
\ ],
\ ale_linters#java#javac#Handle(bufnr(''), [
\ '/tmp/vLPr4Q5/33/foo.java:1: error: some error',
@@ -62,7 +69,10 @@ Execute(The javac handler should handle cannot find symbol errors):
\ ' this.bar();',
\ ' ^',
\ ' symbol: method bar()',
- \ '5 errors',
+ \ '/tmp/vLPr4Q5/33/foo.java:58: error: incompatible types: Bar cannot be converted to Foo',
+ \ ' this.setFoo(bar);',
+ \ ' ^',
+ \ '6 errors',
\ ])
Execute(The javac handler should resolve files from different directories):