summaryrefslogtreecommitdiff
path: root/ale_linters/perl
AgeCommit message (Collapse)Author
2019-02-22#2132 - Replace all uses of foo_callback with foow0rp
2018-12-16Use non-greedy matching instead of looking for the commaMark Grimes
2018-12-14Update the perl-linter's l:pattern to catch missing errorsMark Grimes
In some situations, errors reported by `perl -c` can have multiple listings of "at <file> line <number>". If the l:pattern is changed to use non-greedy matching it will also match these. For example: ``` use strict; use DateTime; $asdf=1; ``` Results in: ``` Global symbol "$asdf" requires explicit package name (did you forget to declare "my $asdf"?) at /Users/mgrimes/t.pl line 3, <DATA> line 1. /Users/mgrimes/t.pl had compilation errors. ``` I am not 100% sure why `perl -c` generates errors with the extra "file line <num>". It only happens in some versions of perl when certain modules are used.
2018-09-06Fix #1866 - Handle empty output from Perlw0rp
2018-09-04Improve ALE project style checkingw0rp
* The project style linter now runs while you type. * Now the scripts for checking the project require blank lines. * Many style issues have been found and fixed.
2018-08-02Simplify the code for most linters and tests with closuresw0rp
2018-05-28Fix #1611 - Fix perlcritic escaping on Windowsw0rp
2018-03-02[WIP] Begin to distinguish between Perl warnings and errors (#933)Olaf Alders
* If a Perl script compiles, there are only warnings and no errors * Let the first Perl error or warning win. Take the following example: *** sub foo { my $thing; *** This might have the following messages when we compile it: Missing right curly or square bracket at warning.pl line 7, at end of line syntax error at warning.pl line 7, at EOF warning.pl had compilation errors. With the current behaviour, we just get a "syntax error" message, which isn't all that helpful. With this patch we get "Missing right curly or square bracket". * Fix variable scope and pattern matching syntax * Use named variable to enhance clarity when matching Perl output * Add more tests for Perl linter * Remove unnecessary parens * Simplify check for pattern match
2017-12-02Escape the perl executable, and cover the callbacks with testsw0rp
2017-12-02Revert "Fix #1186 - Use -w by default for Perl, which does not execute code"w0rp
This reverts commit f5fc746d00a8b8e0aaac1904ce97ad7eb52e1b24.
2017-12-02Fix #1186 - Use -w by default for Perl, which does not execute codew0rp
2017-11-11perlcritic: all issues are warningsEddie Lebow
Perlcritic is a style checker, not a syntax validator. This change was originally proposed by @RsrchBoy in https://github.com/w0rp/ale/pull/784.
2017-08-11Ban !=# and !=? from the codebasew0rp
2017-08-08Ban use of ==# or ==? in the codebase, and prefer is# or is? insteadw0rp
2017-06-29Add profile, other options to the perlcritic linter (#675)Chris Weyl
* Add profile, other options to the perlcritic linter
2017-06-25Fix #694 - Ignore BEGIN failed errors for Perl only for certain errorsw0rp
2017-06-22Fix #676 - Fix handling of Perl errorsw0rp
2017-06-11Perlcritic column number and rule names (#640)Steven Humphrey
* Add column number to perlcritic linting output This returns the column number of the perlcritic error so that ale can show the column in addition to the line where perlcritic found an error. * Add perlcritic configuration for rule names This adds a configuration setting so that the name of the perlcritic rule is shown [Rule::Name] after the error message. This is useful to lookup the rule failure. * Add a vader test for perlcritic#GetCommand
2017-06-06Fix #625 Ignore Perl errors from other filesw0rp
2017-05-30Remove -X flag from perl defaults.Olaf Alders
"-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.
2017-04-18Add a function for getting matches, and use it to simplify a lot of codew0rp
2017-04-16#427 Implement buffer variable overrides for all linter optionsw0rp
2017-03-30Remove 'col' from linters where it is hardcoded to 1 (#434)Adriaan Zonnenberg
* Remove 'col' from linters where it is hardcoded to 1 When 'col' is 1, the first column will get highlighted for no reason. It should be 0 (which is the default). In the scalac linter there was also a check about the outcome of `stridx`. It would set l:col to 0 if it was -1, and then it uses `'col': l:col + 1` to convert the outcome of `stridx` to the actual column number. This will make 'col' equals 1 when there is no match. We can remove the check because `-1 + 1 = 0`. * Remove outdated comments about vcol vcol was added as a default, and the loclists that follow these comments do not contain 'vcol' anymore
2017-03-11FIX #344 - Add options to Perl linterPaul Johnson
Conflicts: doc/ale.txt
2017-02-26Copy all loclist items returned from handlers, and set up defaults for ↵w0rp
convenience
2017-01-22Add a script for custom checks to enforce using the abort flag for functions ↵w0rp
and trailing whitespace, and fix existing issues.
2017-01-03Fix typo in perlcritic linter dictionaryIan Good
The linter validation logic was checking for `stdout`, `stderr`, or `both`, resulting in an exception being thrown when loading the perlcritic linter.
2016-10-21Add support for dot-seperate linters, improve linter testsBjorn Neergaard
This PR first and formost implements support for dot-seperate filetypes, a very trivial change. This closes #132 But more importantly, this PR vastly improves the test quality for `ale#linter#Get`. It enables us to reset the state of ale's internal linter cache, to facilitate better testing, as well as making use of mocked linters instead of depending on linters on disk (which may change). In addition, a dummy linter is defined to test the autoloading behavior. Header guards were removed from all linters as: * A: ale won't try and load linters if they already exist in memory * B: we can't reset state for testing if they can't be loaded again
2016-10-11Use explicit scope in all ale_lintersBjorn Neergaard
vint -s is now clean
2016-10-10First pass at optimizing ale to autoload (#80)Bjorn Neergaard
* First pass at optimizing ale to autoload First off, the structure/function names should be revised a bit, but I will wait for @w0rp's input before unifying the naming style. Second off, the docs probably need some more work, I just did some simple find-and-replace work. With that said, this pull brings major performance gains for ale. On my slowest system, fully loading ale and all its code takes around 150ms. I have moved all of ale's autoload-able code to autoload/, and in addition, implemented lazy-loading of linters. This brings load time on that same system down to 5ms. The only downside of lazy loading is that `g:ale_linters` cannot be changed at runtime; however, it also speeds up performance at runtime by simplfying the logic greatly. Please let me know what you think! Closes #59 * Address Travis/Vint errors For some reason, ale isn't running vint for me... * Incorporate feedback, make fixes Lazy-loading logic is much improved. * Add header comments; remove incorrect workaround * Remove unneeded plugin guards * Fix lazy-loading linter logic Set the wrong variable.... * Fix capitialization
2016-10-09Add support for perl and perlcriticVincent Lequertier