#447 Support zsh in the shell linter
This commit is contained in:
parent
80a16668c9
commit
b4667a0432
2 changed files with 56 additions and 3 deletions
|
@ -38,7 +38,7 @@ function! ale_linters#sh#shell#Handle(buffer, lines) abort
|
|||
"
|
||||
" bash: line 13: syntax error near unexpected token `d'
|
||||
" sh: 11: Syntax error: "(" unexpected
|
||||
let l:pattern = '^[^:]\+: \%(\w\+ \|\)\(\d\+\): \(.\+\)'
|
||||
let l:pattern = '\v(line |: ?)(\d+): (.+)$'
|
||||
let l:output = []
|
||||
|
||||
for l:line in a:lines
|
||||
|
@ -48,8 +48,8 @@ function! ale_linters#sh#shell#Handle(buffer, lines) abort
|
|||
continue
|
||||
endif
|
||||
|
||||
let l:line = l:match[1] + 0
|
||||
let l:text = l:match[2]
|
||||
let l:line = l:match[2] + 0
|
||||
let l:text = l:match[3]
|
||||
let l:type = 'E'
|
||||
|
||||
call add(l:output, {
|
||||
|
|
53
test/handler/test_shell_handler.vader
Normal file
53
test/handler/test_shell_handler.vader
Normal file
|
@ -0,0 +1,53 @@
|
|||
After:
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The shell handler should parse lines correctly):
|
||||
runtime ale_linters/sh/shell.vim
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'bufnr': 347,
|
||||
\ 'lnum': 13,
|
||||
\ 'text': 'syntax error near unexpected token d',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'bufnr': 347,
|
||||
\ 'lnum': 7,
|
||||
\ 'text': 'line 42: line 36:',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'bufnr': 347,
|
||||
\ 'lnum': 11,
|
||||
\ 'text': 'Syntax error: "(" unexpected',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'bufnr': 347,
|
||||
\ 'lnum': 95,
|
||||
\ 'text': 'parse error near `out=$(( $1 / 1024. )...',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'bufnr': 347,
|
||||
\ 'lnum': 22,
|
||||
\ 'text': ':11: :33: :44:',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'bufnr': 347,
|
||||
\ 'lnum': 9,
|
||||
\ 'text': '`done'' unexpected',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#sh#shell#Handle(347, [
|
||||
\ 'bash: line 13: syntax error near unexpected token d',
|
||||
\ 'bash: line 7: line 42: line 36:',
|
||||
\ 'sh: 11: Syntax error: "(" unexpected',
|
||||
\ 'qfm:95: parse error near `out=$(( $1 / 1024. )...',
|
||||
\ 'qfm:22: :11: :33: :44:',
|
||||
\ 'foo.sh: syntax error at line 9: `done'' unexpected',
|
||||
\ ])
|
Reference in a new issue