When 'close_cb' is set for job_start(), but out_cb or err_cb isn't, vim
buffers data instead of dropping it (in case someone wanted to read and
process it in close_cb), and additionally polls for new data every 10
milliseconds, causing excessive wakeups and CPU usage. Since we don't
read the data anywhere outside of out_cb/err_cb, any LSP that prints an
error to stderr triggers this and vim keeps spinning until :ALEStopAllLSPs.
Fix this by always setting both callbacks, thus dropping any data we're
not interested in.
See https://github.com/vim/vim/issues/10758 for an upstream report of
the excessive polling. It's possible this is intentional, I dunno.
Fixes: b42153eb17 ("Fix #4098 - Clear LSP data when servers crash")
In #4231 some code was added to stop the completion menu if any when
opening a new one. This resulted in an issue in Vim that fills the
buffer with Ctrl-Z characters when deleting to the end of a line in a
position that triggers auto-completion.
Since auto-completion seems to work fine on all my tests I am reverting
this specific change.
* add support, docs, tests for Laravel Pint
* fix php-cs-fixer link
* add missing project-without-pint
* fix indentation
* fix pint executable in pint fixer test
* fix variables, docs related to pint support
* fix: added support for local solhint executable
* feat: added support for matching parse errors
* test: added test for solhint command callback and handler
* chore: removed command callback test
* refactor: made solhint handler structure closer to eslint
* refactor(shfmt-fixer): remove derivation of default CLI arguments
The default `omni_start_map` is too restrictive for Lisps and Schemes
like Racket, which permit hyphens (among other special characters).
As recorded in #3870, trying to complete `file-name-from-path` when
typing `file-name<C-x><C-o>` would give completions like `namespace`
because the hyphen is ignored to find the start of the word for
completion.
Now the racket filetype searches for the start using the keyword class
`\k`, which is more precise.
* Allow customization of all floating window borders
Users may not necessarily want the same border character for top+bottom
or left+right, so allow all eight border characters to be configured in
g:ale_floating_window_border.
For backwards compatibility, the old rules are still applied if only six
elements are given.
* Reorder popup border array for compatibility
* Add support for HashiCorp Packer
* Add test for packer fmt
* Add doc for HCL/Packer
* Add link to Packer doc
* Also suggest packer fix for packer ft
* Add more links to TOC
* vscode-json-languageserver-bin support
VSCode JSON languageserver has schema support for linting and
completions.
I have enabled snippets support (`snippetSupport`) even if it is not
fully supported. `label` that comes with completions response can be
used as well.
* Test fix.
* vscode-json-languageserver instead of vscode-json-languageserver-bin
vscode-json-languageserver is more up-to-date (about 1 year old),
vscode-json-languageserver-bin is 4 years old.
* Use git root.
* Documentation update.
* Trying to sort ordering issue.
* One more attempt
* One more attempt
* Uppercase seems to win.
* Clean-up
* Clean-up 2
* Test removed.
The previous linter rule about stray echo lines has been restored, and
now all problems for custom linting rules can be ignored by adding a
comment above problem lines.
This patch adds support for opening jdt:// links on "go to definition" requests returned by Java language servers.
Co-authored-by: w0rp <devw0rp@gmail.com>
* Dispatch textDocument/didChange after rename
Previously whenever we renamed a symbol that was referenced from other
files we'd just edit those files in the background, and the LSP wouldn't
know about these changes. If we tried to rename the same symbol again,
the renaming would fail. In some scenarios, the operation would just be
wrong. Here is an attempt to fix this issue.
I also noticed another bug when using Go with `gopls` LSP and the `gofmt`
fixer. Whenever the file was saved, the `gofmt` would run and reformat
the file. But it seems there was some kind of a race condition so I
disabled saving for now, and all of the modified files will be unsaved,
so the user should call `:wa` to save them. I personally like this even
better because I can inspect exactly what changes happened, and I
instantly see them in the other opened buffers, which was previously not
the case.
Fixes#3343, #3642, #3781.
* Address PR comments
* Remove mode tests in corner case tests
* Address PR comments
* Save after ALERename and ALEOrganizeImports
Also provide options to disable automatic saving, as well as instructions to
enable `set hidden` before doing that.
* Fix broken test
* Save only when !&hidden
* Update doc
* Update doc
* Add silent
* Allows to use quickfix for references.
E.g. following mapping could be used to find references for item under
cursor and put result into quickfix list:
```
nnoremap <leader>af :ALEFindReferences -quickfix<CR>
```
Fixes#1759
* Documentation update.
Only open list window if the number of warnings or errors equals to or
exceeds the value of ale_open_list. No change when set to `1`.
Co-authored-by: cos <cos>
Closes#1810
Add ALEPopulateQuickfix and ALEPopulateLocList. They're not very useful
with ale's default auto-populate behaviour, so their useful configuration
is described in help.
* 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.