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?
* 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.
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.
* 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
* 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
* Added ruby mri linter
* Added to the list of supported linters
* Async and now with 4 spaces
* Vader tests for ruby
* Match style choices
* Vader test for the Ruby handler now works and passes
* Remove 'col' from linters where it is hardcoded to 1
When 'col' is 1, the first column will get highlighted for no reason. It
should be 0 (which is the default).
In the scalac linter there was also a check about the outcome of
`stridx`. It would set l:col to 0 if it was -1, and then it uses
`'col': l:col + 1` to convert the outcome of `stridx` to the actual
column number. This will make 'col' equals 1 when there is no match. We
can remove the check because `-1 + 1 = 0`.
* Remove outdated comments about vcol
vcol was added as a default, and the loclists that follow these comments
do not contain 'vcol' anymore