Commit graph

1274 commits

Author SHA1 Message Date
Kamil Grzywacz
e5e39a939a credo now recognizes umbrella projects
Use ale#handlers#elixir#FindMixUmbrellaRoot to determine project root
instead of ale#handlers#elixir#FindMixProjectRoot
2019-09-07 15:40:35 +02:00
andys8
bd1f7e1420 Elm language server params update
* There is a new param 'elmAnalyseTrigger' (change|save|never)
* Empty path default to let the language server search for binary
2019-09-04 00:20:12 +02:00
Jeffrey Lau
2b12c8ccbf linter/sh: Improve parsing of error messages in different locales
Fixes #2687
2019-08-31 15:08:54 +08:00
Jeffrey Lau
5fcb24bb3e Add linter for Scala Metals
https://scalameta.org/metals/
2019-08-31 12:34:57 +08:00
Eddie Lebow
08a5bfcaa9
mdl: Use JSON output instead of parsing text
Also add test coverage for the mdl handler.
2019-08-18 23:28:32 -04:00
Richard French
266fa1c0a4 mypy linter capture stderr for error reporting in ALEInfo 2019-08-15 16:36:11 +01:00
Eddie Lebow
58e8d32d79
Move ale#handlers#ruby#EscapeExecutable to ale#ruby#EscapeExecutable
This function is generally applicable to Ruby, not just handling linter
output.
2019-08-13 01:52:13 -04:00
Eddie Lebow
501af8dd8b
debride: Add debride linter (closes #2471) 2019-08-13 01:43:27 -04:00
Eddie Lebow
b1810b2752
Remove +x bit from some files that don't need it. 2019-08-13 00:28:31 -04:00
Andrew Hayworth
ab0bf61512 Add support for ink-language-server
This commit add support for ink-language-server, which it does by
largely copying and pasting from the pure-language-server PR that was
merged recently.

The most interesting things to note are:
- ink-language-server is distributed upstream via npm, which is why we
  search through node_modules
- With some coaxing, it can be installed globally - which is why we
  search for a global binary.
- Ink is a funky language, and users will likely need to add
  initialization options.
- I am not incredibly familiar with vimscript; and I may not have done
  some of the buffer searching correctly.
2019-08-07 16:35:12 -05:00
mynomoto
9ee8067df6 Use cache for clj-kondo linter 2019-08-06 18:44:53 -03:00
w0rp
3ae01ba249
Merge pull request #2430 from eliath/master
Support $GO111MODULE with Go tooling
2019-07-30 21:17:20 +01:00
w0rp
b1230873b6
Merge pull request #2612 from andys8/feature/elm-language-server-update
Update elm-ls
2019-07-29 21:56:27 +01:00
Grégoire Paris
e47c1965a6
Use the psalm executable with the LS option
This is the simplest way of getting the psalm language server to run
now.
2019-07-25 23:19:30 +02:00
Antoine Gagné
c675212ddd Fix bug with detection of the PLT
Previously, it did not detect the PLT inside the `_build` directory and
would always default to the default PLT or the one from the `kerl` tool.
2019-07-22 09:50:16 -04:00
w0rp
aae6d30b1e
Merge pull request #2618 from rustic-games/clippy-flags
Update Rust cargo linter to better integrate with Clippy
2019-07-14 15:16:15 +01:00
Matthew Lanigan
abb38955d3 Add Sorbet ruby linter and fixer (#2614) 2019-07-13 17:37:48 +01:00
andys8
fa5aecc250 Elm-ls backward compatibility for previous naming
Previous name of `elm-language-server` was `elm-lsp`
2019-07-10 12:04:33 +02:00
hernot
46ab7c5904 Support csc, update mcsc (#2586)
* Added a new csc linter for C# code.
* More output is now handled for mcsc.
2019-07-02 08:18:17 +01:00
Elias Martinez Cohen
49db8210f6 Support $GO111MODULE with Go tooling
Allows the user to override $GO111MODULE environment variable through
ale options. This gives control over the default behavior of Go module
resolution.

Golang documentation:
https://github.com/golang/go/wiki/Modules#how-to-use-modules

Add `ale#Go#EnvString()` function to make it easy to add similar Go
environment variables in the future.

Use the new `EnvString` function in all available Go tools callbacks
& update tests

Also add test of linter command callback for `gofmt`
2019-07-01 11:04:33 -04:00
Jean Mertz
53b0e6c37d
support all cargo options for build/clippy 2019-06-25 11:22:36 +02:00
Jean Mertz
e52388b8b1
support clippy options with -- 2019-06-24 19:47:49 +02:00
andys8
0843efc7a5 Update elm-ls
* elm_lsp is now elm_ls
* The binary published by @elm-tooling is elm-language-server

Updates tests, docs and adds more options to the plugin.
2019-06-21 20:10:23 +02:00
Jesse Harris
9ad8fd6a1b Handle powershell unexpected token with newline (#2588)
* Newline in unexpected token broke parser
* fixed test to properly capture regressions
* removed deprecated linter options for powershell
2019-06-19 23:35:10 +01:00
Horacio Sanson
40bf6e6b5c Add support for javalsp configuration options.
This MR adds a new configuration variable `g:ale_java_javalsp_config`
that allows to configure external dependencies and class paths to the
language server.

The variable accepts a dictionary similar to the one supported by the
[vscode/settings.json](https://github.com/georgewfraser/java-language-server#settings)
file.

Deprecates: #2561
2019-06-19 11:38:23 +09:00
Drew Olson
1c71da5624 Add support for purescript language server (#2572)
* Add support for purescript language server
* Update naming
* Add purescript language server tests
2019-06-17 12:54:43 +01:00
Horacio Sanson
eb6a7b7516 Fix checkstyle default configuration.
Checkstyle xml configuration is mandatory and not providing one causes
the tool to fail with the following error:

    Must specify a config XML file.

Checkstyle itself contains a default configuration as part of its
assests named `/google_checks.xml`. Invoking checkstyle with this config
works even if such file does not exists in the file system:

    checkstyle -c /google_checks.xml

This should be the default invocation to allow ALE to use checkstyle
with zero configuration.

Also when a user sets `g:ale_java_checkstyle_config` option, ALE should
use it to invoke checkstyle even such file does not exists in the
filesystem. This is because checkstyle is able to use configuration files
within JAR files defined in the CLASSPATH. The default `/google_checks.xml`
is an example of such configuration available within a JAR resource.
2019-06-12 10:53:28 +09:00
w0rp
1ba1a9ef0e
Merge pull request #2558 from hsanson/fix-javalsp-command-callback
Fix javalsp command callback.
2019-06-10 19:15:15 +01:00
Horacio Sanson
e84c9b300b Do not set default binary.
The default binary "launcher" is too generic and can get mixed with
other tools. To use this linter user must explicitly set the absolute
path of the launcher path.
2019-06-09 14:02:50 +09:00
w0rp
507f164a09
Document and test reason-language-server 2019-06-09 00:12:11 +01:00
David Buchan-Swanson
92d515c211
Add support for reason-language-server 2019-06-08 23:50:41 +01:00
w0rp
5826b4927c
Merge pull request #2551 from laino/eslint-json
Use JSON output for ESLint and fix tsserver column
2019-06-08 23:05:35 +01:00
Jonathan Vander Mey
3c799abb44 Add additional option setting for clangtidy linter
The existing option setting handles setting additional compile flags to
pass to clang-tidy. The new option setting added here allows setting
additional clang-tidy specific flags to be passed as well.
Fixes #2324
2019-06-08 15:35:08 -04:00
Horacio Sanson
5ce97f8cdb Fix javalsp command callback.
The command used to invoke the language server is missing some options
to include additional java modules. Without these modules the server
was not working properly.

The correct command can be found in a `launcher` script on the same
directory the `java` executable for the language server is found.

This commit changes the docs to prefer the launcher script over the java
executable. For backward compatibility it also fixes the command
invocation in case the java executable is configured.
2019-06-05 00:50:23 +09:00
Nils Kuhnhenn
7d4a83ecd4 Use correct handler for 'xo' linter 2019-06-04 13:14:08 +02:00
w0rp
eb6015c6fd
#2542 - Improve checkstyle project configuration 2019-06-03 23:40:22 +01:00
Christoph Koehler
4129c356e8
Fix #1279 - Run cppcheck differently when modified
cppcheck is now run without the --project option and from the buffer's
directory instead when the buffer has been modified. Saving the buffer
will get results by linting the project instead.
2019-06-03 21:54:23 +01:00
Andrew Lee
c6a5cbb3c7 Feature/add ant support (#2539)
Use ant files to load Java settings too.
2019-06-03 20:30:18 +01:00
Nils Kuhnhenn
79d1b99067 Use JSON output for eslint and fix tsserver column 2019-06-02 14:39:03 +02:00
w0rp
4f02edc3f8
Merge pull request #2529 from maxwell-k/terraform_linter
Add a terraform linter
2019-05-29 23:28:50 +01:00
w0rp
166435dbf1
#2533 - Run phpcs in the directory the file is in 2019-05-29 23:17:14 +01:00
Horacio Sanson
181bc69c8c Fix java checkstyle handler.
The checkstyle handler is capable of parsing the new and old output
formats. Unfortunately there are some particular output messages that
matched both the new and old regular expressions:

   [WARN] whatever:11:7: WhitespaceAround: ''if'' is not followed by whitespace. [WhitespaceAround]

This caused ALE to report extra errors since the message was being
matched twice, once as a warning and another (incorrect) old formatted
error.

This MR fixes this by stopping any parsing using the old format regexp
is any errors of the new format are correcly parsed. There is no reason
to expect checkstyle to output both styles in the same report.
2019-05-28 17:48:27 +09:00
Keith Maxwell
88fa0b9294 Add a terraform linter
This linter uses the check functionality built into terraform. ALE
already has a fixer using `terraform fmt` but this doesn't provide error
messages. ALE already has a linter using `tflint` but this requires an
extra application to be installed.

For example this linter will give a warning that ! is an illegal
character in the line below:

    variable "example" !{}

This linter runs the buffer through the command below and parses the
output:

    terraform fmt -no-color -check=true -

This commit includes a basic implementation, documentation and tests.
The only option is to control which executable is run.

Tested with:

    $ terraform -version
    Terraform v0.11.13
2019-05-23 15:49:02 +01:00
Horacio Sanson
5a8ba75265 Fix eclipse.jdt.ls workspace data path.
We were setting the -data parameter to the project root but this caused
the language server to fail initialization and synch of gradle
dependencies. As consequence ALE failed to work fully on gradle
projects.

This fix sets the workspace to the parent folder of the project root.
Normally this corresponds to the correct Eclipse workspace path.

When this is not the case, this fix also allows users to explicitly set
the absolute path to the workspace via configuration variable.
2019-05-22 09:23:03 +09:00
Grim Kriegor
0427ee84b4 Allow running eclipselsp as installed by system package on GNU/Linux (#2523)
* Search eclipselsp jar and config files within system package path
* Allow setting an alternate eclipselsp configuration directory
* Add test for ale_java_eclipselsp_config_path
2019-05-21 21:13:06 +01:00
w0rp
28819eedd3
Close #2359 - Find compile_commands.json in build dirs for cppcheck 2019-05-20 22:08:03 +01:00
w0rp
143af2b9fd
Fix #2421 - Use compile_commands.json in build dirs to find roots 2019-05-20 19:57:08 +01:00
w0rp
5e64acc6ab
Fix #2512 - Use -o /dev/null for gcc linting 2019-05-20 13:00:32 +01:00
Antoine Gagné
3b7c86e401 Add support for Erlang dialyzer (#2509)
* Add support for Erlang dialyzer
* Add an option to specify rebar3 profile

In doing so, the use of the `**` wildcard becomes unnecessary.
2019-05-19 21:16:17 +01:00
w0rp
4234d39d87
Close #908 - Report phpcs problems as style problems 2019-05-14 22:58:58 +01:00
w0rp
07b596efb5
Close #791 - Handle exceptions for puglint 2019-05-13 21:57:44 +01:00
rliang
ab7e5b264f [linter] Add LSP support for LaTeX via texlab 2019-05-13 15:50:03 -03:00
Mikko Pesari
afa20d96ca Add phpstan autoload option 2019-05-10 18:28:32 +03:00
Katsuya Horiuchi
f444abdfe6 Add option to show msg id when pylint is used (#2445)
* Add python_pylint_use_msg_id to tweak output of pylint
* Add test for ale_python_pylint_use_msg_id
* Add doc on ale_python_pylint_use_msg_id
2019-05-09 17:28:18 +01:00
w0rp
a223253f35
Merge pull request #2134 from oaue/master
javac linter: fix handling of error messages containing ':' character
2019-05-08 09:50:12 +01:00
Horacio Sanson
53db52e713 Improve eclipselsp jar search logic.
- Set default value to $HOME/eclipse.jdt.ls
 - Make JAR search regexp more specific.
 - Allow to set the VSCode extensions folder as ale_java_eclipselsp_path.
2019-05-08 13:24:34 +09:00
w0rp
5f64f8dc57
Escape phpstan arguments, and update documentation 2019-05-07 19:38:38 +01:00
Alvin Chan
7f0954b89e Add XO as a linter/fixer for TypeScript files (#2453) 2019-05-02 11:59:18 +01:00
Julien Deniau
c6aae3bcfc Better phpstan default configuration (#2444)
* Use phpstan config file as default whenever possible + report as error
2019-05-01 23:14:39 +01:00
Fletcher Nichol
2303b05baa Add g:ale_sh_shellcheck_change_directory 2019-04-18 16:48:10 -06:00
Ian Shipman
2eb68f6d23 #1791 Set the working directory for cabal and stack 2019-04-17 14:26:09 +01:00
w0rp
61c1ddd904
Fix #2440 - Fix the kotlinc command when Maven and Gradle are missing 2019-04-15 13:36:03 +01:00
w0rp
f0f0cc3c18
Merge pull request #2121 from hsanson/1996-add-support-for-eclipse-jdt-ls
WIP Fix 1996 - Add eclipse LSP support.
2019-04-13 12:48:20 +01:00
w0rp
784d1a9a62
Merge pull request #2394 from harttle/master
feat: fecs support for js/html/css lint and format
2019-04-13 12:35:52 +01:00
Jesse Harris
2ed53108c4 Linter for powershell syntax errors (#2413)
* Linter for powershell syntax errors
2019-04-13 12:24:56 +01:00
robertking
df806c511c change default value of ale_rust_rls_toolchain and update documentation 2019-04-11 23:05:59 +08:00
Jun Yang
d4841cedf2 style: fecs related doc and vim scripts 2019-04-11 16:24:59 +08:00
harttle
c820089c44 feat: fecs support for js/html/css lint and format
`fecs` is a lint tool for HTML/CSS/JavaScript,
see http://fecs.baidu.com for more options.
2019-04-11 16:24:58 +08:00
Horacio Sanson
f02e2ec54c Fix 1996 - Add eclipse LSP support. 2019-04-11 08:50:04 +09:00
Masashi Iizuka
4813165614 Add a linter for clojure using clj-kondo (#2377) 2019-04-10 20:59:58 +01:00
w0rp
2ef3f9806c
#2428 Remove deprecated linter options for psscriptanalyzer 2019-04-10 19:44:57 +01:00
w0rp
2e8c8085a6
Close #2179 - Add support for gopls 2019-04-10 19:23:16 +01:00
Raphael Hoegger
81423701b0 Adding new linter "cookstyle" for chef recipes (Issue #1187) (#2362) 2019-04-10 18:52:52 +01:00
Dan Loman
864d0861e4 [lsp] Add Swift / SourceKit-LSP support (#2420)
* [linter] Add LSP support for Swift via sourcekit-lsp
2019-04-08 16:25:30 +01:00
w0rp
e85eb82401
#2132 - Implement feature tests with ale#Has 2019-04-07 15:34:39 +01:00
w0rp
3bebcb5d48
#2132 - Replace command_chain and chain_with with ale#command#Run 2019-04-07 14:58:06 +01:00
w0rp
5be6a2b4e0
Merge pull request #2340 from svanharmelen/svh/f-gotype
make `gotype` return all errors
2019-04-02 14:27:01 +01:00
Jesse Harris
000c37e775 PSScriptAnalyzer (#2370)
* Added psscriptanalyzer
* Added exclusions and documentation
* Added PSScriptAnalyzer handler test
2019-03-29 15:25:55 +00:00
w0rp
32c8bd1fa4
Merge pull request #2363 from davidsierradz/master
support jsonlint local executable
2019-03-25 22:05:28 +00:00
w0rp
8768a309b8
Merge pull request #2378 from antew/feature/elm-lsp-linter
Elm: Support for elm-lsp
2019-03-25 21:41:33 +00:00
Shahin Sorkh
ad998211f8 Use location of composer.json for PHP project path too (#2391)
* move php-langserver "test for .git dir" test-project to its own directory
* search for composer.json file in php-langserver first then .git dir
* add test for php-langserver composer.json
2019-03-25 21:29:34 +00:00
Antew
8ec9615400 Add support for elm-lsp 2019-03-21 02:55:49 -04:00
davidsierradz
dfff73795a support jsonlint local executable 2019-03-15 16:21:48 -05:00
Sander van Harmelen
b0fac47060 make gotype return all errors
When using `gotype` without the `-e` option, it will only output the
first 10 errors. When working on a larger package that ofter means taht
those 10 errors are in other files then the one that you are currently
working on which then seems to indicate that there are no errors.

By adding the `-e` flag, all errors will be returned and shown properly
in the file that you are working on.
2019-03-12 09:32:39 +01:00
Adam Trepanier
a22ab78dd7 make options for credo configurable (#2337)
* Add credo --strict option

If a user sets 'let g:ale_elixir_credo_strict=1' it will run credo with
--strict instead of suggest.  The default (0) is to run as suggest.

* Added credo docs
2019-03-11 09:12:32 +00:00
Vincent Dahmen
7eae06d3f3 linter/markdown: adds support for languatool (#2155) 2019-03-09 13:55:54 +00:00
w0rp
6aef52f026
Merge pull request #2305 from campbellr/master
javac: Don't assume src/main/java always exists
2019-03-06 10:39:32 +00:00
Nathan Henrie
e5746d9a83 Add lsp_config support for rls (#2332)
* Add lsp_config for rls
* Add working config example and test
2019-03-05 09:09:29 +00:00
Ryan Campbell
4fc27f099b
javac: Don't assume src/main/java always exists
Some projects I have only have src/test/java (no /src/main/java), which
seemed to break some incorrect assumptions the linter had.
2019-03-03 14:43:21 -07:00
w0rp
883978ece9
#2132 - Replace all uses of foo_callback with foo 2019-02-22 18:05:04 +00:00
w0rp
8012e5b60f
Merge pull request #2303 from kevinoid/bandit-use-config
python/bandit: Use .bandit configuration file
2019-02-20 09:58:02 +00:00
Kevin Locke
52c2400786 python/bandit: Use .bandit configuration file
Bandit automatically [uses any .bandit file] within the directories on
which it is invoked.  Since ALE invokes bandit on stdin, it does not
load a .bandit file automatically.  Add support for automatically
finding a .bandit file and passing it to bandit via the --ini option
along with a variable to disable this behavior if desired.

Note: This is useful for the skips and tests configuration options, but
not exclude which would require invoking bandit using a file name, which
may or may not be a good trade-off.

[uses any .bandit file]: https://github.com/PyCQA/bandit/blob/1.5.1/bandit/cli/main.py#L70-L73

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-17 14:24:18 -07:00
Kevin Locke
3300b1aca7 python/pylint: Change directory to project root
Pylint only [checks for pylintrc] (and .pylintrc) files in the packages
aboves its current directory before falling back to user and global
pylintrc.  For projects with a src dir, running pylint from the
directory containing the file will not use the project pylintrc.

Adopt the convention used by many other Python linters of running from
the project root, which solves this issue.  Add pylintrc and .pylintrc
to FindProjectRoot.  Update docs.

[checks for pylintrc]: https://github.com/PyCQA/pylint/blob/pylint-2.2.2/pylint/config.py#L106

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-17 10:40:50 -07:00
Kevin Locke
a6caa85a58 pylama: Use %s instead of %t
Although using %t to lint changes was desirable, many pylama checks use
surrounding paths and file contents (e.g. C0103 module name, E0402
relative import beyond top, etc.)  The more such errors I find during
testing, the less %t seems like a good idea.  Switch to %s.

Also set `lint_file` to 1 and mark Pylama as a file linter in the docs.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-12 10:45:26 -07:00
Derek Sifford
aca1edb476 add project_root_callback for tsserver (#2290)
* add project_root_callback for tsserver
* add tests for tsserver project root
* Update test/command_callback/test_javascript_tsserver_command_callback.vader
2019-02-11 21:24:22 +00:00
w0rp
6ebe24b5ff
Merge pull request #2268 from m-pilia/alex
Add settings for the Alex linter
2019-02-10 23:43:43 +00:00
Kevin Locke
a0d4eb3699 Support ale_sh_shellcheck_dialect to set dialect
As discussed in w0rp/ale#1051, there are cases where it would be useful
to be able to specify the dialect explicitly.  This commit allows users
to do so using the ale_sh_shellcheck_dialect variable.

Fixes: w0rp/ale#1051

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-10 09:00:55 -07:00
w0rp
7a48750610
Complain about binary operators on the ends of lines 2019-02-10 11:43:48 +00:00
Kevin Locke
a24f0b4d5f Support pylama for python (#2266)
* Add pylama for python
* Consolidate python traceback handling
2019-02-08 21:44:34 +00:00
w0rp
800d029b46
Merge pull request #2284 from jqno/master
Fixes javalsp linter
2019-02-08 10:08:09 +00:00
w0rp
2885c57e3e
Fix #2276 - Replace a potentially infinite loop for hie 2019-02-07 16:24:41 +00:00
Jan Ouwens
5ce1e9b0b4 Fixes javalsp linter 2019-02-07 11:20:18 +01:00
Francisco Lopes
b47a0c9519 Make Cypher linter dynamic 2019-02-06 20:29:58 -02:00
w0rp
c0c634c5ec
Merge pull request #2270 from oblitum/add-cypher-lint
linter/cypher: add cypher-lint
2019-02-06 22:04:47 +00:00
w0rp
3e11cbd18d
Update syntax checking
* Line continuation characters should be on the same lines.
* .vim file line indentation should be a multiple of 4.
2019-02-06 18:05:13 +00:00
Francisco Lopes
626572a539 linter/cypher: add cypher-lint 2019-02-03 03:09:51 -02:00
Martino Pilia
771581a945
Add settings for the Alex linter
The executable for the Alex linter is currently hard-coded as 'alex',
which is an issue given the fact that it conflicts with the Haskell
lexer generator, whose executable is also called 'alex', has been around
a dozen years before the linter, and is packaged in the official
repositories of the major Linux distributions.

This commit adds options to use a local executable for the alex linter
(which is a node package), and an option to set a custom executable.

As side changes:
* The pattern in the alex handler is made more readable by turnig it
  into a very-magic regex.
* Alex handles plain text, markdown, and HTML. Specific flags for HTML
  and markdown are provided when instantiating the linters for the
  respective filetypes, while before those formats were treated as plain
  text.
2019-02-02 16:20:14 +01:00
w0rp
4d426bf287
Fix #2263 - detailed Flow errors should show the original message 2019-02-01 13:01:56 +00:00
w0rp
067601e9db
Set lint_file for the ameba linter 2019-01-27 16:16:22 +00:00
Harrison Bachrach
17a2f554e3 Add initial ameba (crystal linter) support (#2174)
* Add initial ameba (crystal linter) support

Note that this depends on saved file as `ameba` does not have STDIN
support

* Fix formatting of crystal linter documentation
* Add tests for ameba executable customization
2019-01-27 16:01:42 +00:00
w0rp
08d3523962
Merge pull request #2228 from Nomad145/ktlint
Add ktlint Fixer Support
2019-01-27 15:55:13 +00:00
w0rp
a7b3b84899
Merge pull request #2225 from ravicious/master
Pass --compiler flag to elm-test when linting 0.19 tests
2019-01-27 12:36:22 +00:00
TANIGUCHI Masaya
03b25dd39b Add textlint for tex (#2234) 2019-01-27 12:14:34 +00:00
Niclas Åhdén
e46c17e8ef SugarSS support from PR 1967 (#2219)
* sugarss support + bonus naming Sass correctly
* cleanup + alphabetic ordering
2019-01-27 11:42:11 +00:00
w0rp
f03370e183
Merge pull request #2207 from pmacosta/master
Fixed parsing of pydocstyle errors
2019-01-27 11:01:14 +00:00
w0rp
d882c434a1
Merge pull request #2215 from irwand/master
support older flake8 output, still used by hacking module from openstack style guide
2019-01-27 10:57:42 +00:00
w0rp
dd995d9aa9
Merge pull request #2235 from erydo/stack-ghc-options
Add g:haskell_stack_ghc_options like …_cabal_ghc_…
2019-01-27 10:20:46 +00:00
John Gentile
b8bf7b220d Add VHDL Support & Newer Verilog Linters (#2229)
* Added VHDL file support with ghdl compiler
* Update ghdl.vim
* Create vcom.vim
* Create xvhdl.vim
* Update xvlog.vim
* Added documentation for VHDL & Verilog linters
* Added tests to VHDL & Verilog linters
2019-01-27 09:46:33 +00:00
w0rp
a47deeae40
Merge pull request #2250 from m-pilia/bandit
Add bandit linter for Python
2019-01-26 21:41:40 +00:00
w0rp
cf14d0aa53
#2132 Unify temporary file management in command.vim 2019-01-26 19:33:52 +00:00
Martino Pilia
0a5de2b42b
Add bandit linter for Python 2019-01-26 11:48:03 +01:00
Robert Estelle
e273f678ff Add haskell_stack_ghc_options like …_cabal_ghc_…
Adds new option `g:haskell_stack_ghc_options` which passes options to
`stack ghc`. This is implemented similiarly to
`g:haskell_cabal_ghc_options`.
2019-01-22 09:46:08 -05:00
yut23
f2db164268 Add support for pyls configuration options
Resolves #1443.
Heavily inspired by the analogous support added for elixir-ls.
2019-01-20 23:59:46 -05:00
Michael Phillips
bd1e639681 Add ktlint fixer support. 2019-01-20 19:39:47 -06:00
Rafał Cieślak
9c0c6efbd0 Pass --compiler flag to elm-test when linting 0.19 tests
This makes elm make linter work when elm is not installed globally.
2019-01-19 22:22:10 +01:00
Irwan Djajadi
08affaad7a support older flake8 output, still used by hacking module from open style guide 2019-01-16 10:59:05 -06:00
Pablo Acosta-Serafini
86af4be0d0 Fixed parsing of pydocstyle errors
ale#Escape function seems to prepend and append ' to the file name, which
are not present in the pydocstyle output. Having the parsing regexp match
the file name was overkill anyway, since there is an obvious 1:1
correspondence between the buffer number and the (potential) errors
reported by pydocstyle.
2019-01-14 20:36:14 -05:00
Anthony Quizon
d09e8bc99e Racket linting using raco (#2146) 2019-01-14 19:45:33 +00:00
hokorobi
7f176390fc Support textlint for reStructuredText (#1978)
* Support textlint for reStructuredText
* Add linter test for textlint rst
2019-01-12 14:40:03 +00:00
w0rp
6644563949
#2132 Remove the need for the hidden add_newline option by tweaking the flow command 2019-01-12 13:14:29 +00:00
TANIGUCHI Masaya
fabebb3a47 Add textlint for Asciidoc and add it to Fixers (#2193)
* Add textlint for asciidoc
* Add textlint --fix
2019-01-10 18:53:45 +00:00
Jerko Steiner
5bbe77101d Add support for bingo (#2165)
* Add support for https://github.com/saibing/bingo
* Add docs for ale-go-bingo
* Use go.mod when found
* Add test for bingo FindProjectRoot
* Simplify ale_linters#go#bingo#GetCommand
2019-01-05 19:12:55 +00:00
Aryeh Leib Taurog
1f21eb0c42 fallback to elm if elm-tests isn’t available 2019-01-04 09:55:35 +02:00
Aryeh Leib Taurog
4a11a6337e fix: don’t use regex match
windows paths have backslashes, which are special in regex patterns
2019-01-04 09:55:35 +02:00
Aryeh Leib Taurog
ba38688dff support tests/ with elm 0.19.0
With earlier elm versions, a separate package file is maintained for
tests, which when properly configured enabled the compiler to find what
it needed to compile the tests.  Under elm 0.19, test dependencies are
managed in the top-level package file, so `elm make` will fail on the
tests.  `elm-test make` is required in this case.

See https://github.com/elm-explorations/test/issues/64
2019-01-04 09:55:35 +02:00
w0rp
73ca1e7191
Merge pull request #2150 from mvgrimes/perl-linter-data-fix
Update the perl-linter's l:pattern to catch missing errors
2018-12-20 16:22:10 +00:00
Jeff Willette
e55d07cf6f changed gqlint to lint the file on disk
- added a cd into the direcotry containing the file in the buffer
  in order to properly check for a config file
- added command_callback tests for graphql
2018-12-18 18:59:02 +09:00
Mark Grimes
ebab81b220 Use non-greedy matching instead of looking for the comma 2018-12-16 17:01:24 -05:00
w0rp
13060a3492
Merge pull request #2136 from hsanson/368-chktex-latex-report-errors-from-wrong-file
Fix 368 - Lacheck reports errors from input{} files.
2018-12-16 13:17:52 +00:00
Mark Grimes
38d25fc7c0 Update the perl-linter's l:pattern to catch missing errors
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-12-14 17:13:49 -05:00
Horacio Sanson
5052eca5cb Add tests to lacheck linter 2018-12-11 23:44:06 +09:00
Justin Searls
2cfa09e02d Adds standardrb linter (#2133)
See: https://github.com/testdouble/standard

StandardRB is to RuboCop what StandardJS is to ESLint. This commit 
naively copies the RuboCop linter and fixer to point at the standardrb
executable. Any other adjustments are very minor (the only I can think 
of is that standardrb takes a `--fix` option instead of 
`--auto-correct`).

This raises a confusing point to me as both developer and a user: since
ale enables all linters by default, won't this run both RuboCop and 
StandardRB (the results of which will almost always be in conflict with
one another)? How does ale already solve for this for the similar case
of StandardJS and ESLint?
2018-12-10 14:02:32 -07:00
Horacio Sanson
a6a8c90126 Fix 368 - Lacheck reports errors from input{} files.
This PR adds additional check to lacheck linter to exclude any warnings
related to sourced files via latex \input{} command.

Closes: #368
2018-12-10 23:39:51 +09:00
David LANDREAU
c7292ce892 javac linter: fix handling of error messages containing ':' character 2018-12-09 18:22:50 +01:00
Gordon Fontenot
9226e13b31 Add support for Pod based SwiftLint (#2122)
It's common to add SwiftLint as a CocoaPod dependency, instead of as a global
binary. In this case we should use that version of SwiftLint before looking
for any others. Note that I'm also adding support for SwiftLint in ReactNative
projects here as well, where the Pods directory would be nested inside an ios
directory.
2018-12-07 15:20:58 -07:00
w0rp
3db564f774
Merge pull request #2061 from hsanson/1910-add-support-for-bibclean-fixer
Add bibclean fixer support
2018-12-06 20:26:04 +00:00
pmacosta
fdd37acc1f Add support for pydocstyle linter (#2085)
The linter can correctly parse pydocstyle output with any of the following
command-line options enabled: --explain, --source, --debug, and/or
--verbose
2018-12-06 11:27:03 -07:00
Oskar Grunning
2760cf7018 refactor sasslint linter (#2077)
Previous implementation required one to have sass-lint globally. This
allows you to have it locally, override the executable and add options.
2018-12-06 11:23:31 -07:00
Horacio Sanson
3346b200bf Fix javalsp command.
The command used to invoke the LSP process was being escaped wrong.

Also added a new option to set a different java executable and fixed the
documentation.
2018-12-05 21:53:39 +09:00
w0rp
6f32f002e7
Revert "Merge pull request #2083 from zackhsi/scalac-until-jvm"
This reverts commit 1c89495d77, reversing
changes made to 4b4b09593b.
2018-12-03 20:39:10 +00:00
Horacio Sanson
9e97a6914e Add bibclen fixer support
Closes #1910
2018-12-01 15:05:18 +09:00
w0rp
0a384a49d3
Merge pull request #2096 from mgedmin/flake8-uses-vcols
flake8 reports visual columns
2018-11-28 09:49:31 +00:00
lfree
2ab64514d0 php: change phpstan's --errorFormat to --error-format (#2005)
* php: change phpstan's --errorFormat to --error-format
* add version check to phpstan
2018-11-23 09:39:50 +00:00
Marius Gedminas
9481f307fb flake8 reports visual columns
Fixes #2092.
2018-11-22 11:57:02 +02:00
w0rp
ff0bd14efe
Merge pull request #2068 from m-pilia/ispc
Add linter for ispc
2018-11-21 16:44:59 +00:00
Martino Pilia
66212966dd
Add --nowrap to ispc options 2018-11-21 10:40:07 +01:00
w0rp
1c89495d77
Merge pull request #2083 from zackhsi/scalac-until-jvm
Continue scalac compilation until just before bytecode generation
2018-11-19 20:02:07 +00:00
w0rp
4b4b09593b
Merge pull request #2087 from m-pilia/ada
Add GCC linter for Ada
2018-11-19 19:36:32 +00:00
Martino Pilia
d90673ab5b
Add GCC linter for Ada 2018-11-18 18:14:24 +01:00
Zack Hsi
c25582076c Continue scalac compilation until just before bytecode generation
Previous behavior does not compile deep enough to surface errors.

See compiler phases:
https://docs.scala-lang.org/overviews/compiler-options/index.html#compilation-phases
2018-11-16 15:31:13 -08:00
Jeff Kreeftmeijer
7c73901199 Add Vale linter for AsciiDoc
Vale supports AsciiDoc. This patch adds a Vale linter for AsciiDoc
files, which is based on the existing Markdown linter.
2018-11-14 21:41:18 +01:00
Martino Pilia
9e8f2b0840
Lint ispc on disk to solve include imprecisions 2018-11-12 00:54:24 +01:00
Martino Pilia
0b4507ed56
Add linter for ispc 2018-11-11 18:26:37 +01:00
w0rp
d30da203b9
Merge pull request #2063 from languitar/better-checkstyle
Checkstyle improvements
2018-11-11 10:00:37 +00:00
w0rp
d1d5292178
Fix #2054 - Make golint configurable 2018-11-11 09:42:57 +00:00
Johannes Wienke
8e24a1a916 Let checkstyle only lint original files
Temporary files break checks like the one for a missing
package-info.java, as discussed in #1305.
2018-11-07 13:26:54 +01:00
Johannes Wienke
5d6b4ef73f Support older checkstyle versions
The output format used by older checkstyle versions differs from the one
of new versions. This commit adds a second parsing iteration on the
output lines with a suitable pattern to support both versions in
parallel. Due to the differences in the order of matching groups this is
hard to achieve in a single pass through the output lines.

An appropriate test case is added.
2018-11-07 13:25:48 +01:00
Jon Parise
b25794e81b elixir-ls now recognizes umbrella projects
Previously, elixir-ls would treat each sub-project within an umbrella as
standalone, which isn't desirable from a language server perspective.

Added ale#handlers#elixir#FindMixUmbrellaRoot, which locates the current
project's root and then continues searching upwards for a potential
umbrella project root. This literally looks just two levels up to keep
things simple while keeping in line with Elixir project conventions.

Use this new function to determine elixir-ls's LSP project root.
2018-11-04 06:40:25 -08:00
w0rp
acdc99b94d
Merge pull request #2051 from aclemons/ruumba
Add initial support for ruumba in eruby files.
2018-11-04 11:33:15 +00:00
Justin Howard
88d328739f Allow configuration of hamllint executable (#2048)
* Allow configuration of hamllint executable

The hamllint executable was hard-coded, preventing it from being
overridden. Fix the executable to be dynamic to allow custom executable
paths.
2018-11-04 10:35:21 +00:00
w0rp
6aab3fe209
Merge pull request #2044 from Steap/bug/1388
PHP linter: make the path to the executable configurable
2018-11-04 10:13:44 +00:00
Andrew Clemons
fa036ca72c Add initial support for ruumba in eruby files.
Ruumba provides RuboCop linting for ERB templates.

https://github.com/ericqweinstein/ruumba
2018-11-04 19:55:06 +13:00
Cyril Roelandt
f34c089685 PHP linter: make the path to the executable configurable
Fixes #1388
2018-11-01 18:52:28 +01:00
Jon Parise
4bee0f1743 Add configuration dictionary support to elixir-ls
This adds generic configuration dictionary support to the elixir-ls
linter. This is useful for disabling its built-in Dialyzer support, for
example, which can improve startup time.

The configuration dictionary is a little verbose. I considered reducing
the user configuration to only the nested settings dictionary (and
having the linter implementation wrap it in the top-level `elixirLS`
dictionary), but leaving it fully configurable simplifies the code and
removes any assumptions about current or future ElixirLS behavior.
2018-10-31 10:32:48 -07:00
w0rp
20e4e3f9db
Merge pull request #2040 from leamingrad/jshint_filename
Pass the filename of the current file into jshint
2018-10-31 11:21:13 +00:00
James Owen
f75848b32c Pass the filename of the current file into jshint 2018-10-31 10:17:55 +01:00
Andreas Hollmann
ef7b4af917 Do not enable all clang-tidy checks by default 2018-10-30 11:46:53 +01:00
Alexander "Ananace" Olofsson
7af33637e8 Add the dockerfile_lint linter for Dockerfiles (#1971)
* Add the dockerfile_lint linter for Dockerfiles
2018-10-26 17:34:32 +01:00
Takuya Fujiwara
34318aedf4 Add prolog swipl linter (#1979)
* add prolog/swipl linter

* use load_files/2 instead of read_term/2

Because it also checks some semantic warnings / errors
not only syntactic warnings / errors.

e.g.:
* singleton warning
* discontiguous warning
* ...

cf. http://www.swi-prolog.org/pldoc/doc_for?object=style_check/1

* support error messages with no line number

    :- module(module_name, [pred/0]).

causes

    ERROR: Exported procedure module_name:pred/0 is not defined

* add test for prolog/swipl handler

* cosmetic fixes

* detect timeout using SIGALRM

* rename g:prolog_swipl_goals to g:prolog_swipl_load

* write doc for prolog/swipl linter

* update toc and README

* fix ignore patterns
2018-10-26 17:29:17 +01:00
Steven Harman
9c3daf3a66 Respect configured excluded_paths 2018-10-25 16:29:29 -04:00
w0rp
320c74ce1a
Merge pull request #1958 from Garland-g/perl6
Add Perl6 support via 'perl6 -c'
2018-10-25 15:38:33 +01:00
Anthony Poon
02c0d5bcb9 Only run stack if a stack.yaml config is found (#1752)
* Only run stack if a stack.yaml config is found

It is necessary to check for a stack.yaml file to distinguish between
cabal-only projects or stack projects (which are also cabal projects
since stack is built on top of cabal).

* Test that stack is called if stack.yaml exists
2018-10-25 15:30:49 +01:00
w0rp
9bdd5771ef
Merge pull request #2018 from muglug/patch-1
Update Psalm to use LSP
2018-10-25 15:22:34 +01:00
Linda_pp
f57ad883f2 Add support for cargo clippy (#2001)
* Add support for `cargo clippy`
* Add tests for cargo-clippy support
* Add an example to doc for how to configure ale_rust_cargo_use_clippy
2018-10-22 09:21:48 +01:00
Matthew Brown
0ed07a9ef5
Update Psalm plugin to use LSP mode 2018-10-19 15:51:16 -04:00
w0rp
3bda132988
Merge pull request #1991 from alskdj21/ruby_solargraph_init_options
Expose ruby-solargraph's initialization options
2018-10-18 14:32:23 +01:00
ix5
b8359c1114 Allow custom executable for ansible linters (#1977)
* Allow custom executable for ansible linters
* Add ansible-lint tests
* ansible-lint: simplify linter command
* Rename linter "ansible" to "ansible_lint"
* Add ansible-lint options to documentation
* Add alias ansible-lint for ansible_lint
2018-10-18 09:19:27 +01:00
Auri
be21aa5cda New linter: dls (#1992)
* New linter: dls
2018-10-17 16:11:41 +01:00
Kim Joseph S. Sadomia
cc1aece1e0 Rename solargraph initialization option variable 2018-10-12 18:16:28 +08:00
Kim Joseph S. Sadomia
12409fa73d Expose ruby-solargraph initialization options 2018-10-12 13:03:06 +08:00
Jon Parise
7eae781291 Add elixir-ls language server support
ElixirLS (https://github.com/JakeBecker/elixir-ls) is an LSP server for
Elixir. It's distributed as a release package that can be downloaded
from https://github.com/JakeBecker/elixir-ls/releases or built locally.

The easiest way to start it is via Unix- and Win32-specific helper
scripts, so that's the basis of this command integration. Alternatively,
we could implement the contents of those platform-specific scripts in
the linter's command callback in a language-neutral way, but there isn't
any benefit to doing that aside from eliminating the platform check, and
that could prove to be too tight of a coupling going forward.
2018-10-11 08:31:12 -07:00
Filip Vavera
3dd2d9dedd Fix Credo message types (#1963)
* Add more Credo message types
* Add tests
2018-10-11 10:00:10 +01:00
Matteo Centenaro
bf1ac8e822 FIX: use mix from the project root directory (#1954)
* FIX: use mix from the project root directory
* Move find root project function to autoloaded handlers
* add tests for #ale#handlers#elixr#FindMixProjectRoot
2018-10-10 17:19:47 +01:00
Travis Gibson
adad9a21ab Fix crashes with incomplete errors 2018-10-03 14:13:34 -07:00
Diego Lemos
607750eb02 Fix PMD not working with classes without package
PMD is currently not working properly for Java classes that use [unnamed
packages](https://docs.oracle.com/javase/specs/jls/se11/html/jls-7.html#jls-7.4.2).

Consider the following Java class that does not contain a `package`
declaration:

```java
public class App {
  String getGreeting() {
    return "Hello world.";
  }

  static void main(String... args) {
    System.out.println(new App().getGreeting());
  }
}
```

Running PMD in the command line agaist the Java class above produces an
output with empty string `""` in the `"Package"` column:

```sh
$ pmd -R category/java/bestpractices.xml -f csv -d './src/main/java/App.java'
Oct 02, 2018 9:10:39 PM net.sourceforge.pmd.PMD processFiles
WARNING: This analysis could be faster, please consider using Incremental Analysis: https://pmd.github.io/pmd-6.7.0/pmd_userdocs_incremental_analysis.html
"Problem","Package","File","Priority","Line","Description","Rule set","Rule"
"1","","/Users/diego/Projects/github.com/dlresende/kata-fizz-buzz/src/main/java/App.java","2","7","System.out.println is used","Best Practices","SystemPrintln"
```

But the pmd.vim handler's current pattern refuses everything coming
from a Java class that does not have a package name (2nd column):
```vim
let l:pattern = '"\(\d\+\)",".\+","\(.\+\)","\(\d\+\)","\(\d\+\)","\(.\+\)","\(.\+\)","\(.\+\)"$'
```

The solution I am proposing is to also accept empty strings as package names.
2018-10-02 21:34:11 +01:00
Travis Gibson
2b2e766dc6 Add Perl6 support via 'perl6 -c' 2018-09-28 16:18:40 -07:00
Evan Rutledge Borden
eae8ffafb8 Set global vars in hlint linter file. 2018-09-28 13:54:21 -04:00
Evan Borden
a8915d885b Add better support for Haskell stack compiler tools (#1851)
* Add better support for Haskell stack compiler tools

This commit adds support for `stack` as the executable of a tool. This
follows a pattern that has been implemented for `bundler`'s tool chain.

* Move hlint command to linter file
* Add vader test for stack exec handling
* Update ghc-mod to support stack execution

`ghc-mod` was previously broken into 2 linters.

1. ghc_mod
2. stack_ghc_mod

This additional linter is not necessary with proper support for
executable variables and `stack exec` handling.

* Support stack exec in hfmt
* Support stack in hdevtools
2018-09-28 09:05:01 +01:00
w0rp
a26b3319a1
Merge pull request #1950 from yejingchen/ccls
Add ccls support for C/C++/ObjC
2018-09-28 09:02:00 +01:00
Ye Jingchen
8891b7c349 Move ccls functions to autoload/ale/handler
Tests are kept as-is.
2018-09-28 03:26:57 +08:00