mirror of
https://github.com/dense-analysis/ale
synced 2025-01-10 00:09:37 +00:00
2a5a7baffc
This is achieved by switching to JSON, which makes it much easier to avoid confusion between an error message and the next one. It also spares us from having to deal with regular expressions, and eliminates some edge cases that no longer need to be tested.
52 lines
1.3 KiB
Plaintext
52 lines
1.3 KiB
Plaintext
Before:
|
|
call ale#test#SetDirectory('/testplugin/test')
|
|
|
|
runtime ale_linters/php/phpstan.vim
|
|
|
|
After:
|
|
Restore
|
|
|
|
call ale#test#RestoreDirectory()
|
|
call ale#linter#Reset()
|
|
|
|
Execute(Output without errors should be parsed correctly):
|
|
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
|
|
|
|
AssertEqual
|
|
\ [],
|
|
\ ale_linters#php#phpstan#Handle(bufnr(''), [
|
|
\ '{"totals":{"errors":0,"file_errors":0},"files":[],"errors":[]}',
|
|
\ ])
|
|
|
|
Execute(Output with some errors should be parsed correctly):
|
|
call ale#test#SetFilename('phpstan-test-files/foo/test.php')
|
|
|
|
AssertEqual
|
|
\ [
|
|
\ {
|
|
\ 'lnum': 9,
|
|
\ 'text': 'Call to method format() on an unknown class DateTimeImutable.',
|
|
\ 'type': 'E'
|
|
\ },
|
|
\ {
|
|
\ 'lnum': 16,
|
|
\ 'text': 'Sample message.',
|
|
\ 'type': 'E'
|
|
\ },
|
|
\ {
|
|
\ 'lnum': 192,
|
|
\ 'text': 'Invalid command testCommand.',
|
|
\ 'type': 'E'
|
|
\ }
|
|
\ ],
|
|
\ ale_linters#php#phpstan#Handle(bufnr(''), [json_encode(
|
|
\ {
|
|
\ "totals":{"errors": 0, "file_errors": 11},
|
|
\ "files":{expand('%:p'): {"errors": 3, "messages": [
|
|
\ {"message": "Call to method format() on an unknown class DateTimeImutable.", "line":9},
|
|
\ {"message": "Sample message.", "line":16},
|
|
\ {"message": "Invalid command testCommand.", "line": 192}
|
|
\ ]}}
|
|
\ },
|
|
\)])
|