Commit graph

289 commits

Author SHA1 Message Date
Sven-Hendrik Haase
ff28836616 Add GLSL linter using glslang (#914)
* Add a glslang linter for GLSL
2017-09-08 11:06:47 +01:00
BlahGeek
73d031d7ea Add cuda nvcc linter (#874)
* add cuda nvcc linter
2017-09-07 19:23:58 +01:00
w0rp
c277cdef8c Add an option for ignoring the output of TSLint if a file contains a single blank line 2017-09-06 11:17:21 +01:00
w0rp
6833e01f23 #894 - Replace ugly temporary filenames for Haskell problems with the buffer's basename 2017-09-03 21:53:48 +01:00
Jake Zimmerman
63e8946fc8 Detect and use CM files for smlnj (#884)
* Detect and use CM files for smlnj

* Split into two checkers

- one for CM projects
- one for single SML files

* Fix some typos

* Fix error caught by writing tests

We want to actually use `glob` to search in paths upwards from us.
(Previously we were just searching in the current directory every time!)

* Fix errors from former test run

* Write tests for GetCmFile and GetExecutableSmlnj

* Typo in 'smlnj/' fixture filenames
2017-09-03 19:56:14 +01:00
Jon Parise
f4c5d29c64 Add a linter for Apache Thrift IDL files
This linter works by invoking the `thrift` compiler with the buffer
contents and reporting any parser and code generation issues.

The handler rolls its own output-matching loop because we have the
(unfortunate) requirement of handling error output that spans multiple
lines.

Unit tests cover both the command callback and handler, and there is
initial documentation for all of the option variables.
2017-08-30 11:08:06 -07:00
w0rp
b9cf450684 Set the end column for some Vint problems 2017-08-26 17:23:20 +01:00
Michael
8f8d015dae Add pycodestyle Python linter support (#872)
Add a pycodestyle linter
2017-08-25 12:46:56 +01:00
w0rp
80c7fbcefe Remove some redundant eslint test code 2017-08-22 21:40:00 +01:00
w0rp
a3299bf03a Fix #864 - Use the user's configured executable for phpstan for executable() checks 2017-08-21 18:42:18 +01:00
w0rp
cc02eb8a5a #653 Show errors from other files for mypy 2017-08-20 17:43:42 +01:00
w0rp
7112776d1b #653 Update tslint to set the filename key for problems in other files 2017-08-20 00:05:15 +01:00
Dmitri Vereshchagin
e9e1bec772 Update SyntaxErl linter tests 2017-08-19 17:18:48 +03:00
w0rp
342e83db60 Include the ruleName for errors in tslint problems 2017-08-16 10:37:36 +01:00
Scott Bonds
322910dc0b Add linter for Idris (#838)
* Add linter for Idris

* Fix parsing warnings and column ranges in Idris linter

* Make Idris linter configurable. Fix help tag.
2017-08-10 21:09:58 +01:00
Nick James
a3d2fb5688 Add Tcl nagelfar linter 2017-08-02 23:05:19 +01:00
Junegunn Choi
bc1cf285c2
Rubocop: Show cop name 2017-08-02 13:55:54 +09:00
w0rp
fa33faad9e #810 - Handle output which is not JSON in many linters 2017-07-27 00:45:25 +01:00
w0rp
ded1bc14df #810 Ignore output which isn't JSON for brakeman 2017-07-26 23:17:46 +01:00
w0rp
86297a7c65 Fix #804 - Do not run scalac for sbt files 2017-07-26 10:29:46 +01:00
w0rp
a0059cfe03 Fix #795 - Handle GCC errors without column numbers 2017-07-23 00:39:59 +01:00
w0rp
78e37dabb7 Fix #794 - Filter out any preceding lines of Flow output which aren't JSON 2017-07-22 19:21:30 +01:00
w0rp
0b50ebb0f0 Fix #779 - Handle empty output for tslint 2017-07-19 10:26:03 +01:00
w0rp
235fc90e22 Fix #308 - Check Dart files with dartanalyzer 2017-07-18 23:57:33 +01:00
w0rp
aa94d0902a Fix #710 - Show hlint suggestions as info items, and include end line and column numbers 2017-07-18 13:14:02 +01:00
Matthew Turland
da410caff8 Add yaml swaglint linter (#771)
* Add yaml swaglint linter
2017-07-17 20:28:21 +01:00
Dmitri Vereshchagin
1aea6a34ff Add SyntaxErl linter
These changes add [SyntaxErl][1] integration.  SyntaxErl is a syntax
checker tool for Erlang.

[1]: https://github.com/ten0s/syntaxerl
2017-07-16 15:35:21 +03:00
Kevin Kays
4c50aec79c Add scalastyle linter (#766)
* Add support for scalastyle

* Add scalastyle docs

* scalastyle support for column numbers

* off by one column

* Add tests for scalastyle command and handler

* update readme for scalastyle

* allow full scalastyle options instead of just config file

* fix indentation

* allow scalastyle config file in parent directories by a couple names.

* check for missing match args with empty

* remove echo

* use a for loop
2017-07-13 23:41:01 +01:00
w0rp
b50ae96413 #769 Ignore stderr output and output without JSON we can read for rubocop 2017-07-13 22:47:43 +01:00
Eddie Lebow
dcbb0ffee5 Rubocop: handle empty 'files' array in output
The handler previously assumed there would be at least one entry in the
'files' array in the output JSON. It looks like this in the normal case:

  "files":[{"path":"app/models/image.rb","offenses":[]}]

But if RuboCop's config excludes the specified input files, causing no
files to be linted, the output is emptier:

  "files":[]

This change causes the handler to treat that case correctly, and also
exit early if the reported offense_count is zero.
2017-07-12 19:53:58 -04:00
w0rp
5885954197 Fix #760 - Report problems with configuration files for rubocop 2017-07-12 22:41:06 +01:00
Eddie Lebow
bc32e24203 Add rails_best_practices handler (resolves #655) (#751)
* Move FindRailsRoot() to more general location

* Add rails_best_practices handler (resolves #655)

* Update documentation for rails_best_practices

Also add brakeman to *ale* documentation.

* rails_best_practices: allow overriding the executable

* rails_best_practices: format help correctly

* rails_best_practices: capture tool output on Windows
2017-07-12 10:43:47 +01:00
Eddie Lebow
eb79b52a9a Brakeman: Remove unused cache var from tests 2017-07-11 01:30:06 -04:00
w0rp
6a84605c57 Make every test set filenames and switch directories in the same way, and fix some missing escaping for the rubocop linter 2017-07-09 22:43:31 +01:00
Eddie Lebow
ab0e76dbd5 Use rubocop's JSON output format (resolves #339) (#738)
* Use rubocop's JSON output format (resolves #339)

Rubocop's emacs formatter seems to have changed format in some
not-so-ancient version. The JSON formatter should provide a more stable
interface than parsing lines with a regex.

The JSON formatter was introduced in mid-2013, so it should be safe to
assume available in any reasonably-modern environment. The oldest
currently-supported version of ruby (according to ruby-lang.org) was
not supported by rubocop until 2014.

* Rubocop: Use global function for GetType

* Rubocop: Use scope prefix in GetType

* Rubocop: Update command_callback test

* Rubocop: add end_col to Handle
2017-07-09 15:48:04 +01:00
w0rp
836a2cfe3b Fix issues with running individual tests, and get the Vim tests to run on certain machines again 2017-07-09 14:58:21 +01:00
Jonathan Boudreau
7def00d5a9 Use different reporter to support older versions of jscs (#737)
* Use different reporter to support older versions of jscs

* Add test and make more consistent with other code

* Add documentation for jscs

* Add more test coverage
2017-07-08 18:37:21 +01:00
daa84
46225f3bb1 Fix windows path check on rust linter (#736)
* Fix rust linter on windows

* Add windows path test

* Use ale#path#IsBufferPath to compare paths

* Fix errors
2017-07-07 17:03:17 +01:00
w0rp
d9a7364dae #710 - Fix a parsing bug caused by the last fix 2017-07-07 10:59:00 +01:00
w0rp
130928590b #710 - Show warnings as warnings for ghc 2017-07-07 00:28:22 +01:00
w0rp
bb293b297c Fix #216 - Filter out errors for other files for ansible-lint 2017-07-03 23:16:39 +01:00
w0rp
fd6f05c9ea Report exceptions thrown for stylelint 2017-07-03 16:13:10 +01:00
Ryan
2330837747 Adjust output of luacheck linter to include error code (#717)
* linters/lua/luacheck: Show error code in message
2017-07-02 00:20:59 +01:00
Gabriel Sobrinho
29746d492e
Fix brakeman handler when there is no output 2017-07-01 11:18:21 -03:00
w0rp
f984c5fb83 Merge pull request #699 from jwoudenberg/master
Elm linter shows full error ranges
2017-06-27 22:24:48 +01:00
Jasper Woudenberg
72161b82ef Elm linter shows full error ranges 2017-06-27 20:16:29 +02:00
Nick Krichevsky
14cca6d115 Remove style classification from E999 (#696)
* Remove style classification from E999

* Update test_flake8_handler to reflect E999 changes
2017-06-27 15:07:26 +01:00
John Sivak
539a76c5ae Change regex to better handle messages with multiple groups of parentheses. 2017-06-25 20:19:39 -04:00
w0rp
1917e9157c Fix #694 - Ignore BEGIN failed errors for Perl only for certain errors 2017-06-25 21:49:57 +01:00
John Sivak
a9b29fef28 Feature/restore display of symbol (#693)
* Add display of the pylint symbol name after the message.

* Update test to pass.
2017-06-25 18:22:13 +01:00
Jasper Woudenberg
c2f69b7750 Improve elm linter (#637)
* Improve elm linter

Some types of errors do not return nice JSON.
Show them on the first line instead of showing nothing.

* Remove unnecessary properties from elm linter

* Add a vader test for elm-make linter

* Test non-JSON elm-make errors are shown
2017-06-25 17:12:40 +01:00
w0rp
93473a4101 Fix #690 - Filter out errors from other files for Haskell 2017-06-25 17:08:57 +01:00
w0rp
229a1c092a #684 Handle tslint errors without the severity included, and use character instead of position for the columns 2017-06-25 16:40:44 +01:00
w0rp
4eaa990fe8 Fix #684 - Use the JSON format for tslint, for consistency betwen versions, and handling of end line and column numbers 2017-06-25 13:56:51 +01:00
w0rp
fbf8ccb882 Fix #677 - Ignore errors from other files for cppcheck 2017-06-22 14:08:58 +01:00
w0rp
47401a6eda Fix the Perl tests in Docker 2017-06-22 13:51:18 +01:00
w0rp
ce2bfa88eb Fix #676 - Fix handling of Perl errors 2017-06-22 12:37:08 +01:00
w0rp
d2806fad60 Fix the standard and xo handlers so they call the eslint function 2017-06-21 11:15:05 +01:00
w0rp
50d952b07d Print messages about imports used when modules are turned off 2017-06-20 17:38:21 +01:00
w0rp
a105aa90a5 Fix #668 - Support eslint for TypeScript 2017-06-20 10:50:38 +01:00
oaue
b44bd4e24f handle column number in javac linter (#660)
* handle column number in javac linter

* Updated tests with column number for javac errors.

* Updated tests with column number for javac errors.
2017-06-19 11:45:09 +01:00
Pavel Kuropatkin
11e17669d3 TSLint: distinguish warnings from errors (#663)
* TSLint: distinguish warnings from errors

* Test for TSlint warning/error distinguishing code added.
2017-06-18 18:46:34 +01:00
w0rp
c2258e3684 Fix an ansible-lint test 2017-06-14 17:14:04 +01:00
w0rp
07af1799b1 #430 Use the style sub_type for flake8 problems 2017-06-14 16:40:03 +01:00
w0rp
f6b0a28cba Split up the flake8 and ansible-lint handlers 2017-06-14 16:20:30 +01:00
w0rp
f472e04b09 #538 - Set some end column indexes for flake8 2017-06-14 10:51:31 +01:00
w0rp
edddb1910b Fix the stylelint tests to match the changes to the handler 2017-06-07 09:29:53 +01:00
w0rp
eeea72e167 Fix #625 Ignore Perl errors from other files 2017-06-06 20:40:07 +01:00
w0rp
7db805b0cd #482 - Fix Flow handling with relative paths 2017-06-06 20:08:19 +01:00
Jon Gjengset
88948e0ee3 Include span label in rust lints (#601)
* Include span label in rust lints

This turns relatively unhelpful error messages like

    mismatched types

into more expressive messages along the lines of

    mismatched types: expected bool, found integral variable

Fixes #597.

* Exclude rust lint span label if empty

* Use single-quoted strings in vimscript

* Add test for detailed rust errors

* Prune Cargo JSON

* Use matching error file name

* Byte offsets not char offsets
2017-05-31 18:16:49 +01:00
w0rp
42efd51723 Fix #596 - Report exceptions thrown by flake8 2017-05-31 15:20:12 +01:00
Jon Gjengset
5eb80f03a2 Include location list end column for rust lint (#602)
* Include location list end column for rust lint

Fixes #599.

* Include rust lint end_lnum for good measure

* Reverse engineer end_* for rust lint tests
2017-05-31 13:17:04 +01:00
Adrian Zalewski
7ed343965c Ember-template-lint handler: properly handle template parsing errors. 2017-05-28 21:19:47 +02:00
Agata Naomichi
b934dc52b6 Fix file name checking in rust handler (#581)
* Fix file name checking in rust handler

* Add a test for rust hanler

* Remove unused variable
2017-05-27 00:35:57 +01:00
Nozomu Okuda
43098171ac Translate pylint output column to 1-based index
This should fix #575; also added vader tests to ensure that translation
is working properly.
2017-05-24 21:40:06 -06:00
w0rp
d012fd1f09 Revert "Fix #556 Remove duplicate error messages from clang++"
This reverts commit 164c4efb32.
2017-05-20 12:57:41 +01:00
w0rp
0646b2861f Revert "#562 Join split JSON lines together for new Rust output"
This reverts commit 5790df1272.
2017-05-20 12:57:21 +01:00
Sander van Harmelen
455793dfd9 Improve performance when using gometalinter (#566)
* Improve performance when using gometalinter

Before this change when I opened a big project that had 6000+ warnings/errors it took ages to get the actual warnings/errors and it caused my CPU to be busy for quite some time. The call to gometalinter alone took about 24 seconds, but after that vim was struggling as well.

After this change the gometalinter call just takes 2 seconds and nothing noticable happens with the CPU and/or vim.

* Removed obsolete test

This logic is no longer done by the `ale` plugin, but by `gometalinter` itself.
2017-05-20 11:43:28 +01:00
w0rp
bb1f045d59 Merge pull request #564 from adriaanzon/php-end-columns
Add end columns on php linter
2017-05-18 09:38:15 +01:00
q12321q
cdf0fb39e5 Add xmllint linter (#559)
* Add xmllint linter for xml
2017-05-18 09:31:12 +01:00
Adriaan Zonnenberg
05970e1b28 Add end columns on php linter #538 2017-05-17 21:28:29 +02:00
Adriaan Zonnenberg
6299da7bd3 Break up php tests so the output is easier to read 2017-05-17 21:19:34 +02:00
w0rp
164c4efb32 Fix #556 Remove duplicate error messages from clang++ 2017-05-17 10:10:25 +01:00
w0rp
5790df1272 #562 Join split JSON lines together for new Rust output 2017-05-17 09:43:28 +01:00
w0rp
372a4dfd7e Merge pull request #546 from dawikur/master
Add cpplint linter
2017-05-17 09:12:36 +01:00
w0rp
3443994a52 #538 Set some end columns for some eslint problems 2017-05-16 22:57:15 +01:00
Dawid Kurek
9185a0d2e5 Add cpplint linter 2017-05-16 19:09:59 +02:00
w0rp
4c5e97dd1c Fix #555 - Handle csslint errors without groups 2017-05-15 21:21:09 +01:00
w0rp
78a7df52c0 Clean up linters after running the checkstyle handlers 2017-05-15 20:59:50 +01:00
w0rp
42155049a5 Merge pull request #551 from meunierd/add-checkstyle-linter
Add checkstyle linter
2017-05-15 20:58:06 +01:00
w0rp
11a50b2580 Fix #553 - Filter out errors from other files for gometalinter 2017-05-15 20:43:55 +01:00
Devon Meunier
9baae52d1a Add checkstyle linter 2017-05-15 15:41:04 -04:00
wisut hantanong
3f33dc7d98 Haskell: add ghc-mod linter 2017-05-15 19:46:02 +01:00
Adriaan Zonnenberg
4e5a848d95 Merge pull request #533 from pbogut/add_php7_compatibility
Add PHP 7 compatibility
2017-05-09 18:34:38 +02:00
Pawel Bogut
d7bdaeeab0 Read errors from stdout only (and make sure they are displayed) 2017-05-08 21:17:54 +01:00
w0rp
a9c5e14fc9 Fix #363 - Detect virtualenv executables and fix import paths for mypy. Use lint_file for mypy 2017-05-06 23:19:54 +01:00
w0rp
702b203c51 Make the nimcheck tests more reliable 2017-05-06 23:06:51 +01:00
w0rp
3ecdb52e6c Make the gobuild tests work better when running them directly 2017-05-06 10:10:24 +01:00
Alexandr
bf0b2cfd84 go build: skip not current buffer (#531)
* go build: skip not current buffer

* fix gobuild_handler.vader
2017-05-06 10:08:34 +01:00
w0rp
d1cc1de6a5 Allow the Brakeman tests to be run directly 2017-05-05 10:14:52 +01:00
Eddie Lebow
ba7999dae0 [RFC] Add Brakeman for Ruby on Rails (references #385) (#509)
* Add brakeman for Ruby on Rails
2017-05-05 10:05:53 +01:00
w0rp
c2a0847f99 #502 Parse more undefined symbol errors 2017-05-04 23:34:52 +01:00
w0rp
8e70dc14f2 Fix #502 - Report undefined symbol errors better for javac 2017-05-04 23:19:58 +01:00
w0rp
a6cadaabef Fix #356 Don't complain about #pragma once in C++ headers 2017-04-30 00:31:52 +01:00
w0rp
2c7d14809d Set GCC flags appropriately for older versions 2017-04-29 20:00:42 +01:00
w0rp
0b4acd6453 Fix #518 Fix handling of spaces in filenames for various linters 2017-04-29 17:33:18 +01:00
Matthias Günther
c55064881d Add erb linter (#497)
* Add eruby linter

* Update README with erb linter

* Fix example and contributions

* Remove trailing newline

* Fix for Vimscript style guide

* Eruby-linter: codereview with @w0rp
- read from stderro output_stream

* Eruby-linter: codereview => add handler for ruby

* Eruby-linter: codereview
- eruby and ruby lint use the same ruby-handler (removes
  duplicated handling logic)

* Eruby-linter: try to fix tests
2017-04-25 18:38:02 +01:00
w0rp
a25b55b954 Fix #469 - Remove Unicode quotes from GCC errors, which cause issues 2017-04-24 23:00:43 +01:00
w0rp
a03121f5b0 Break shared handlers up into their own files, and fix stylelint error handling 2017-04-24 22:27:18 +01:00
w0rp
b4c0335ebc Handle Unix errors with no space after the colon 2017-04-24 21:38:12 +01:00
w0rp
99afe586b3 Simplify some code and format some tests better 2017-04-24 21:11:33 +01:00
w0rp
7fd7630153 Fix #398 - Report problems with the eslint configuration file 2017-04-20 13:07:32 +01:00
Eddie Lebow
0384cabd77 Add the Reek checker for Ruby. (#490)
Add the Reek checker for Ruby.
2017-04-20 07:37:08 +01:00
Jason Tibbitts
4eeb4783d3 Add rpm spec file linter (rpmlint) (#486)
* Initial attempt at an rpmlint linter.

* Add some basic documentation.

* Play with indentation in the test file.

* Another attempt to fix the rpmlint test.

* Hopefully this does it.
2017-04-19 23:40:58 +01:00
w0rp
bdad25eefd Add a function for getting matches, and use it to simplify a lot of code 2017-04-18 00:35:53 +01:00
Rafał Cieślak
2643f9f119 Flow: Fix case where 1st msg points to different file (#477)
* Flow: Fix case where 1st msg points to different file

* Remove `bufnr` from Flow handler output

* Fix the failing test & add a new one
2017-04-16 11:45:42 +01:00
w0rp
d5ccb1a7a1 Merge pull request #474 from jordanandree/add-crystal-lint
Add linter for Crystal lang
2017-04-15 11:34:20 +01:00
Adriaan Zonnenberg
8351bdbc06 Add SQL linter sqlint, closes #395 (#472) 2017-04-15 11:24:05 +01:00
jordanandree
abdfaaf84f add crystal lint
- invokes via `crystal build` command without codegen
- adds vader tests
2017-04-13 21:33:36 -04:00
Adriaan Zonnenberg
7dbf32d0d7 PHP: Fix double errors and support fatal errors 2017-04-12 23:59:12 +02:00
w0rp
65fe914fb8 #392 Handle clang header errors too 2017-04-11 21:05:41 +01:00
w0rp
b06b832447 #392 Report errors inside of headers, in a very basic way 2017-04-11 20:32:57 +01:00
Brandon Roehl
4e40e8cb60 Add Ruby MRI linter (#453)
* Added ruby mri linter

* Added to the list of supported linters

* Async and now with 4 spaces

* Vader tests for ruby

* Match style choices

* Vader test for the Ruby handler now works and passes
2017-04-08 11:24:20 +01:00
Shalom Yiblet
cc8eb05860 improved the sml linter (#445)
* improved the sml linter

* made matching operator agnostic to user settings

* added tests for sml
2017-04-08 11:23:11 +01:00
Adrian
d28d7f732a Add support for linting Handlebars templates with ember-template-lint (#452)
* Ember-template-lint Handlebars template linter: initial handler, test.

* Handlebars support with ember-template-lint: basic documentation entries.
2017-04-07 15:38:50 +01:00
w0rp
c7bd5cc0ba Cover handling of swiftlint errors with tests 2017-04-03 23:43:31 +01:00
w0rp
4fc8452838 #447 Support zsh in the shell linter 2017-04-03 22:51:39 +01:00
Adriaan Zonnenberg
4b0f3257dd Remove 'col' from linters where it is hardcoded to 1 (#434)
* 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-30 23:33:38 +01:00
w0rp
4abefc189c Cover the rubocop handler with tests 2017-03-27 19:53:12 +01:00
w0rp
5de084557b Merge branch 'add-dogma' 2017-03-27 12:57:00 +01:00
w0rp
82fde0ea51 Use the same formatting as other files for the dogma linter file, and cover the Handler function with tests 2017-03-27 12:56:54 +01:00
Lucas Kolstad
d84d91ff35 Add support for ASM files using GCC 2017-03-25 16:36:17 -07:00
baabelfish
9f3cdf8270 Fix problems with nim check (#404)
* Fix problems with nim check

- Multi file errors are not shown in the same buffer
- Fixes parsing of error type that contain ':'

* Remove redundant fnameescape
2017-03-22 09:11:32 +00:00
baabelfish
297bc8553c Add support for nim check 2017-03-18 19:45:37 +02:00
Markus Doits
fae26369d4 add slim-lint (#388)
* add slim-lint

* add slim readme entry

* add slim entry to doc

* add slimlint vader test
2017-03-13 23:21:59 +00:00
Naoya Inada
e969d97843
Fix pattern of output for coffeelint 2017-03-13 20:09:49 +09:00
w0rp
3cababc83b Fix #386 report problems with eslint configuration files 2017-03-09 21:05:00 +00:00
w0rp
b3ab89ac15 Make sure to reset linters after running the nix handler test 2017-03-06 23:34:19 +00:00
w0rp
663d8f832f Group handler test cases in a directory 2017-03-06 23:32:48 +00:00