diff options
author | Ivan Petkov <ivanppetkov@gmail.com> | 2018-01-09 19:18:18 -0800 |
---|---|---|
committer | Ivan Petkov <ivanppetkov@gmail.com> | 2018-01-11 19:24:44 -0800 |
commit | 2ef45ab7457566a10354b7833cbdf5137118cebf (patch) | |
tree | ad91c0d326c7f2e26a2ed782b47cfa83014c98d3 /test/command_callback | |
parent | f1747901cc00abb7becb64c02bfccad46b66ed21 (diff) | |
download | ale-2ef45ab7457566a10354b7833cbdf5137118cebf.zip |
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
Diffstat (limited to 'test/command_callback')
-rw-r--r-- | test/command_callback/test_cargo_command_callbacks.vader | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/command_callback/test_cargo_command_callbacks.vader b/test/command_callback/test_cargo_command_callbacks.vader index 65ea5a80..9c06f27d 100644 --- a/test/command_callback/test_cargo_command_callbacks.vader +++ b/test/command_callback/test_cargo_command_callbacks.vader @@ -1,9 +1,13 @@ Before: Save g:ale_rust_cargo_use_check Save g:ale_rust_cargo_check_all_targets + Save g:ale_rust_cargo_default_feature_behavior + Save g:ale_rust_cargo_include_features unlet! g:ale_rust_cargo_use_check unlet! g:ale_cargo_check_all_targets + unlet! g:ale_rust_cargo_default_feature_behavior + unlet! g:ale_rust_cargo_include_features runtime ale_linters/rust/cargo.vim call ale#test#SetDirectory('/testplugin/test/command_callback') @@ -114,3 +118,47 @@ Execute(--all-targets should be used when g:ale_rust_cargo_check_all_targets is \ ale_linters#rust#cargo#GetCommand(bufnr(''), []) AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr('')) + +Execute(--no-default-features should be used when g:ale_rust_cargo_default_feature_behavior is none): + let g:ale_rust_cargo_default_feature_behavior = 'none' + + AssertEqual + \ 'cargo check' . g:suffix . ' --no-default-features', + \ ale_linters#rust#cargo#GetCommand(bufnr(''), [ + \ 'cargo 0.22.0 (3423351a5 2017-10-06)', + \ ]) + +Execute(g:ale_rust_cargo_include_features added when g:ale_rust_cargo_default_feature_behavior is none): + let g:ale_rust_cargo_default_feature_behavior = 'none' + let g:ale_rust_cargo_include_features = 'foo bar' + + AssertEqual + \ 'cargo check' . g:suffix . ' --no-default-features --features ' . + \ (fnamemodify(&shell, ':t') is? 'cmd.exe' ? '"foo bar"' : "'foo bar'"), + \ ale_linters#rust#cargo#GetCommand(bufnr(''), [ + \ 'cargo 0.22.0 (3423351a5 2017-10-06)', + \ ]) + +Execute(g:ale_rust_cargo_include_features added and escaped): + let g:ale_rust_cargo_default_feature_behavior = 'default' + let g:ale_rust_cargo_include_features = "foo bar baz" + + AssertEqual + \ 'cargo check' . g:suffix . ' --features ' . + \ (fnamemodify(&shell, ':t') is? 'cmd.exe' ? '"foo bar baz"' : "'foo bar baz'"), + \ ale_linters#rust#cargo#GetCommand(bufnr(''), [ + \ 'cargo 0.22.0 (3423351a5 2017-10-06)', + \ ]) + +Execute(--all-features should be used when g:ale_rust_cargo_default_feature_behavior is all): + let g:ale_rust_cargo_default_feature_behavior = 'all' + + " When all features are enabled we should ignore extra features to add + " since it won't do anything + let g:ale_rust_cargo_include_features = 'foo bar' + + AssertEqual + \ 'cargo check' . g:suffix . ' --all-features', + \ ale_linters#rust#cargo#GetCommand(bufnr(''), [ + \ 'cargo 0.22.0 (3423351a5 2017-10-06)', + \ ]) |