Implements suggestions and recommendations suggested by the first review
of the "Advance C# linter based on mcs -t:module (#952)" pull request.
- Clarifies and simplifies description of linters and options
- Added links to help file and marked the mcsc linter as to be run only
when file in buffer is saved or loaded.
- Added comments to the mcsc.vim file to clarify code
- removed type checks considered not necessary be reviewer.
- addresses findings by vader
- removed call to getcwd and cd in vim script
- handler expands file names relative to route of source tree into
absolute pathes. Fixes errors not being marked when vim is started
from subdirectory of source tree.
- implements tests for mcs.vim and mcsc.vim linter
* Detect and use CM files for smlnj
* Split into two checkers
- one for CM projects
- one for single SML files
* Fix some typos
* Fix error caught by writing tests
We want to actually use `glob` to search in paths upwards from us.
(Previously we were just searching in the current directory every time!)
* Fix errors from former test run
* Write tests for GetCmFile and GetExecutableSmlnj
* Typo in 'smlnj/' fixture filenames
This linter works by invoking the `thrift` compiler with the buffer
contents and reporting any parser and code generation issues.
The handler rolls its own output-matching loop because we have the
(unfortunate) requirement of handling error output that spans multiple
lines.
Unit tests cover both the command callback and handler, and there is
initial documentation for all of the option variables.
* Add support for scalastyle
* Add scalastyle docs
* scalastyle support for column numbers
* off by one column
* Add tests for scalastyle command and handler
* update readme for scalastyle
* allow full scalastyle options instead of just config file
* fix indentation
* allow scalastyle config file in parent directories by a couple names.
* check for missing match args with empty
* remove echo
* use a for loop
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
* Use different reporter to support older versions of jscs
* Add test and make more consistent with other code
* Add documentation for jscs
* Add more test coverage
* Improve elm linter
Some types of errors do not return nice JSON.
Show them on the first line instead of showing nothing.
* Remove unnecessary properties from elm linter
* Add a vader test for elm-make linter
* Test non-JSON elm-make errors are shown
* Include span label in rust lints
This turns relatively unhelpful error messages like
mismatched types
into more expressive messages along the lines of
mismatched types: expected bool, found integral variable
Fixes#597.
* Exclude rust lint span label if empty
* Use single-quoted strings in vimscript
* Add test for detailed rust errors
* Prune Cargo JSON
* Use matching error file name
* Byte offsets not char offsets
* Improve performance when using gometalinter
Before this change when I opened a big project that had 6000+ warnings/errors it took ages to get the actual warnings/errors and it caused my CPU to be busy for quite some time. The call to gometalinter alone took about 24 seconds, but after that vim was struggling as well.
After this change the gometalinter call just takes 2 seconds and nothing noticable happens with the CPU and/or vim.
* Removed obsolete test
This logic is no longer done by the `ale` plugin, but by `gometalinter` itself.
* Initial attempt at an rpmlint linter.
* Add some basic documentation.
* Play with indentation in the test file.
* Another attempt to fix the rpmlint test.
* Hopefully this does it.
* 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
* Fix problems with nim check
- Multi file errors are not shown in the same buffer
- Fixes parsing of error type that contain ':'
* Remove redundant fnameescape