Commit graph

513 commits

Author SHA1 Message Date
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
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
w0rp
67d49c75a8
Fix the eclipselsp tests 2019-05-21 21:23:21 +01: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
42f5e8c62c
Fix a test on Windows 2019-05-20 22:11:49 +01:00
w0rp
28819eedd3
Close #2359 - Find compile_commands.json in build dirs for cppcheck 2019-05-20 22:08:03 +01:00
w0rp
937138dad4
Try to fix the tests 2019-05-20 20:06:44 +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
rliang
ab7e5b264f [linter] Add LSP support for LaTeX via texlab 2019-05-13 15:50:03 -03:00
w0rp
c88ebc5e70
Make phpstan tests fail less 2019-05-13 14:00:12 +01:00
Mikko Pesari
6b919e88be Add test to verify phpstan autoload parameter 2019-05-12 23:12:52 +03: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
robertking
fb7099d440 modify rls testcase 2019-04-11 23:38:16 +08:00
harttle
4b6691f602 test: unit test for fecs fixer, fecs command 2019-04-11 19:47:31 +08:00
Horacio Sanson
f02e2ec54c Fix 1996 - Add eclipse LSP support. 2019-04-11 08:50:04 +09: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
w0rp
3eb6d7b3db
#2395 - Handle empty output for redpen 2019-03-29 16:09:27 +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
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
w0rp
f0da35b958
Merge pull request #2349 from oblitum/fix-missing-languagetool-file-argument
Fix passing file to languagetool
2019-03-11 09:15:29 +00: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
Francisco Lopes
d9a12348d0 Fix passing file to languagetool 2019-03-11 04:42:25 -03: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
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
w0rp
5dbac4ab9c
Merge pull request #2287 from kevinoid/vulture-options
Document and test ale_python_vulture_options
2019-02-10 23:24:31 +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
Kevin Locke
82b15fb706 Document and test ale_python_vulture_options
The vulture linter already supports ale_python_vulture_options, but it
is not documented or tested.  Since vulture only supports configuration
via options, it is an important use case.  Add docs and test.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2019-02-10 08:18:55 -07: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
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
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
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
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
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
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
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
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
cbaa7eb3c7
Clean up bingo tests, so they pass on my machine too 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
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
Aryeh Leib Taurog
bbf02d837e test elm-make changes to rootdir when elm.json is found
most projects will have an elm.json file (>= 0.19) or elm-package.json (< 0.19)
2019-01-04 09:55:35 +02: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
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
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
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
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
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
Martino Pilia
d90673ab5b
Add GCC linter for Ada 2018-11-18 18:14:24 +01:00
Zack Hsi
1b779fbc08 Fix test 2018-11-17 13:02:16 -08: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
d1d5292178
Fix #2054 - Make golint configurable 2018-11-11 09:42:57 +00:00
Jon Parise
dd7501ee48 Remove test/command_callback/mix_paths/
All of the other tests were already using equivalent fixtures under
test/command_callback/elixir_paths/, so let's use that path everywhere.
2018-11-06 14:01:12 -08: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
71bb62c858
Clean up a buffer variable in a test file 2018-11-04 10:15:41 +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
4b841b5586
Fix the Windows tests 2018-10-31 16:25:04 +00:00
Jon Parise
b5a7593577 Add a lsp_config_callback linter option
This is the callback-based variant of the existing `lsp_config` linter
option. It serves the same purpose but can be used when more complicated
processing is needed.

`lsp_config` and `lsp_config_callback` are mutually exclusive options;
if both an given, a linter preprocessing error will be raised.

The runtime logic has been wrapped in `ale#lsp_linter#GetConfig` for
convenience, similar to `ale#lsp_linter#GetOptions`.

