Commit Graph

998 Commits

Author SHA1 Message Date
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
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
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
Ye Jingchen
56658fd3ad Add ccls support for C/C++/ObjC 2018-09-26 20:09:37 +08: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
d84fcf6c3c
Define custom vim global variables to pass options to hlint 2018-09-18 08:25:41 +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
dbe9352935 Add python_auto_pipenv config var for all python linters.
This allows a user to set one variable instead of eight.
2018-09-15 22:10:46 -04: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
Ryan Rosenblum
a55b8d10b0 Fix bug with RuboCop linter when options are not set 2018-09-14 12:30:28 -04: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
5c86ffd321
Return only the unescaped executables from executable callbacks 2018-09-14 13:24:59 +01:00
Sascha Grunert
96e25d471c
Change PCRE escape to simple escape 2018-09-14 10:41:35 +02:00
jpsouzasilva
5901e1a879 Support options when using Stylelint with SCSS
Complement missing documentation
2018-09-13 08:51:33 -03:00
Ryan Rosenblum
9e09b7ca35 Update all Ruby linters to work consistently with bundler 2018-09-12 16:53:28 -04:00
w0rp
99e9417ef9
Add support for Julia Language Server (#1894) 2018-09-10 17:24:04 +01:00
Daniel Jones
8bbf1425bf Fixed NASM linter from outputting junk file 2018-09-10 08:17:44 +10:00
Bartolomeo Stellato
97ed25a8bf Escape julia command + reorder table in README 2018-09-09 10:09:05 -04:00
Bartolomeo Stellato
b3adf241c3 Fix other warnings 2018-09-08 16:05:34 -04:00
Bartolomeo Stellato
68ac4d1095 Fix julia escaping + minor edits 2018-09-07 14:13:44 -04:00
Bartolomeo Stellato
f64f0bb48c Added tests 2018-09-07 13:16:22 -04:00
Bartolomeo Stellato
df72c5f1c1 Added various files to integrate julia. Still not working. 2018-09-07 11:11:29 -04:00
Sascha Grunert
7b62a15739 Add golangci-lint (#1890) 2018-09-06 20:31:12 +01:00
w0rp
7086769289
#1891 Fix the go-langserver tests 2018-09-06 17:05:05 +01:00
w0rp
f1d5bcbf98
Merge pull request #1870 from hsanson/1822-add-go-langserver-support
Fix #1822 - support go-langserver lsp.
2018-09-06 14:50:00 +01:00
w0rp
f8beaa9e3e
Fix #1866 - Handle empty output from Perl 2018-09-06 09:23:36 +01:00
Horacio Sanson
a9333c2866 Fix #1822 - support go-langserver lsp. 2018-09-06 13:46:59 +09:00
w0rp
d476578a40
Improve ALE project style checking
* The project style linter now runs while you type.
* Now the scripts for checking the project require blank lines.
* Many style issues have been found and fixed.
2018-09-04 16:51:18 +01:00
w0rp
8f2e1c393f
Merge pull request #1871 from Ophirr33/master
added sbtserver linter
2018-09-04 11:22:57 +01:00
w0rp
43b04d4e5b
Fix the dart language server command and cover it with tests 2018-09-04 11:15:59 +01:00
Jacob Mischka
24486fa628
Replace removed function
Replaces removed `ale_linters#dart#language_server#GetExecutable`.

Fixes #1881
2018-09-03 19:23:03 -05:00
w0rp
c1f0956d9b
Merge pull request #1869 from Steap/feature/gitlint-ignore-whitespace
gitcommit: fully implement warn_about_trailing_whitespace
2018-09-03 11:27:19 +01:00
Ty Coghlan
3d016f1697 Changed sbtserver to just work off of the address variable 2018-09-01 21:03:29 -04:00
Ty Coghlan
8e3bf10592 added sbtserver linter 2018-08-30 22:10:38 -04:00
Bartolomeo Stellato
8bf5d144ed Started adding julia languageserver 2018-08-30 15:40:04 -04:00
Cyril Roelandt
244c5a8ce5 gitcommit: fully implement warn_about_trailing_whitespace
Fixes #1761
2018-08-30 03:42:44 +02:00
w0rp
ea01cc708b
Merge pull request #1865 from TheLocehiliosan/puppet-options
Support options for puppet parser validate
2018-08-29 14:22:01 +01:00
Tim Byrne
ed26ddc09c
Always use --color=false when validating puppet
Colorized output is difficult for ALE to parse.
2018-08-29 07:15:03 -05:00
w0rp
d4ce201cc2
Merge pull request #1849 from hsanson/1848-add-support-for-java-lsp
Add vscode-java-language-server linter
2018-08-28 22:53:11 +01:00
Tim Byrne
192f211a0e
Support options for puppet parser validate
It can be necessary to pass options to the puppet parser validation. The
most glaring example of this is when using Puppet 3, with the
`parser = future` option enabled. This update allows adding
`--parser=future` to the options passed to Puppet.
2018-08-27 12:59:38 -05:00
Horacio Sanson
1980245b94 Add solargraph LSP linter. 2018-08-27 10:58:17 +09:00
Horacio Sanson
261c29c3d0 Add vader test and fix command callback. 2018-08-26 22:11:36 +09:00
w0rp
adc038f327
Merge pull request #1839 from filipekiss/feature/stylelint-inline-css
Add Stylelint as HTML Linter
2018-08-24 13:20:37 +01:00
fenuks
9d7c48038c
Add clazy as cpp linter 2018-08-24 10:52:33 +01:00
w0rp
08d141edfb
Fix #1844 - Make the kotlin languageserver linter work again 2018-08-24 10:41:33 +01:00
Horacio Sanson
3afff5a24c Add vscode-java-language-server linter 2018-08-24 16:28:15 +09:00
w0rp
81d0eccfab
Merge pull request #1835 from barreyra/master
Enabling clangd for cpp, objc and objcpp
2018-08-23 22:54:11 +01:00
w0rp
7c10249c52
Merge pull request #1820 from SuRaMoN/master
Added phpcs options support as described in #257
2018-08-23 22:42:45 +01:00
Bruno R. Barreyra
795122a042 Enabling clangd for cpp, objc and objcpp 2018-08-23 05:58:06 +02:00
Martin Tournoij
18ec66bd21
Remove "go env" from gobuild linter
I see no reason to do this? It is just setting the environment to what
it already is?

It was originally added in #297, but that entire PR is not a great idea
in the first place; that PR (together with #270) tried to make the Go do
non-standard and non-supported stuff like compiling packages outside of
GOPATH.

That's not something that works well (I tried), so was eventually
removed in #465, but these "go env" calls remained, for no reason in
particular, as far as I can think of.

This will improve on #1834; you will now no longer get a confusing error
(but still won't get a meaningful error; need to think how to do that).
2018-08-23 00:42:19 +01:00
Filipe Kiss
4cd20b821f
Add html stylelint linter 2018-08-22 19:00:41 -03:00
matthias
f82ab76833 Added and fixed tests 2018-08-18 20:59:35 +02:00
matthias
02fdfcda58 Added phpcs options support as described in #257 2018-08-16 16:44:41 +02:00
tyru
88ffdb4736 feat: add ale_go_govet_options variable 2018-08-16 11:36:46 +09:00
w0rp
a88a6d5285
Merge pull request #1806 from jimenezrick/fix-rustc-linter
Fix #1684: Use the correct flag name in rustc linter
2018-08-12 09:41:36 +01:00
Ricardo Catalinas Jiménez
db003a4361 Fix #1684: Use the correct flag name in rustc linter
The rust compiler renamed the option '-Z no-trans' to '-Z no-codegen'.

https://github.com/rust-lang/rust-enhanced/issues/281
2018-08-10 21:50:52 +01:00
kodemeister
0702e4699e Add blank lines to conform the coding standards 2018-08-09 09:06:30 +06:00
kodemeister
212e3b0b2f Use .cquery file to detect the project root 2018-08-07 01:39:04 +06:00
David Hotham
d0e3302253 Add support for yang-lsp 2018-08-03 21:13:48 +01:00
w0rp
209cd54783
Fix #1781 - Fix me breaking the tsserver linter 2018-08-03 17:22:09 +01:00
w0rp
fefb8efff8
Merge pull request #1778 from fredemmott/hhast-perf
Tell HHAST to only look at open files
2018-08-03 09:12:12 +01:00
w0rp
73d8c3b80a
Only run the custom ALE linting script if it's in runtimepath 2018-08-03 00:56:49 +01:00
w0rp
65880fec78
Add a linter for checking ALE code itself 2018-08-03 00:42:15 +01:00
w0rp
217284360d
Simplify the code for most linters and tests with closures 2018-08-02 23:44:12 +01:00
Fred Emmott
e3c81911d6
Tell HHAST to only look at open files
Given ALE only cares about open files, this has no observable change,
except for significantly reduced resource usage.
2018-08-02 14:23:03 -07:00
w0rp
9ef266d050
Merge pull request #1770 from fredemmott/hack
Split Hack out from PHP, modernize
2018-08-02 21:58:57 +01:00
Fred Emmott
de6cd961a8
Suggested changes 2018-08-02 12:59:04 -07:00
Luxed
6b3086237a Add Haskell IDE Engine (hie) support (#1735)
* Adding support for haskell-ide-engine
* Work with the current directory if no stack.yaml file is found
* Added Cabal file detection, updated documentation and added tests
* Updated help
2018-08-02 20:24:58 +01:00
Fred Emmott
e6bd4373f9
coding style 2018-08-02 11:44:17 -07:00
Fred Emmott
238201805d
Split Hack out from PHP, modernize
fixes #1738

- Replace previous `hh_client` usage with LSP client
- Add `HHAST` linter
- Split Hack from PHP: Hack is increasingly diverging from PHP:
  - Hack tools do not understand PHP
  - Most PHP tools do not handle Hack code well (including vim's syntax
    highightling files)
  - http://github.com/hhvm/vim-hack now sets filetype to `hack`
2018-08-02 11:28:56 -07:00