Teach ALE about cargo features and add some configuration options

* When working on rust/cargo projects of varying sizes, it may be useful
to either build all possible features (i.e. lint all possible
conditionally compiled code), or even turn off other features for a
quicker edit-lint cycle (e.g. for large projects with large build times)
* Added a g:ale_rust_cargo_default_feature_behavior flag for instructing
cargo to not build any features at all (via `--no-default-features`),
building default features (via no extra flags), or building all possible
features (via `--all-features`)
* Also added a g:ale_rust_cargo_include_features flag for including
arbitrary features to be checked by cargo. When coupled with
g:ale_rust_cargo_default_feature_behavior this allows for full
customization of what features are checked and which ones are ignored
This commit is contained in:
Ivan Petkov 2018-01-09 19:18:18 -08:00
parent f1747901cc
commit 2ef45ab745
No known key found for this signature in database
GPG key ID: 0B431E9837056942
3 changed files with 99 additions and 1 deletions

View file

@ -59,6 +59,36 @@ g:ale_rust_cargo_check_all_targets *g:ale_rust_cargo_check_all_targets*
is used. See |g:ale_rust_cargo_use_check|,
g:ale_rust_cargo_default_feature_behavior
*g:ale_rust_cargo_default_feature_behavior*
*b:ale_rust_cargo_default_feature_behavior*
Type: |String|
Default: `default`
When set to `none`, ALE will set the `--no-default-features` option when
invoking `cargo`. Only the features specified in
|g:ale_rust_cargo_include_features| will be included when performing the
lint check.
When set to `default`, ALE will instruct `cargo` to build all default
features specified in the project's `Cargo.toml` file, in addition to
including any additional features defined in
|g:ale_rust_cargo_include_features|.
When set to `all`, ALE will set the `--all-features` option when
invoking `cargo`, which will include all features defined in the project's
`Cargo.toml` file when performing the lint check.
g:ale_rust_cargo_include_features *g:ale_rust_cargo_include_features*
*b:ale_rust_cargo_include_features*
Type: |String|
Default: `''`
When defined, ALE will set the `--features` option when invoking `cargo` to
perform the lint check. See |g:ale_rust_cargo_default_feature_behavior|.
===============================================================================
rls *ale-rust-rls*