fa02b1d259
"-X Disables all warnings regardless of use warnings or $^W". See "perldoc perlrun" or http://perldoc.perl.org/perlrun.html With the current defaults, warnings are squashed. For example: $ perl -X -Mwarnings -c -e'BEGIN { 42 + undef }' -e syntax OK $ perl -Mwarnings -c -e'BEGIN { 42 + undef }' Use of uninitialized value in addition (+) at -e line 1. -e syntax OK So, it's not clear from the current defaults whether Ale wants to remove warnings or enable them. As it stands, it's trying to do both and the disabling appears to win. This commit enables warnings by default.
45 lines
1.3 KiB
VimL
45 lines
1.3 KiB
VimL
" Author: Vincent Lequertier <https://github.com/SkySymbol>
|
|
" Description: This file adds support for checking perl syntax
|
|
|
|
let g:ale_perl_perl_executable =
|
|
\ get(g:, 'ale_perl_perl_executable', 'perl')
|
|
|
|
let g:ale_perl_perl_options =
|
|
\ get(g:, 'ale_perl_perl_options', '-c -Mwarnings -Ilib')
|
|
|
|
function! ale_linters#perl#perl#GetExecutable(buffer) abort
|
|
return ale#Var(a:buffer, 'perl_perl_executable')
|
|
endfunction
|
|
|
|
function! ale_linters#perl#perl#GetCommand(buffer) abort
|
|
return ale_linters#perl#perl#GetExecutable(a:buffer)
|
|
\ . ' ' . ale#Var(a:buffer, 'perl_perl_options')
|
|
\ . ' %t'
|
|
endfunction
|
|
|
|
function! ale_linters#perl#perl#Handle(buffer, lines) abort
|
|
let l:pattern = '\(.\+\) at \(.\+\) line \(\d\+\)'
|
|
let l:output = []
|
|
|
|
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
|
let l:line = l:match[3]
|
|
let l:text = l:match[1]
|
|
let l:type = 'E'
|
|
|
|
call add(l:output, {
|
|
\ 'lnum': l:line,
|
|
\ 'text': l:text,
|
|
\ 'type': l:type,
|
|
\})
|
|
endfor
|
|
|
|
return l:output
|
|
endfunction
|
|
|
|
call ale#linter#Define('perl', {
|
|
\ 'name': 'perl',
|
|
\ 'executable_callback': 'ale_linters#perl#perl#GetExecutable',
|
|
\ 'output_stream': 'both',
|
|
\ 'command_callback': 'ale_linters#perl#perl#GetCommand',
|
|
\ 'callback': 'ale_linters#perl#perl#Handle',
|
|
\})
|