diff options
-rw-r--r-- | ale_linters/php/php.vim | 2 | ||||
-rw-r--r-- | test/test_php_handler.vader | 40 |
2 files changed, 28 insertions, 14 deletions
diff --git a/ale_linters/php/php.vim b/ale_linters/php/php.vim index aa5229cf..6edc66b3 100644 --- a/ale_linters/php/php.vim +++ b/ale_linters/php/php.vim @@ -5,7 +5,7 @@ function! ale_linters#php#php#Handle(buffer, lines) abort " Matches patterns like the following: " " PHP Parse error: syntax error, unexpected ';', expecting ']' in - on line 15 - let l:pattern = 'Parse error:\s\+\(.\{-}unexpected ''\(.\{-}\)''.\{-}\|.*\) in - on line \(\d\+\)' + let l:pattern = '\vParse error:\s+(.+unexpected ''(.+)%(expecting.+)@<!''.*|.+) in - on line (\d+)' let l:output = [] diff --git a/test/test_php_handler.vader b/test/test_php_handler.vader index c3d76079..bf6d45cc 100644 --- a/test/test_php_handler.vader +++ b/test/test_php_handler.vader @@ -1,3 +1,9 @@ +Given (Some invalid lines of PHP): + [foo;] + class Foo { / } + $foo) + ['foo' 'bar'] + Execute(The php handler should parse lines correctly): runtime ale_linters/php/php.vim @@ -5,30 +11,30 @@ Execute(The php handler should parse lines correctly): \ [ \ { \ 'bufnr': 347, - \ 'lnum': 47, - \ 'col': 0, + \ 'lnum': 1, + \ 'col': 5, \ 'text': "syntax error, unexpected ';', expecting ']'", \ 'type': 'E', \ }, \ { \ 'bufnr': 347, - \ 'lnum': 56, - \ 'col': 0, + \ 'lnum': 2, + \ 'col': 13, \ 'text': "syntax error, unexpected '/', expecting function (T_FUNCTION) or const (T_CONST)", \ 'type': 'E', \ }, \ { \ 'bufnr': 347, - \ 'lnum': 13, - \ 'col': 0, + \ 'lnum': 3, + \ 'col': 5, \ 'text': "syntax error, unexpected ')'", \ 'type': 'E', \ }, \ { \ 'bufnr': 347, - \ 'lnum': 5, - \ 'col': 0, - \ 'text': "Invalid numeric literal", + \ 'lnum': 4, + \ 'col': 8, + \ 'text': "syntax error, unexpected ''bar'' (T_CONSTANT_ENCAPSED_STRING), expecting ']'", \ 'type': 'E', \ }, \ { @@ -38,14 +44,22 @@ Execute(The php handler should parse lines correctly): \ 'text': "syntax error, unexpected end of file", \ 'type': 'E', \ }, + \ { + \ 'bufnr': 347, + \ 'lnum': 47, + \ 'col': 0, + \ 'text': "Invalid numeric literal", + \ 'type': 'E', + \ }, \ ], \ ale_linters#php#php#Handle(347, [ \ 'This line should be ignored completely', - \ "PHP Parse error: syntax error, unexpected ';', expecting ']' in - on line 47", - \ "PHP Parse error: syntax error, unexpected '/', expecting function (T_FUNCTION) or const (T_CONST) in - on line 56", - \ "PHP Parse error: syntax error, unexpected ')' in - on line 13", - \ 'PHP Parse error: Invalid numeric literal in - on line 5', + \ "PHP Parse error: syntax error, unexpected ';', expecting ']' in - on line 1", + \ "PHP Parse error: syntax error, unexpected '/', expecting function (T_FUNCTION) or const (T_CONST) in - on line 2", + \ "PHP Parse error: syntax error, unexpected ')' in - on line 3", + \ "PHP Parse error: syntax error, unexpected ''bar'' (T_CONSTANT_ENCAPSED_STRING), expecting ']' in - on line 4", \ 'PHP Parse error: syntax error, unexpected end of file in - on line 21', + \ 'PHP Parse error: Invalid numeric literal in - on line 47', \ ]) After: |