Age | Commit message (Collapse) | Author |
|
Parse more C/C++ compiler options
|
|
Add better ksh support
|
|
Add a hook to detect LSP project root
|
|
|
|
Currently, we detect the linter root based on a variety of techniques.
However, these techniques are not foolproof. For example, clangd works
fine for many things without a compile_commands.json file, and Go
projects may be built outside of the GOPATH to take advantage of Go
1.11's automatic module support.
Add global and buffer-specific variables to allow the user to specify
the root, either as a string or a funcref. Make the funcrefs accept the
buffer number as an argument to make sure that they can function easily
in an asynchronous environment.
We define the global variable in the main plugin, since the LSP linter
code is not loaded unless required, and we want the variable to be able
to be read correctly by :ALEInfo regardless.
|
|
|
|
|
|
* Mimic Prettier's default parser by setting it to `babylon`
* Add tests to check default Prettier `parser`
* Set Prettier default parser based on version
* Update the comment to explain the reason for an explicit default
|
|
* Add textDocument/typeDefinition for LSP
Doc to spec https://microsoft.github.io/language-server-protocol/specification#textDocument_typeDefinition
This works like textDocument/definition but resolves a location of a
type of an expression under the cursor.
I'm not sure what to do with tsserver though.
* Fix passing column to LSP
* test_go_to_definition: wording
* Add tests for textDocument/typeDefinition
* Add docs for textDocument/typeDefinition
|
|
Adjust column to be 0-based for LSP messages
|
|
|
|
This is what LSP specifies.
|
|
From LSP spec:
> A range in a text document expressed as (zero-based) start and end
> positions. A range is comparable to a selection in an editor. Therefore
> the end position is exclusive.
|
|
|
|
command
|
|
bugfix: c.vim: Pull build directory from compilation database
|
|
* Add textlint for asciidoc
* Add textlint --fix
|
|
|
|
The LLVM compiler database JSON already includes a directory where the
build was performed:
https://clang.llvm.org/docs/JSONCompilationDatabase.html
Prefer this directory for fixing relative paths in compiler include
arguments in ale#c#ParseCFlags.
Without this change, users cannot create a symlink to their compilation
database as suggested in the LLVM tooling setup instructions:
https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html
|
|
Manually trigger autocomplete even when prefix is ""
|
|
|
|
|
|
Improve perf for compile dbs in large projects
|
|
* Add ability to manually trigger completion menu
* Mention :ALEComplete in completion docs
* Add test for ALEComplete
|
|
When using a compilation database (compile_commands.json) in very large
projects, significant delays would occur when changing files --
particularly those that happened to be far down the db. Rather than
iterating over the whole list every time, we now build up a lookup table
based on the tail of the filename (and tail of the directory for
widening searches) and iterate over the much smaller list of compile
commands for files with the given name.
Test metrics (from compile_database_perf/test.sh) show a 90% performance
improvement -- from 25 seconds to 2.5 seconds per run.
|
|
|
|
Add support for ale option to override default shell used by ale
|
|
Fix CFLAGS & Makefile issues
|
|
Add support for black usage with pipenv
|
|
|
|
|
|
|
|
Split by space instead of dash.
This prevents incorrect parsing where space-separated arguments are
merged (in particular, .c or .o files were appended to -I or -D
arguments).
Handle shell escape: quotes and escaped quotes \" and shell
substitutions are recognised. This is done by verifying that no special
character (" ' ` ()) has not a matching character.
Fixes #2049
|
|
pwsh environments
|
|
|
|
|
|
Added ability to set `python_black_auto_pipenv` to allow for usage
of a local pipenv black executable.
|
|
Add versions of ALEGoToDefinition that open in splits
|
|
This is just like `:ALEGoToDefinitionInTab`, only a (v)split instead of
a tab. Fixes #2140.
|
|
|
|
|
|
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?
|
|
|
|
|
|
|
|
Add bibclean fixer support
|
|
Previous implementation required one to have sass-lint globally. This
allows you to have it locally, override the executable and add options.
|
|
Closes #1910
|
|
Optimize :ALEIntoToClipboard to only copy to clipboard once
|
|
|