Fix #694 - Ignore BEGIN failed errors for Perl only for certain errors
This commit is contained in:
parent
3828ea5b26
commit
1917e9157c
@ -17,6 +17,11 @@ function! ale_linters#perl#perl#GetCommand(buffer) abort
|
|||||||
\ . ' %t'
|
\ . ' %t'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
let s:begin_failed_skip_pattern = '\v' . join([
|
||||||
|
\ '^Compilation failed in require',
|
||||||
|
\ '^Can''t locate',
|
||||||
|
\], '|')
|
||||||
|
|
||||||
function! ale_linters#perl#perl#Handle(buffer, lines) abort
|
function! ale_linters#perl#perl#Handle(buffer, lines) abort
|
||||||
let l:pattern = '\(.\+\) at \(.\+\) line \(\d\+\)'
|
let l:pattern = '\(.\+\) at \(.\+\) line \(\d\+\)'
|
||||||
let l:output = []
|
let l:output = []
|
||||||
@ -28,7 +33,11 @@ function! ale_linters#perl#perl#Handle(buffer, lines) abort
|
|||||||
let l:type = 'E'
|
let l:type = 'E'
|
||||||
|
|
||||||
if ale#path#IsBufferPath(a:buffer, l:match[2])
|
if ale#path#IsBufferPath(a:buffer, l:match[2])
|
||||||
\&& l:text !=# 'BEGIN failed--compilation aborted'
|
\ && (
|
||||||
|
\ l:text !=# 'BEGIN failed--compilation aborted'
|
||||||
|
\ || empty(l:output)
|
||||||
|
\ || match(l:output[-1].text, s:begin_failed_skip_pattern) < 0
|
||||||
|
\ )
|
||||||
call add(l:output, {
|
call add(l:output, {
|
||||||
\ 'lnum': l:line,
|
\ 'lnum': l:line,
|
||||||
\ 'text': l:text,
|
\ 'text': l:text,
|
||||||
|
@ -36,3 +36,17 @@ Execute(The Perl linter should complain about failing to locate modules):
|
|||||||
\ 'Can''t locate JustOneDb.pm in @INC (you may need to install the JustOneDb module) (@INC contains: /home/local/sean/work/PostgreSQL/6616/../../../../lib /home/local/sean/work/PostgreSQL/6616/lib lib /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at - line 23.',
|
\ 'Can''t locate JustOneDb.pm in @INC (you may need to install the JustOneDb module) (@INC contains: /home/local/sean/work/PostgreSQL/6616/../../../../lib /home/local/sean/work/PostgreSQL/6616/lib lib /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at - line 23.',
|
||||||
\ 'BEGIN failed--compilation aborted at - line 23.',
|
\ 'BEGIN failed--compilation aborted at - line 23.',
|
||||||
\ ])
|
\ ])
|
||||||
|
|
||||||
|
|
||||||
|
Execute(The Perl linter should complain about failing to locate modules):
|
||||||
|
AssertEqual
|
||||||
|
\ [
|
||||||
|
\ {'lnum': '8', 'type': 'E', 'text': 'BEGIN failed--compilation aborted'},
|
||||||
|
\ {'lnum': '10', 'type': 'E', 'text': 'BEGIN failed--compilation aborted'}
|
||||||
|
\ ],
|
||||||
|
\ ale_linters#perl#perl#Handle(bufnr(''), [
|
||||||
|
\ 'Unable to build `ro` accessor for slot `path` in `App::CPANFileUpdate` because the slot cannot be found. at /extlib/Method/Traits.pm line 189.',
|
||||||
|
\ 'BEGIN failed--compilation aborted at - line 8.',
|
||||||
|
\ 'Unable to build `ro` accessor for slot `path` in `App::CPANFileUpdate` because the slot cannot be found. at /extlib/Method/Traits.pm line 189.',
|
||||||
|
\ 'BEGIN failed--compilation aborted at - line 10.',
|
||||||
|
\ ])
|
||||||
|
Loading…
Reference in New Issue
Block a user