diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim index 4dbc6cb..5a10999 100644 --- a/ale_linters/java/javac.vim +++ b/ale_linters/java/javac.vim @@ -86,7 +86,7 @@ function! ale_linters#java#javac#Handle(buffer, lines) abort " Main.java:16: error: ';' expected let l:pattern = '\v^.*:(\d+): (.+):(.+)$' - let l:symbol_pattern = '\v^ +symbol: *(class) +([^ ]+)' + 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]) diff --git a/test/handler/test_javac_handler.vader b/test/handler/test_javac_handler.vader index 2c0723b..d190ab7 100644 --- a/test/handler/test_javac_handler.vader +++ b/test/handler/test_javac_handler.vader @@ -27,6 +27,11 @@ Execute(The javac handler should handle cannot find symbol errors): \ 'text': 'warning: some warning', \ 'type': 'W', \ }, + \ { + \ 'lnum': 42, + \ 'text': 'error: cannot find symbol: bar()', + \ 'type': 'E', + \ }, \ ], \ ale_linters#java#javac#Handle(347, [ \ '/tmp/vLPr4Q5/33/foo.java:1: error: some error', @@ -41,5 +46,9 @@ Execute(The javac handler should handle cannot find symbol errors): \ ' symbol: class BadName2', \ ' location: class Bar', \ '/tmp/vLPr4Q5/33/foo.java:37: warning: some warning', - \ '4 errors', + \ '/tmp/vLPr4Q5/264/foo.java:42: error: cannot find symbol', + \ ' this.bar();', + \ ' ^', + \ ' symbol: method bar()', + \ '5 errors', \ ])