Commit Graph

274 Commits

Author SHA1 Message Date
w0rp
796fb651d6 Fix the Windows tests for pyls 2017-11-22 00:42:39 +00:00
w0rp
52f3ad7c75 Escape the pyls executable in the command, and support running virtualenv pyls executables 2017-11-21 23:51:18 +00:00
w0rp
ac7f69063d #1151 - Overhaul the foodcritic linter for checking files on disk 2017-11-21 13:38:33 +00:00
w0rp
c9e203e620 Fix #859 Include test and jaxb Java source paths when available 2017-11-20 18:54:57 +00:00
w0rp
f224ce8a37 Revert "Show problems from other files for gobuild and gometalinter"
This reverts commit e721f851b4.
2017-11-20 10:43:45 +00:00
w0rp
cc04a7aaa0 Make the iverilog tests match the other tests 2017-11-19 23:06:12 +00:00
w0rp
49ccfb1a00 Fix #516 - Add support for pyflakes for Python 2017-11-17 18:11:28 +00:00
Thomas van der Burgt
22ec81e1de add ale_asm_gcc_executable option (#1138)
* add ale_asm_gcc_executable option
* add Vader tests for asm gcc linter command callbacks
2017-11-17 10:02:30 +00:00
Eddie Lebow
b390c69642 erb, erubis: Redirect file into first command.
The previous version relied on a zsh-specific behavior where
`<filename` after a pipe could redirect to the first command. This
is the standard way to do it.
2017-11-16 23:10:25 -05:00
w0rp
f90a2d5474
Merge pull request #1114 from elebow/eruby-strip-rails-flavoring
Strip Rails flavoring from eRuby when in a Rails project. Fixes #580.
2017-11-16 10:19:32 +00:00
w0rp
b14377915b Clean up tests to stop people copy and pasting the wrong examples 2017-11-15 17:21:17 +00:00
Jeff Willette
e721f851b4 Show problems from other files for gobuild and gometalinter
* Added filename keys to gobuild and gometalinter
* Removed skipping files not in current package
* Removed `--include` for gometalinter
* Fixed the tests
2017-11-15 16:34:30 +00:00
Eddie Lebow
ad7ea36307 [eruby] Add GetCommand to erubis linter
GetCommand conditionally adds a filter (implemented as inline Ruby code
in the command line) to transform some of the problematic
Rails-specific eRuby syntax. Specifically, <%= tags are replaced with
<%.

This does not reduce the effectiveness of the linter, because the
transformed code is still evaluated.

This solution was suggested by @rgo at
https://github.com/w0rp/ale/issues/580#issuecomment-337676607.
2017-11-12 23:33:34 -05:00
Eddie Lebow
ea7f68226e [eruby] Add GetCommand to erb linter
GetCommand conditionally adds a filter (implemented as inline Ruby code
in the command line) to transform some of the problematic
Rails-specific eRuby syntax. Specifically, <%= tags are replaced with
<%.

This does not reduce the effectiveness of the linter, because the
transformed code is still evaluated.

This solution was suggested by @rgo at
https://github.com/w0rp/ale/issues/580#issuecomment-337676607.
2017-11-12 23:33:30 -05:00
w0rp
3c34848e02 Fix #510 Support checking LESS files with stylelint 2017-11-12 12:09:19 +00:00
w0rp
cd5da50531 Add tests for the command and executable callbacks, and make them use local node_modulse esxecutables like other linters 2017-11-12 11:25:24 +00:00
Michael Jungo
3aff1df961 Add tests for ocaml-language-server callbacks 2017-11-12 10:56:53 +00:00
Jeff Willette
8bc44ed585 Added support for linting of proto files (#1098)
* Added support for linting of proto files
* Added function to get the proper protoc command
2017-11-12 10:56:53 +00:00
w0rp
a8c5e0f4dc Simplfy semver handling and share the semver version cache across everything 2017-11-12 10:56:53 +00:00
Jeff Willette
27780cbb23 Added support for linting of proto files (#1098)
* Added support for linting of proto files
* Added function to get the proper protoc command
2017-11-10 09:37:23 +00:00
w0rp
d425b8a18a Simplfy semver handling and share the semver version cache across everything 2017-11-09 23:42:54 +00:00
David Sierra DiazGranados
7086586b17 Add executable option for phpmd linter (resolves #1076) (#1078)
* Add executable option for phpmd linter (resolves #1076)
* Add test for phpmd executable option
2017-11-05 18:53:12 +00:00
w0rp
7b5108d934 Fix #626 - Automatically use cargo check and cargo check --all-targets for cargo versions that are new enough 2017-11-05 18:37:44 +00:00
w0rp
34674e088d Fix #1061 - Handle the filenames returned by javac 2017-11-05 15:33:31 +00:00
w0rp
9010458581 #1081 Use executable() for Python executables on Windows, and rename the test files to .exe so they will pass the executable() check 2017-11-04 10:41:08 +00:00
w0rp
c26e5e277e Fix #491 - Only set -x for shellcheck for versions which support the option 2017-11-03 22:08:26 +00:00
w0rp
d4d939bea9 Fix #1039 - Only check the file on disk for dartanalyzer 2017-10-26 23:31:07 +01:00
Nathaniel Williams
22e8050639 don't use stdin with tflint 2017-10-26 14:14:28 -05:00
Nathaniel Williams
e4456a4e0e Add tflint fot Terraform 2017-10-26 19:37:04 +01:00
w0rp
5917de565d Fix #491 - Use -x for shellcheck for checking files with sourced files 2017-10-26 00:48:51 +01:00
Frank Schumacher
45ed37a5d9 auto-detect .rubocop.yml and .haml-lint.yml
Based on path to current file
2017-10-25 20:46:16 +02:00
w0rp
eec529ad9d Fix the write-good tests on Windows 2017-10-25 00:39:23 +01:00
Sumner Evans
7ac07a30b8 Fix #643 - Add support for write-good for many languages 2017-10-25 00:28:06 +01:00
w0rp
231398dddc Get more of the tests to pass on Windows 2017-10-23 01:26:31 +01:00
w0rp
5292d2f349 Get more tests to pass on Windows 2017-10-18 23:42:51 +01:00
Linda_pp
70177480ba Add llc integration for LLVM IR (#979)
Check LLVM IR with llc
2017-10-10 10:13:09 +01:00
w0rp
a809c4fa3a Get more random tests to pass on Windows 2017-10-08 23:26:50 +01:00
w0rp
47577564a2 Get more command callback tests to pass on Windows 2017-10-05 22:31:09 +01:00
w0rp
e0bd490ed9 Get tslint and xmllint command callback tests to pass in Windows 2017-10-01 21:23:42 +01:00
w0rp
54a08c5f8c Add a Scripts dir for tests on Windows 2017-10-01 20:26:18 +01:00
Ruslan Osmanov
a640d3b022 Added g:ale_php_phpstan_configuration option 2017-09-30 23:36:10 +07:00
Xristoph Hintermüller
8f6044b8b6 Implemented review recommendations
Implements suggestions and recommendations suggested by the first review
of the "Advance C# linter based on mcs -t:module (#952)" pull request.

- Clarifies and simplifies description of linters and options
- Added links to help file and marked the mcsc linter as to be run only
  when file in buffer is saved or loaded.
- Added comments to the mcsc.vim file to clarify code
- removed type checks considered not necessary be reviewer.
- addresses findings by vader
- removed call to getcwd and cd in vim script
- handler expands file names relative to route of source tree into
  absolute pathes. Fixes errors not being marked when vim is started
  from subdirectory of source tree.
- implements tests for mcs.vim and mcsc.vim linter
2017-09-27 13:21:05 +02:00
Tim Byrne
3910b025b2
Move dialect setting before user options (shellcheck) 2017-09-22 17:04:00 -05:00
Markus Doits
5a1ebdb633
fix typo RUBUCOP --> RUBOCOP for slim lint
this actually makes 6ebd8f355c work
2017-09-18 12:29:20 +02:00
Markus Doits
6ebd8f355c
slimlint: Search for .rubocop.yml and use it
This fixes slim-lint not honoring a `.rubocop.yml` in the file's or
parent directory. Due to the way slim-lint calls rubocop, it requires
the special `SLIM_LINT_RUBUCOP_CONF` env var to pick up the
`.rubocop.yml` if it is not run on the real file (which is the case
here).

See https://github.com/sds/slim-lint/blob/master/lib/slim_lint/linter/README.md#rubocop
2017-09-15 18:56:59 +02:00
w0rp
b6a487ccf9 Fix some random test issues for Windows 2017-09-11 00:47:27 +01:00
w0rp
574cb11594 #917 Cover the old _args option for flake8 with a test, just in case 2017-09-09 13:28:46 +01:00
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
1ea5400e8d Test lintr options configuration 2017-09-03 23:29:12 +01:00
w0rp
7c2a5052a8 Fix #895 - Run Node.js scripts with node.exe instead of node on Windows 2017-08-31 13:12:24 +01:00
w0rp
9958a8d32e Add tests for the c version of clang-tidy 2017-08-30 22:11:04 +01:00
w0rp
0cdb653c9c Cover the tslint rules option with a test 2017-08-30 21:27:28 +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
b031531e79 #869 - Detect the shell dialect from the hashbang for shellcheck 2017-08-28 19:16:23 +01:00
w0rp
908e94622e #868 - Prefer cmd.js files for executing standard 2017-08-26 18:11:27 +01:00
Michael
8f8d015dae Add pycodestyle Python linter support (#872)
Add a pycodestyle linter
2017-08-25 12:46:56 +01:00
Peter Renström
4bea50b82f Add clang-format fixer for C/C++ (#873)
* Add clang-format fixer for C/C++

* Document clang-format options

* Refer ale-cpp-clangformat to ale-c-clangformat
2017-08-24 22:49:43 +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
tmn-o3
5a9a365aed add phpcbf fixer 2017-08-20 05:47:21 +00: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
b2d3764a18 Syntaxerl linter feature check (#861)
* Add feature check for SyntaxErl linter

* Escape SyntaxErl executable path in commands
2017-08-19 18:54:23 +01:00
w0rp
20e64fbae0 #860 Only enable the new option for setting the original filename for SyntaxErl if an option is on in ALE 2017-08-19 15:48:29 +01:00
Dmitri Vereshchagin
18cb9a725d Add original filename to SyntaxErl command 2017-08-19 17:18:48 +03:00
Dmitri Vereshchagin
e9e1bec772 Update SyntaxErl linter tests 2017-08-19 17:18:48 +03: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
w0rp
dcf7cbe366 Merge pull request #842 from gfontenot/gf-swiftformat
Add support for SwiftFormat as a fixer
2017-08-10 21:06:55 +01:00
w0rp
b9f31621e4 Move --format=default in the flake8 command to the return value, and remove extra spaces in the tests 2017-08-10 09:58:32 +01:00
Gordon Fontenot
4709e67627
Add support for SwiftFormat as a fixer
SwiftFormat is a tool that can be used to format Swift files. This commit adds
support for using SwiftFormat as a fixer from ALE. It looks for executables in
the Pods directory, then the Pods directory for a React Native project, then
finally falls back to the globally installed instance if neither of those were
found.

https://github.com/nicklockwood/SwiftFormat
2017-08-09 12:41:21 -05:00
Matthew Grossman
fe95fcd357 Default flake8 to --format=default 2017-08-09 10:05:56 -07:00
w0rp
d1023e9c2c Merge pull request #821 from verbitan/nagelfar
Add Tcl nagelfar linter
2017-08-03 23:40:09 +01:00
w0rp
09d50ebe31 Cover the Rust LSP with tests, allow LSP linters to be named anything, and rename the Rust LSP linter to rls 2017-08-02 23:21:30 +01:00
Nick James
a3d2fb5688 Add Tcl nagelfar linter 2017-08-02 23:05:19 +01:00
w0rp
617582c5d3 Use g: for the PHP Vader tests 2017-08-02 22:36:53 +01:00
w0rp
6e07cf5b12 Cover the PHP language server functions with Vader tests 2017-08-02 22:34:09 +01:00
Takano Akio
8ab632e6f2 Make executable and options configurable for hdevtools 2017-07-24 05:50:09 +00:00
w0rp
87616c5e91 #782 - Do not set the build directory for clang-tidy for header files, which does not work 2017-07-20 14:52:24 +01:00
w0rp
a5f754a5e0 Fix #786 - Only set --no-local-style for yapf if a configuration file is detected 2017-07-20 11:07:07 +01:00
w0rp
235fc90e22 Fix #308 - Check Dart files with dartanalyzer 2017-07-18 23:57:33 +01:00
Matthew Turland
da410caff8 Add yaml swaglint linter (#771)
* Add yaml swaglint linter
2017-07-17 20:28:21 +01:00
w0rp
eab77b7072 #703 Add arguments to avoid generating plist files if no build directory is detected for clang-check 2017-07-17 10:19:08 +01:00
w0rp
23ea62d40a #711 - Make the cpplint executable configurable 2017-07-17 00:17:59 +01:00
w0rp
3352a6c9df #711 - Make the clangtidy executable configurable 2017-07-17 00:07:18 +01:00
w0rp
fe70742bb9 #711 - Make the clangcheck executable configurable 2017-07-16 23:35:10 +01:00
w0rp
9e83878900 #711 - Make the gcc executables configurable 2017-07-16 22:41:15 +01:00
w0rp
58717e05a3 #711 - Make the cppcheck executables configurable 2017-07-16 22:11:43 +01:00
w0rp
54ff573174 #711 - Make the clang executables configurable 2017-07-16 21:37:10 +01: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
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
Sander van Harmelen
b2be833744 Fixup #756
The real fix was not using absolute paths anymore (so not expanding with the `:p` option). The regex was correct and should at least include the `^` character to make sure the string starts with the given path/filename and not references the path/filename in some error description.
2017-07-12 09:51:44 +02:00
w0rp
340c0bbac5 #756 Escape the paths used for the --include parameter for gometalinter, which uses RE2 2017-07-11 23:47:21 +01:00
w0rp
a96cc92edf Merge pull request #756 from svanharmelen/b-gometalinter
Make gometalinter work again
2017-07-11 23:13:28 +01:00
Matteo Centenaro
505d114a68 Look for ini file to spot python project root (#755)
* Look for ini file to spot project root

When looking for the project root folder it would be better
to check for some well-known init file instead of __init__.py.
Indeed, with python3 it is now possible to have namespace modules
where intermediate dirs are not required to include the __init__.py file.

* Break if statement conditions over several lines

* Add blank lines for the if block

* Add test for FindProjectRoot

* Typo: missing / for MANIFEST.in

* Fix test for non-namespace package

* Add more test cases
2017-07-11 21:57:37 +01:00
Sander van Harmelen
5c7b55edec Make gometalinter work again
They changed their logic to use related paths instead of absoluut paths (see [here](a04df08be5 (diff-04424ed7c660c10495a54e8d11be89eaR253)))

This fixes the linter by also using relative paths…
2017-07-11 17:13:04 +02: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
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
w0rp
8eb4f95766 #697 - Clear all highlights every time items are set again, and refactor most things. Clear errors when linters are removed 2017-07-07 23:47:41 +01:00
w0rp
8315c0e337 Make the executable for gometalinter configurable 2017-07-07 00:10:30 +01:00
w0rp
854066e849 #732 - Use the configuration files when fixing files with rubocop 2017-07-06 22:58:14 +01:00
w0rp
79e8e063af Make pug-lint detect node_modules executables, and add options for pug-lint like the other linters 2017-06-29 11:40:03 +01:00
Alexander "Ace" Olofsson
f883d4d4fd Add puppet-lint fixer (#701)
* Add puppet-lint fixer

* Add vader test for puppetlint fixer

* Ensure puppetlint variables are initialized
2017-06-28 15:27:02 +01:00
w0rp
16ba9bd680 Fix #680 - Use --shadow-file to check for problems with mypy while you type 2017-06-27 10:06:03 +01:00
Lynn Dylan Hurley
7f6e5dc65b Add ruby fixer using rubocop --auto-correct (#689)
* add ruby fixer for `rubocop --auto-correct`
2017-06-25 20:04:14 +01:00
w0rp
dab6f39eb0 Fix some escaping and make some tests set filenames consistently 2017-06-21 22:33:34 +01:00
Ryan
e8cc40b139 Add fusion-lint, documentation, and tests (#648)
* Add `fusion-lint` for first FusionScript linter

* Add documentation over `fusion-lint`

* Add tests for `fusion-lint` command callback
2017-06-14 09:35:11 +01:00
José Luis Lafuente
1eec446620 Search python fixers in virtual environment (#632)
* Search python fixers in virtual environment

* Add tests for python fixers
2017-06-07 20:42:30 +01:00
q12321q
cdf0fb39e5 Add xmllint linter (#559)
* Add xmllint linter for xml
2017-05-18 09:31:12 +01:00
Devon Meunier
3f926de76b Escape executable 2017-05-17 08:46:47 -04:00
Devon Meunier
9ca51ed035 Allow overriding rubocop executable. 2017-05-16 14:07:52 -04:00
w0rp
6ea00af689 #540 Fix shell escaping pretty much everywhere 2017-05-08 22:59:25 +01:00
w0rp
1a157b1cd5 Support python -m flake8 for users who are running flake8 that way 2017-05-07 16:31:33 +01:00
w0rp
4228c503f4 #335 Detect flake8 in vritualenv, and escape the executable path 2017-05-07 16:16:17 +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
07bcbd4c06 Escape the pylint executable appropriately 2017-05-06 21:20:02 +01:00
w0rp
f2c9fc403a Fix #208 - Use the file on disk for pylint, and follow import paths 2017-05-06 19:30:41 +01:00
w0rp
2e1c9b0fa5 #208 Automatically detect pylint in virtualenv directories 2017-05-06 19:11:43 +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
3573975934 Fix #410 - Use compile_commands.json files for clang-tidy, and check files on disk instead 2017-05-02 22:44:08 +01:00
w0rp
eb8bd26776 #392 - Detect and use compile_commands.json for cppcheck 2017-05-02 21:18:17 +01:00
Alex Masterov
9cea780121 Add luacheck option to pass in more options 2017-04-29 08:58:35 +03:00
w0rp
45c2d6b580 Fixes #361, fixes #417 Get classpaths from Maven, and automatically detect src/main/java paths 2017-04-25 22:32:48 +01:00
w0rp
7682fab294 Fix #168 - Make the Fortran linter more configurable 2017-04-15 22:06:56 +01:00
w0rp
7c736579b7 Fix #438 Create Java .class files for javac in a temporary directory 2017-03-31 20:14:53 +01:00