summaryrefslogtreecommitdiff
path: root/ale_linters
AgeCommit message (Collapse)Author
2018-11-04elixir-ls now recognizes umbrella projectsJon Parise
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-04Merge pull request #2051 from aclemons/ruumbaw0rp
Add initial support for ruumba in eruby files.
2018-11-04Allow configuration of hamllint executable (#2048)Justin Howard
* 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-04Merge pull request #2044 from Steap/bug/1388w0rp
PHP linter: make the path to the executable configurable
2018-11-04Add initial support for ruumba in eruby files.Andrew Clemons
Ruumba provides RuboCop linting for ERB templates. https://github.com/ericqweinstein/ruumba
2018-11-01PHP linter: make the path to the executable configurableCyril Roelandt
Fixes #1388
2018-10-31Add configuration dictionary support to elixir-lsJon Parise
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-31Merge pull request #2040 from leamingrad/jshint_filenamew0rp
Pass the filename of the current file into jshint
2018-10-31Pass the filename of the current file into jshintJames Owen
2018-10-30Do not enable all clang-tidy checks by defaultAndreas Hollmann
2018-10-26Add the dockerfile_lint linter for Dockerfiles (#1971)Alexander "Ananace" Olofsson
* Add the dockerfile_lint linter for Dockerfiles
2018-10-26Add prolog swipl linter (#1979)Takuya Fujiwara
* 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-25Respect configured excluded_pathsSteven Harman
2018-10-25Merge pull request #1958 from Garland-g/perl6w0rp
Add Perl6 support via 'perl6 -c'
2018-10-25Only run stack if a stack.yaml config is found (#1752)Anthony Poon
* 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-25Merge pull request #2018 from muglug/patch-1w0rp
Update Psalm to use LSP
2018-10-22Add support for `cargo clippy` (#2001)Linda_pp
* 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-19Update Psalm plugin to use LSP modeMatthew Brown
2018-10-18Merge pull request #1991 from alskdj21/ruby_solargraph_init_optionsw0rp
Expose ruby-solargraph's initialization options
2018-10-18Allow custom executable for ansible linters (#1977)ix5
* 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-17New linter: dls (#1992)Auri
* New linter: dls
2018-10-12Rename solargraph initialization option variableKim Joseph S. Sadomia
2018-10-12Expose ruby-solargraph initialization optionsKim Joseph S. Sadomia
2018-10-11Add elixir-ls language server supportJon Parise
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-11Fix Credo message types (#1963)Filip Vavera
* Add more Credo message types * Add tests
2018-10-10FIX: use mix from the project root directory (#1954)Matteo Centenaro
* 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-03Fix crashes with incomplete errorsTravis Gibson
2018-10-02Fix PMD not working with classes without packageDiego Lemos
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-09-28Add Perl6 support via 'perl6 -c'Travis Gibson
2018-09-28Set global vars in hlint linter file.Evan Rutledge Borden
2018-09-28Add better support for Haskell stack compiler tools (#1851)Evan Borden
* 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-28Merge pull request #1950 from yejingchen/cclsw0rp
Add ccls support for C/C++/ObjC
2018-09-28Move ccls functions to autoload/ale/handlerYe Jingchen
Tests are kept as-is.
2018-09-27Merge pull request #1917 from jpsouzasilva/fix-stylelint-scssw0rp
Support options when using Stylelint with SCSS
2018-09-27Add psalm linter for PHP (#1893)Richard Marmorstein
2018-09-26Add ccls testsYe Jingchen
2018-09-26Merge pull request #1908 from KtorZ/masterw0rp
Allow extra options to be passed to haskell:hlint
2018-09-26Add ccls support for C/C++/ObjCYe Jingchen
2018-09-19Merge pull request #1719 from elebow/auto-pipenv-option-for-python-lintersw0rp
Add python_[linter]_auto_pipenv options for python linters (fixes #1656)
2018-09-19Add fixer for Go modules (#1873)Martin Tournoij
* Add fixer for Go modules
2018-09-19Support both old (<0.7) and new Julia versionsDaniel Wennberg
Closes #1931
2018-09-18Solargraph stdioDevon Meunier
2018-09-18Define custom vim global variables to pass options to hlintKtorZ
2018-09-17Merge pull request #1927 from jparise/thrift-includes-defaultw0rp
thrift: default thrift_thrift_includes to ['.']
2018-09-17Fix the Julia languagserver linter for Julia 0.7w0rp
2018-09-16thrift: default thrift_thrift_includes to ['.']Jon Parise
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-15Add `python_auto_pipenv` config var for all python linters.Eddie Lebow
This allows a user to set one variable instead of eight.
2018-09-15Add python_[linter]_auto_pipenv options for python linters (fixes #1656)Eddie Lebow
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-14Fix bug with RuboCop linter when options are not setRyan Rosenblum
2018-09-14Merge pull request #1850 from rrosenblum/ruby_lintersw0rp
Update all Ruby linters to work consistently with bundler