From e52388b8b1361198a6d2668a1fcaa4b78729187f Mon Sep 17 00:00:00 2001 From: Jean Mertz Date: Mon, 24 Jun 2019 19:47:49 +0200 Subject: support clippy options with -- --- ale_linters/rust/cargo.vim | 10 +++++++++- test/command_callback/test_cargo_command_callbacks.vader | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ale_linters/rust/cargo.vim b/ale_linters/rust/cargo.vim index f98dee9b..8ea6f19c 100644 --- a/ale_linters/rust/cargo.vim +++ b/ale_linters/rust/cargo.vim @@ -69,7 +69,15 @@ function! ale_linters#rust#cargo#GetCommand(buffer, version) abort if ale#Var(a:buffer, 'rust_cargo_use_clippy') let l:subcommand = 'clippy' - let l:clippy_options = ' ' . ale#Var(a:buffer, 'rust_cargo_clippy_options') + + let l:clippy_options = ale#Var(a:buffer, 'rust_cargo_clippy_options') + if l:clippy_options =~ "^-- " + let l:clippy_options = join(split(l:clippy_options, '-- ')) + endif + + if l:clippy_options isnot# '' + let l:clippy_options = ' -- ' . l:clippy_options + endif endif return l:nearest_cargo_prefix . 'cargo ' diff --git a/test/command_callback/test_cargo_command_callbacks.vader b/test/command_callback/test_cargo_command_callbacks.vader index 438c97db..42ca0301 100644 --- a/test/command_callback/test_cargo_command_callbacks.vader +++ b/test/command_callback/test_cargo_command_callbacks.vader @@ -141,7 +141,7 @@ Execute(When ale_rust_cargo_use_clippy is set, cargo-clippy is used as linter): let b:ale_rust_cargo_use_clippy = 1 AssertLinter 'cargo', [ \ ale#Escape('cargo') . ' --version', - \ 'cargo clippy --frozen --message-format=json -q ', + \ 'cargo clippy --frozen --message-format=json -q', \] Execute(When ale_rust_cargo_clippy_options is set, cargo-clippy appends it to commandline): @@ -152,6 +152,14 @@ Execute(When ale_rust_cargo_clippy_options is set, cargo-clippy appends it to co \ 'cargo clippy --frozen --message-format=json -q -- -D warnings', \] +Execute(When ale_rust_cargo_clippy_options does not start with --, it is added): + let b:ale_rust_cargo_use_clippy = 1 + let b:ale_rust_cargo_clippy_options = '-D warnings' + AssertLinter 'cargo', [ + \ ale#Escape('cargo') . ' --version', + \ 'cargo clippy --frozen --message-format=json -q -- -D warnings', + \] + Execute(cargo-check does not refer ale_rust_cargo_clippy_options): let b:ale_rust_cargo_use_clippy = 0 let b:ale_rust_cargo_use_check = 1 -- cgit v1.2.3