summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <w0rp@users.noreply.github.com>2019-05-08 09:50:12 +0100
committerw0rp <devw0rp@gmail.com>2019-05-08 09:51:46 +0100
commit9778a6e5b57e8a93c164091db0a11762e61db92a (patch)
tree8c4dabbf3b475d2bdb2fe3b2dd2a5d2107cbeb7c
parent0927634916746cc993b5c5378aac2a5281cc1227 (diff)
downloadale-9778a6e5b57e8a93c164091db0a11762e61db92a.zip
Merge pull request #2134 from oaue/master
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 7ca95ba5..3883783b 100644
--- a/ale_linters/java/javac.vim
+++ b/ale_linters/java/javac.vim
@@ -99,7 +99,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):