Commit Graph

4114 Commits

Author SHA1 Message Date
Magnus Groß 708e810414
Implement virtual text support for vim (#3915)
This requires the textprop and popupwin feature (vim 8.2).

Fixes #3906
2021-10-02 09:02:49 +09:00
Yuto Ito c9c89a1853
Fix: Failed to execute rubocop fixer on other machine (#3916) 2021-09-23 18:46:16 +09:00
Trevor Whitney f8a4c78b5b
Add support for jsonnetfmt and jsonnet-lint (#3907)
* update to lates

Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>

* fix up docs

Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>

* fix docs

Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>

* get tests passing

Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>

* update regex

Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>

* use ale#Pad and AssertFixer

Signed-off-by: Trevor Whitney <trevorjwhitney@gmail.com>
2021-09-21 10:49:15 +09:00
Götz Christ 2f72a3ed19
[YAML] CircleCI: skip checking for new tool version (#3902)
This way the tool runs a bit faster and we don't create unneeded network requests. Don't know if there are other network requests still occurring.
2021-09-17 17:55:28 +09:00
Dalius Dobravolskas dca56dd772
ALECodeAction fix: check linter name when searching for nearest error. (#3901)
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.
2021-09-16 22:05:38 +09:00
Horacio Sanson 31349f208b
Update ALE test docs to mention NVim 0.5 (#3904) 2021-09-16 12:16:08 +09:00
Oliver Albertini f769f64c07
[ale-python-root] add `.pyre_configuration.local` to list of files (#3900)
Without this, we have one `pyre` process running across different pyre
projects. With this change, files in different projects can be linted
with pyre at the same time.

Co-authored-by: Oliver Ruben Albertini <ora@fb.com>
2021-09-15 21:07:45 +09:00
Samuel Branisa 19437e25d0
Robot framework rflint support (#3715)
* Create rflint.vim

support for robot framework by creating ale definition for rflint syntax linter

* robot framework - rflint support
2021-09-11 09:19:17 +09:00
Horacio Sanson bf29f6ea92
Fix 3897 - add poetry to isort (#3898)
Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-09-10 15:18:41 +09:00
Oliver Albertini b504eeb094
[python/pyre.vim] Fix pyre persistent behavior (#3895)
It's necessary to provide a `-l` option to pyre with the closest parent
directory containing a `.pyre_configuration.local` file, or simply
change directory (cwd) to the root of the pyre project. Thanks to Ken
Verbosky for the code that fixes this.

Error seen when not using such a solution:

```
1031.473923 on 6: Dropping message 'ƛ Background task unexpectedly quited: Invalid configuration: Cannot find any source files to analyze. Either `source_directories` or `targets` must be specified.
```

Issue with this approach is that if you are editing files under
different projects, the `pyre persistent` process is not re-created for
each file. We have to do `:ALEStopAlllsps` in order for the process to
start with the new working directory.

Co-authored-by: Oliver Ruben Albertini <ora@fb.com>
2021-09-10 12:53:54 +09:00
Jon Parise c5c58f5bf8
Improve the thriftcheck handler pattern (#3893)
More recent versions of thriftcheck use a more compliant GCC-style
output format which includes a space before the "severity" group.
This matches similar tools, like shellcheck.

This change adjusts the handler's pattern to parse this format in a
backwards-compatible way (even though backwards compatibility isn't
critical long-term as thriftcheck itself is close to its 1.0 release).
2021-09-08 21:48:48 +09:00
Horacio Sanson 42aadf6a26
Fix 3886 - Don't JSON decode completion user data if already a dict (#3894)
Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-09-08 21:45:19 +09:00
Amadeus Demarzi 35d0bd1519
Fix truncated echo (#3889)
* Fix truncated echo

In typescript, when putting the cursor on a `>` character of an arrow
function, the displayString body comes back as an empty string, and
means the split operation has 0 items, causing a failure when attempting
to call TruncatedEcho.

Even if there's a better fix, I'd assume this is a good safety since we
are injesting external data.

* Convert to use `empty()`
2021-09-06 11:26:32 +09:00
Jon Parise 8fd23f4b71
Introduce an ALELSPStarted autocommand (#3878)
This User autocommand is trigged immediately after an LSP process is
successfully initialized. This provides a way to perform any additional
initialization work, such as setting up buffer-level mappings.
2021-09-05 10:07:53 +09:00
tsjordan-eng b9fdb91e92
Cppcheck backwards compat 1.34 (#3887)
* Add support for cppcheck 1.34

* Add cppcheck 1.34 tests, correct pattern

Co-authored-by: Tyler S. Jordan <tsjorda@sandia.gov>
2021-09-03 22:31:17 +09:00
Jelte Fennema d53a085096
Add fixer for "dotnet format" (#3879)
The .NET ecosystem has an official tool for formatting its files: `dotnet format`
This adds support for that tool to ALE.
2021-08-25 15:27:04 +09:00
João Pesce f896744fee
Close #3872 - Add eslint-plugin-jsonc as a linter for JSON, JSONC and JSON5 (#3873)
* Add eslint as linter for JSON, JSONC and JSON5

Use the same lint configuration as eslint for javascript.

* Add documentation for JSON* eslint support

* Fix spacing in documentation

* Update docs to be unopinionated about plugins

Remove any preference for eslint plugins, since there are more thant one
that would work

* Reorder languages and tools in alphabetic order

* Fix misalignment

* Change orders to pass the tests
2021-08-21 10:02:56 +09:00
toastal a099fe24b2
Dhall fixes: use stdin, doc errors (#3868)
* purs-tidy

* Dhall fixes: use stdin, docs errors
2021-08-09 20:43:50 +09:00
toastal 9264ffda23
purs-tidy fix (#3867)
* purs-tidy

* Fixup for purs-tidy
2021-08-09 20:42:19 +09:00
pigfrown 836125391a
Adds fixer for golines (#3862)
* Adds fixer for golines

* Repositions golines docs to be in alphabetical order

* Fixes golines doc tag

* Fixes formatting for golines docs
2021-08-09 10:13:43 +09:00
Horacio Sanson d6f5fb69ad
Fix 3853 - Update 💾 icon on supported tools list. (#3854)
Look for all linters that have "lint_file" set to 1 and verify tools
that have it have the :floopy_disk: icon set and those that don't do not
have it.

Correspondingly added/removed !! on
ale-supported-languages-and-tools.txt file.

Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-08-08 22:15:36 +09:00
toastal 775d121d46
`purs-tidy` for PureScript (#3863)
* purs-tidy

* update email address for toastal
2021-08-08 22:09:21 +09:00
Horacio Sanson a793db7399
Fix 3865 - Disable scriptencoding vint error. (#3866)
- Add .vintrc.yaml configuration that disables the scriptencoding check
  (ProhibitMissingScriptEncoding) that is raised randomly.
- Upgrade vint to 0.3.21. Project seems to have stopped here and 0.4.0
  was never released.
- Ensure the run-test scripts use the correct docker image (e.g. add tag)
  .

Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-08-08 22:06:58 +09:00
Horacio Sanson cc34310a99
Add neovim-05 flag to run-test help output (#3864)
Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-08-07 20:19:41 +09:00
Horacio Sanson 10f984673c
Fix lint tests failing due to multibyte chars. (#3858)
For some reason CI tests started failing with these errors:

> ale_linters/eruby/erb.vim:1:1: Use scriptencoding when multibyte char exists (see :help :scriptencoding)
> ale_linters/mail/languagetool.vim:1:1: Use scriptencoding when multibyte char exists (see :help :scriptencoding)

Not sure at which point or what changed for this to happen but this MR
fixes it by removing the multibyte chars present on the problem files.

Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-08-06 11:36:39 +09:00
Jon Parise 9eb39348e9
Use md5(1) when available (#3855)
md5sum isn't available by default on macOS. Instead, it ships the
BSD-style md5(1) command, which does the same thing but with different
arguments.

With this change, run-tests works out-of-the-box on macOS.
2021-08-05 08:42:59 +09:00
Horacio Sanson 3ba40b4316
Add neovim 0.5 to list of test runtimes. (#3830)
* Add neovim 0.5 to list of test runtimes.

* Update testbed docker image

Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-08-05 08:41:34 +09:00
Jon Parise 2dd9790281
Add a thriftcheck linter (#3852)
ThriftCheck (https://github.com/pinterest/thriftcheck) is a linter for
Thrift IDL files.
2021-08-04 09:29:07 +09:00
Tobias Gruetzmacher fa032b1b7f
Fix link to jsonlint (#3850) 2021-08-03 16:42:55 +09:00
Jon Parise 8ecf32f3fe
Add missing space before function reference (#3849) 2021-08-03 08:29:11 +09:00
Henrik Farre 056fbd08f6
Do not use tempfiles for ansible lint (#3846)
* Used %s instead of std in

* Set lint_file to 1 for ansible-lint so it does not use temp files

* Fix test for ansible-lint
2021-07-31 12:35:43 +09:00
Jon Parise dce088a4f0
Correct the spelling of :ALEComplete (#3843) 2021-07-28 20:40:59 +09:00
ghsang 73d32335fe
Add support for `dart analyze` (#3825) 2021-07-25 13:48:12 +09:00
Arnold Chand 8c591996a8
Add importMap option to deno Initialization Options (#3827)
* feat(deno): move init options to handlers

* feat(deno): add deno lsp support for js files

* feat(deno): use default map option

* feat(docs): add deno import map option

* feat(deno): add tests for importMap option

* fix(deno): use full path in importMap

* feat(deno): remove deno as linter for js, separate PR

* fix(deno): test for executable

* fix(deno-test): include filename to simplify function
2021-07-25 13:39:56 +09:00
Daniel Roseman 7d8fb2ba17
Python support poetry (#3834)
* Add poetry support to python linters and black fixer.

* Update python.vim to detect poetry project.

* Update ale.vim, add an option for poetry `g:ale_python_auto_poetry`.

* Update ale-python.txt, add poetry support.

* Add and update poetry related tests.

Co-authored-by: unc0 <unc0@users.noreply.github.com>
2021-07-25 13:39:05 +09:00
D. Ben Knoble 530b38de34
Vim popup (#3817)
* implement vim popups for preview

Details on implementation
-------------------------
- we make use of the |popupwin| api
- we split implementations (Nvim* vs. Vim* prefix) and call the right
  one based on has('nvim')
- we follow a similar structure in each function, using the relevant API
  - popup_list, win_execute, popup_settext in VimShow
  - popup_create in VimCreate
  - popup_close in VimClose

Some differences
----------------
- we DON'T have VimPrepareWindowContent because we use arguments to
  popup_create for borders, padding, etc., and it also takes care of
  buffer creation.
- we follow the protocol of setting and using w:preview for information,
  but we only need the ID
- InsertEnter is the only autocommand required, because of
  popup_create's moved argument. Any cursor movement with 'any' will
  close the popup. This in turns means VimClose is only called from
  InsertMode, so no mode-restoration necessary
- we don't tweak too much in the buffer because vim's popup buffers
  already have most relevant settings and aren't editable without
  calling popup functions.
- I enabled scrollbars, close buttons, dragging, and resizing
- vim popups get as big as they need to by default, so no worrying about
  truncating/hiding/size

Note: we might want to consider changing w:preview to w:ale_preview to
avoid clashes if someone else tries to use the same variable

* floating window: document that vim supports it

* lint: fix indent/cont. lines
2021-07-23 21:59:31 +09:00
Horacio Sanson 5ad4fdd583
Fix 3801 - Add ALEDummySign some width. (#3832)
* Fix 3801 - Add ALEDummySign some width.

Due to changes in NeoVim 0.5 the g:ale_sign_column_always configuration
stopped working.

This PR sets the ALEDummySign to a blank space so when g:
ale_sign_column_always is set we have a sign with 1 width allowing the
configuration to work as before.

https://github.com/neovim/neovim/issues/13635

* Fix visual artifact on dummy sign

* Fix visual artifact on dummy sign (attempt 2)

Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-07-21 18:25:41 +09:00
foobarbyte c1c3873c89
Correct typo in python config filenames (#3826)
* Correct typo in a config file filename.

.tool_versions should be .tool-versions

* Correct typo in config file names.

.tool_versions should be .tool-versions
2021-07-20 18:14:45 +09:00
D. Ben Knoble 651038b601
racket: support racket-langserver lsp (#3808)
* racket: support racket-langserver lsp

* racket-langserver: find highest dir with init.rkt

* autoload/ale/racket: re-indent to 4 spaces

* racket: lint: sort supported tools

* racket: lint: function!

This is _not_ needed anymore, but the lint wants it. See :help E127

* racket-langserver: do not use new dict format

* racket: lint: use snake_case

* add tests for racket-langserver

* racket-langserver tests: correct result values
2021-07-20 10:02:23 +09:00
Horacio Sanson a6719c2d4f
Fix 3673 - Add nocolor option to ansible-lint (#3811)
Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-07-20 10:00:49 +09:00
莊喬 f83a1f70d5
Add option to clojure clj-kondo linter (#3812)
Allow define `clojure_clj_kondo_options` to customize command options
for `clj-kondo`.

The `--cache` in original command is now defined as default.
2021-07-17 22:07:02 +09:00
Jose Maria Perez Ramos a6a8131306
Update erlang format for OTP24 (#3823)
Erlang's erlc error format includes the column in OTP24.
See https://blog.erlang.org/My-OTP-24-Highlights/#column-number-in-warnings-and-errors
2021-07-17 21:51:17 +09:00
foobarbyte 1893abdb19
Python .tool versions (#3820)
* Also check for asdf-vm's .tool_versions file

A minimal python project may only be specifying a python version using a version management tool like asdf-vm, without providing other common python project configuration files. asdf-vm creates a single .tool_versions file in the managed directory. By checking for .tool_versions in addition to other common python config files we ensure that python linters (whose behaviour typically depends on a particular python version) will run with the same version of python used by the project. This will also be the same python version used by vim itself when it is run from inside the project's directories.

* add .tool_versions to ale-python-root documentation

This reflects the corresponding change to autoload/ale/python.vim
2021-07-17 21:46:43 +09:00
ghsang d6dbb5398e
Add support for `dart format` fixer (#3764) 2021-07-16 16:20:47 +09:00
Jeff Willette d8f4e8b708
added filename to stdin stream of isort (#3815)
modified tests to run with new format

Co-authored-by: Jeff Willette <jeff@Jeffs-MacBook-Pro.local>
2021-07-14 20:58:25 +09:00
Nikolay Zakirov 82a7e9f588
add autoflake fixer (#3779)
* first attempt

* added autoflake executable

* added Windows executable for appveyor

* delete unused files

* corrected wrong sorting
2021-07-13 21:58:18 +09:00
Horacio Sanson d098124e59
Fix 3373 - do not crash on HandleUserData with invalid json (#3807)
Co-authored-by: Horacio Sanson <horacio@allm.inc>
2021-07-13 08:37:21 +09:00
Nathan Sharp c8f669249a
Add Yosys linter for Verilog files. (#3713)
* Add yosys for verilog files.

* Add handler test for yosys.

* fix typo in yosys handler test

* fix array order in yosys handler test

* add yosys linter to filetype defaults test

* fix duplicate tag

* add 'yosys' to 'ale-supported-languages-and-tools.txt'
2021-07-12 21:39:53 +09:00
Michael Weimann 9a9fd24b17
add phpstan local executable detection (#3809) 2021-07-10 22:56:26 +09:00
Grégoire Paris 2a5a7baffc
Add support for multiline messages (#3686)
This is achieved by switching to JSON, which makes it much easier to
avoid confusion between an error message and the next one. It also
spares us from having to deal with regular expressions, and eliminates
some edge cases that no longer need to be tested.
2021-07-09 23:59:36 +09:00