This also adds documentation and an `AssertLSPConfig` test function for
completeness.
2018-10-31 08:42:42 -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
39fd7a0961 Add some basic callback tests for jshint 2018-10-31 11:48:52 +01:00
Andreas Hollmann
ef7b4af917 Do not enable all clang-tidy checks by default 2018-10-30 11:46:53 +01:00
Andreas Hollmann
4c14e6a5fd Fix clazy tests 2018-10-28 17:44:45 +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
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
paihu
f4395f5b8c ale#path#CdString include ale#Escape 2018-10-23 23:20:27 +09:00
paihu
2ea83939a5 fix testcase 2018-10-22 22:59:06 +09: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
Matt Brown
7fa0d3dcc4 Add tests for updated Psalm plugin 2018-10-19 16:31:12 -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
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
2b2e766dc6 Add Perl6 support via 'perl6 -c' 2018-09-28 16:18:40 -07:00
Evan Rutledge Borden
2a56475cf7 Remove test vars that cover bug
These test vars were covering up a bug in the hlint linter
implementation. Without these vars we can see the behavior that is
exhibited in `vim` proper.
2018-09-28 11:37:40 -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
w0rp
fd0467f992
Merge pull request #1917 from jpsouzasilva/fix-stylelint-scss
Support options when using Stylelint with SCSS
2018-09-27 16:54:17 +01:00
Richard Marmorstein
947360f714 Add psalm linter for PHP (#1893) 2018-09-27 16:48:47 +01:00
Ye Jingchen
17676f6a6d Add missing files for ccls test 2018-09-26 23:17:19 +08:00
Ye Jingchen
626e47f5c9 Add ccls tests 2018-09-26 22:50:43 +08:00
w0rp
58ceb21cbc
Merge pull request #1908 from KtorZ/master
Allow extra options to be passed to haskell:hlint
2018-09-26 15:38:15 +01:00
w0rp
169a6e26b2
Merge pull request #1719 from elebow/auto-pipenv-option-for-python-linters
Add python_[linter]_auto_pipenv options for python linters (fixes #1656)
2018-09-19 19:46:13 +01:00
Martin Tournoij
e82bcdb8a6 Add fixer for Go modules (#1873)
* Add fixer for Go modules
2018-09-19 19:33:23 +01:00
Daniel Wennberg
d50e603177 Support both old (<0.7) and new Julia versions
Closes #1931
2018-09-19 07:34:11 -07:00
Devon Meunier
4025030d86
Solargraph stdio 2018-09-18 11:20:29 -04:00
KtorZ
bd32b7c856
Add command_callback tests to cover hlint config variables 2018-09-18 08:25:49 +02:00
w0rp
a4a4bba884
Merge pull request #1927 from jparise/thrift-includes-default
thrift: default thrift_thrift_includes to ['.']
2018-09-17 11:21:30 +01:00
w0rp
0b163ec656
Fix the Julia languagserver linter for Julia 0.7 2018-09-17 09:16:41 +01:00
Jon Parise
b7fcec4d17 thrift: default thrift_thrift_includes to ['.']
In a lint context, it's useful to assume that included files sit next to
the current file by default. Users can still further customize this
configuration variable to add more include paths.
2018-09-16 08:21:18 -07:00
Eddie Lebow
56e67c5811 Add python_[linter]_auto_pipenv options for python linters (fixes #1656)
When set to true, and the buffer is currently inside a pipenv,
GetExecutable will return "pipenv", which will trigger the existing
functionality to append the correct pipenv arguments to run each linter.

Defaults to false.

I was going to implement ale#python#PipenvPresent by invoking
`pipenv --venv` or `pipenv --where`, but it seemed to be abominably
slow, even to the point where the test suite wasn't even finishing
("Tried to run tests 3 times"). The diff is:

diff --git a/autoload/ale/python.vim b/autoload/ale/python.vim
index 7baae079..8c100d41 100644
--- a/autoload/ale/python.vim
+++ b/autoload/ale/python.vim
@@ -106,5 +106,9 @@ endfunction

" Detects whether a pipenv environment is present.
function! ale#python#PipenvPresent(buffer) abort
-    return findfile('Pipfile.lock', expand('#' . a:buffer . ':p:h') . ';') isnot# ''
+    let l:cd_string = ale#path#BufferCdString(a:buffer)
+    let l:output = systemlist(l:cd_string . 'pipenv --where')[0]
+    " `pipenv --where` returns the path to the dir containing the Pipfile
+    " if in a pipenv, or some error text otherwise.
+    return strpart(l:output, 0, 18) !=# "No Pipfile present"
 endfunction

Using vim's `findfile` is much faster, behaves correctly in the majority
of situations, and also works reliably when the `pipenv` command doesn't
exist.
2018-09-15 22:10:46 -04:00
jpsouzasilva
9bbea8b830 Add tests for assuring the SCSS stylelint options work 2018-09-14 13:32:42 -03:00
w0rp
7f1c411b5e
Merge pull request #1850 from rrosenblum/ruby_linters
Update all Ruby linters to work consistently with bundler
2018-09-14 13:27:07 +01:00
w0rp
b01470cbbc
Test for bundle paths with spaces again 2018-09-14 13:26:29 +01:00
w0rp
5c86ffd321
Return only the unescaped executables from executable callbacks 2018-09-14 13:24:59 +01:00