Commit Graph

75 Commits

Author SHA1 Message Date
Phong Nguyen e4ec2e4dc7
Fix crash for Reek 6.0.4 (#4010)
When `let g:ale_ruby_reek_show_wiki_link = 1`, Reek linter is crashed
 because `wiki_link` attribute does not exist in result.

 It seems that `wiki_link` is now replaced with `documentation_link` in
 recent version of Reek
2021-12-13 22:35:26 +09:00
David Houston ea643b97ab
Add cspell Linter (#3981)
* Add cspell linter

Add cspell linter, with the languages it supports.

Signed-off-by: David Houston <houstdav000@gmail.com>

* Add cspell Global Variables Documentation

Add documentation to /doc/ale.txt with cspell configuration options.

Signed-off-by: David Houston <houstdav000@gmail.com>

* Add cspell to docs, Minor Cleanup

Add cspell for each supported language, adding some spaces and removing
others when caught navigating the file.

Signed-off-by: David Houston <houstdav000@gmail.com>
2021-11-19 07:41:05 +09:00
Andrew Hayworth 95ba7898b4
Re-apply #3538 - remove -T argument from ruby linter (#3951)
The `-T` option (for "taint checking") was deprecated in ruby 2.7
and removed entirely in ruby 3.0. This causes the linter to fail
entirely for users of ruby 3.0.

This was reported in #3537, and then fixed in #3538 - but it seems as
though in 9fe7b1fe6a, it was accidentally
and entirely undone.

This commit is essentially identical to #3538, aside from a path change
for the tests.
2021-10-22 14:20:00 +09:00
w0rp 9fe7b1fe6a
Close #2281 - Separate cwd commands from commands
Working directories are now set seperately from the commands so they
can later be swapped out when running linters over projects is
supported, and also better support filename mapping for running linters
on other machines in future.
2021-03-01 20:11:10 +00:00
Horacio Sanson 7696561555
Fix 3537 - remove -T argument from ruby linter (#3538)
Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-02-23 16:48:42 +09:00
Will Leinweber cafe8621e2 Add Ruby sorbet option to enable watchman 2020-10-20 23:13:53 -07:00
w0rp 7d4ce4e6aa
Close #3325 - Apply new formatting where possible 2020-08-28 19:50:36 +01:00
w0rp e8de12c9f0
Fix #2821 - Fix the debride linter after merging older code 2019-10-09 09:53:50 +01:00
w0rp 32b784219b
Merge pull request #2694 from elebow/add-ruby-debride
Add ruby debride (closes #2471)
2019-10-07 19:17:55 +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
Matthew Lanigan abb38955d3 Add Sorbet ruby linter and fixer (#2614) 2019-07-13 17:37:48 +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 883978ece9
#2132 - Replace all uses of foo_callback with foo 2019-02-22 18:05:04 +00: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
Steven Harman 9c3daf3a66 Respect configured excluded_paths 2018-10-25 16:29:29 -04: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
Devon Meunier 4025030d86
Solargraph stdio 2018-09-18 11:20:29 -04:00
Ryan Rosenblum a55b8d10b0 Fix bug with RuboCop linter when options are not set 2018-09-14 12:30:28 -04:00
w0rp 5c86ffd321
Return only the unescaped executables from executable callbacks 2018-09-14 13:24:59 +01:00
Ryan Rosenblum 9e09b7ca35 Update all Ruby linters to work consistently with bundler 2018-09-12 16:53:28 -04: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
Horacio Sanson 1980245b94 Add solargraph LSP linter. 2018-08-27 10:58:17 +09:00
w0rp 217284360d
Simplify the code for most linters and tests with closures 2018-08-02 23:44:12 +01:00
w0rp a42999a639
Massively reduce the amount of code needed for linter tests 2018-07-15 18:28:28 +01:00
w0rp b88bf6ecba
Fix #1412 - Use --stdin-filename for newer reek versions 2018-07-01 10:21:59 +01:00
w0rp 4e821e64c7 Fix #1168 - Make the ruby linter executable configurable 2017-11-28 09:48:35 +00:00
w0rp 7123f7236b #852 - Capture error codes for reek 2017-11-19 00:54:09 +00:00
Aliou Diallo 425482116e
#852 - Capture error codes for Rubocop 2017-11-14 17:50:15 +01:00
w0rp 52c933cd72 Report problems in other files for brakeman, and get the tests to pass on Windows 2017-09-13 23:33:13 +01:00
w0rp a535d07f28 Ban use of ==# or ==? in the codebase, and prefer is# or is? instead 2017-08-08 08:39:13 +01:00
Junegunn Choi bc1cf285c2
Rubocop: Show cop name 2017-08-02 13:55:54 +09:00
w0rp fa33faad9e #810 - Handle output which is not JSON in many linters 2017-07-27 00:45:25 +01:00
w0rp ded1bc14df #810 Ignore output which isn't JSON for brakeman 2017-07-26 23:17:46 +01:00
w0rp b50ae96413 #769 Ignore stderr output and output without JSON we can read for rubocop 2017-07-13 22:47:43 +01:00
Eddie Lebow dcbb0ffee5 Rubocop: handle empty 'files' array in output
The handler previously assumed there would be at least one entry in the
'files' array in the output JSON. It looks like this in the normal case:

  "files":[{"path":"app/models/image.rb","offenses":[]}]

But if RuboCop's config excludes the specified input files, causing no
files to be linted, the output is emptier:

  "files":[]

This change causes the handler to treat that case correctly, and also
exit early if the reported offense_count is zero.
2017-07-12 19:53:58 -04:00
w0rp 5885954197 Fix #760 - Report problems with configuration files for rubocop 2017-07-12 22:41:06 +01:00
Eddie Lebow bc32e24203 Add rails_best_practices handler (resolves #655) (#751)
* Move FindRailsRoot() to more general location

* Add rails_best_practices handler (resolves #655)

* Update documentation for rails_best_practices

Also add brakeman to *ale* documentation.

* rails_best_practices: allow overriding the executable

* rails_best_practices: format help correctly

* rails_best_practices: capture tool output on Windows
2017-07-12 10:43:47 +01:00
w0rp 6a84605c57 Make every test set filenames and switch directories in the same way, and fix some missing escaping for the rubocop linter 2017-07-09 22:43:31 +01:00
w0rp 47ff514878 Fix some indentation 2017-07-09 15:50:36 +01:00
w0rp 025f3407d6 Simplify ale_linters#ruby#rubocop#GetType 2017-07-09 15:50:12 +01:00
Eddie Lebow ab0e76dbd5 Use rubocop's JSON output format (resolves #339) (#738)
* Use rubocop's JSON output format (resolves #339)

Rubocop's emacs formatter seems to have changed format in some
not-so-ancient version. The JSON formatter should provide a more stable
interface than parsing lines with a regex.

The JSON formatter was introduced in mid-2013, so it should be safe to
assume available in any reasonably-modern environment. The oldest
currently-supported version of ruby (according to ruby-lang.org) was
not supported by rubocop until 2014.

* Rubocop: Use global function for GetType

* Rubocop: Use scope prefix in GetType

* Rubocop: Update command_callback test

* Rubocop: add end_col to Handle
2017-07-09 15:48:04 +01:00
w0rp b43413916d Initialize rubocop variables in one place 2017-07-06 22:47:07 +01:00
Gabriel Sobrinho 29746d492e
Fix brakeman handler when there is no output 2017-07-01 11:18:21 -03:00
w0rp dab6f39eb0 Fix some escaping and make some tests set filenames consistently 2017-06-21 22:33:34 +01:00
w0rp c41afa2b0d Clean up the rubocop file a little 2017-05-18 09:22:34 +01:00
Devon Meunier 3f926de76b Escape executable 2017-05-17 08:46:47 -04:00
Devon Meunier 9ca51ed035 Allow overriding rubocop executable. 2017-05-16 14:07:52 -04:00