* Fix 4004 - Disable eslint by default for json.
This PR disables, or more correctly, excludes eslint from the list of
default linters for json files.
Also fixes elixir, go, json5, and jsonc files documentation and default
linters to make them consistent.
* Fix and improve tests
* ALEFileRename command added.
This command renames file and uses tsserver `getEditsForFileRename` to
fix import paths in Typescript files.
* ale#util#Input fix
* Even more fixes.
* Linting error fix.
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
* add support for checkov for terraform
* add tests for checkov handler
* add basic linter config tests for checkov
* update supported tools and languages lists
* simplify ale_linters#terraform#checkov#Handle
* ensure "-o json --quiet" is always set for checkov
* add documentation for checkov including config options
* fix tests after changing handling of default options for checkov
* add checkov to list of tools in doc/ale.txt
If virtualtext.vim is autoloaded first, it will link
ALEVirtualTextWarning to ALEWarning. But ALEWarning is not initialized
yet, so it will create ALEWarning, but with no color definition set.
Shortly after, highlight.vim is autoloaded, which would usually link
ALEWarning to SpellCap, but only if ALEWarning is not already set.
However since ALEWarning is already initialized due to the previous
link, we skip this and never actually come around to properly
initializing it.
We fix this by initializing all highlight groups in highlight.vim, thus
satisfying the dependency of ALEVirtualTextWarning being initialized
after ALEWarning.
Fixes#3585
* Add cppcheck handler match on misra msg
* Fix cppcheck --file-filter setting
This time, the tests and actually usage both work.
Co-authored-by: Dan George <dgeorge@anduril.com>
* 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>
* Add cppcheck handler match on misra msg
* Use --file-filter cppcheck option
Cppcheck recently added --file-filter so that cppcheck only checks the
filtered files, even when using --project option, which checks all files
in the project, by default. The --ccpcheck-build-dir option didn't help
enough (at all?).
* Added C test cases
Also fixed and assumed typo: foo.c, instead of foo.cpp
* Replace hard-coded full path filenames
Attempt to fix the windows platform test execution.
* Fix typo - foo.c, instead of foo.cpp
* Reset buffer var between tests
* Handle header files in cppcheck
Cppcheck isn't designed to check header files, stand-alone. Daniel
Marjamäki suggested using --suppress options to avoid FPs.
* Fix Vint complaint in cppcheck handler.
* Fix file path in cppcheck handler
Co-authored-by: Dan George <dgeorge@anduril.com>
Since having been added, the `alex` tool has added support for linting
on stdin. Rewrite this integration to reduce the number of tools
requiring disk-write access.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Adds phpactor lsp linter
* Fixes missing comma
* Adds tests for phpactor lsp linter
* Adds note that this part is not my own work
* Removes unused variable
* Adds phpactor to supported tools list
* Fixes doc sorting
* Wraps phpactor in code tags
* Add support for AVRA linting
* Add tests for AVRA linting and improve code
* Fix test
* Fix warning detection
* Fix test
* Fix test
* Add AVRA as a supported language in docs
* Adds --memmory-limit option for PHPStan linter
* Updates docs for phpstan --memory-limit option.
* Adds Arizard to authors
* Adds test for phpstan memory limit parameter
* Fixes order of parameters in test
* Changes dash to underscore
* Add Statix for Linting
Add `statix check` as a linter. Provides a simple set of definition
tests additionally. Variable names specify "check" to allow for later
addition of `statix fix` as a formatter once stream support is added.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Fixup Supported Tools List
I didn't realise there were two separate lists of tools, so add statix
to the other list. Also, remembered "S" comes after "R", and so
re-ordered it.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Fix statix Test File
I refactored the variables for statix to allow for writing a fixer
later, and forgot to update them in the test, so update them now. Also
remove a stray "i", add missing space before checks
Signed-off-by: David Houston <houstdav000@gmail.com>
* Update Output Stream for v0.4.0
statix v0.4.0 provides a breaking change of output stream from stderr to
stdout.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Add statix fix Fixer
Implement statix fix as a fixer for simple Nix antipatterns.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Fix statix Fixer Tests
Fix the statix fixer tests by removing the unnecessary
'read_temporary_file' value from the command, since it simply uses the
default value.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Add statix Handler Test
Add a test for the statix handler per @hsanson's request.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Fix to run only on stdin for linting
Signed-off-by: David Houston <houstdav000@gmail.com>
* Implement gofumpt Fixer
Add an implementation with test and documentation for the gofumpt go
code formatter, a stricter formatter than your standard "go fmt".
Signed-off-by: David Houston <houstdav000@gmail.com>
* Add gofumpt to ale.txt TOC
Forgot to add gofumpt to the ALE vim help Table of Contents, so do so.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Fix Test Setup Method Capitalization
I had put "Setup" instead of "SetUp" for "ale#assert#SetUpFixerTests".
Fix such.
Signed-off-by: David Houston <houstdav000@gmail.com>
* Fix typos
Add a missing space, remove an extra bracket by actually running tests
locally first. Would've been smart to do that from the beginning...
Signed-off-by: David Houston <houstdav000@gmail.com>
There is no need to filter for references in such a complicated way.
docker images already works if you just pass the image and tag as
an argument.
This caused problems if one was using podman with its docker-compatible
interface.
Previously podman would return the following error:
Error: cannot specify an image and a filter(s)
With this new method podman does not return an error anymore, causing
the image to not be redownloaded every time and it still works with
normal Docker.
Before this patch multiline warnings would appear in a single line with
'^@' as separator.
Now we use whitespace as separator to improve the appearance.
Also strip trailing whitespace, newlines, etc...
Fixes#3939
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.
According to
https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#textDocument_codeAction,
the response to textDocument/codeAction is:
(Command | CodeAction)[] | null
and the code only handled the case where it was a CodeAction that either
specified an edit or a command, but didn't handle a direct Command.
Note that the specification also says that both can be specified and
then the edit is applied first, then the command. Furthermore, there
seems to be some hacky code handling arguments directly, which I suspect
is non-standard and only works with a specific LSP server that happens
to pass the edits in the arguments unmodified.
It is easier to explain this fix with an example:
* tsserver and LSPs ask for error information when you want to fix
error. tsserver `ts@getCodeFixes` command needs tsserver error code.
* now let's imagine that user has eslint and tsserver in use. Sometimes
both can report same error in different way.
* Now there is no guarantee which error will come first and if eslint
error comes first then tsserver will not return code fixes as we are
passing wrong error code to it.
This fix will return proper error code based on linter.