mirror of
https://github.com/dense-analysis/ale
synced 2025-02-03 05:52:14 +00:00
support all cargo options for build/clippy
This commit is contained in:
parent
e52388b8b1
commit
53b0e6c37d
@ -25,14 +25,11 @@ endfunction
|
|||||||
function! ale_linters#rust#cargo#GetCommand(buffer, version) abort
|
function! ale_linters#rust#cargo#GetCommand(buffer, version) abort
|
||||||
let l:use_check = ale#Var(a:buffer, 'rust_cargo_use_check')
|
let l:use_check = ale#Var(a:buffer, 'rust_cargo_use_check')
|
||||||
\ && ale#semver#GTE(a:version, [0, 17, 0])
|
\ && ale#semver#GTE(a:version, [0, 17, 0])
|
||||||
let l:use_all_targets = l:use_check
|
let l:use_all_targets = ale#Var(a:buffer, 'rust_cargo_check_all_targets')
|
||||||
\ && ale#Var(a:buffer, 'rust_cargo_check_all_targets')
|
|
||||||
\ && ale#semver#GTE(a:version, [0, 22, 0])
|
\ && ale#semver#GTE(a:version, [0, 22, 0])
|
||||||
let l:use_examples = l:use_check
|
let l:use_examples = ale#Var(a:buffer, 'rust_cargo_check_examples')
|
||||||
\ && ale#Var(a:buffer, 'rust_cargo_check_examples')
|
|
||||||
\ && ale#semver#GTE(a:version, [0, 22, 0])
|
\ && ale#semver#GTE(a:version, [0, 22, 0])
|
||||||
let l:use_tests = l:use_check
|
let l:use_tests = ale#Var(a:buffer, 'rust_cargo_check_tests')
|
||||||
\ && ale#Var(a:buffer, 'rust_cargo_check_tests')
|
|
||||||
\ && ale#semver#GTE(a:version, [0, 22, 0])
|
\ && ale#semver#GTE(a:version, [0, 22, 0])
|
||||||
|
|
||||||
let l:include_features = ale#Var(a:buffer, 'rust_cargo_include_features')
|
let l:include_features = ale#Var(a:buffer, 'rust_cargo_include_features')
|
||||||
@ -69,9 +66,9 @@ function! ale_linters#rust#cargo#GetCommand(buffer, version) abort
|
|||||||
|
|
||||||
if ale#Var(a:buffer, 'rust_cargo_use_clippy')
|
if ale#Var(a:buffer, 'rust_cargo_use_clippy')
|
||||||
let l:subcommand = '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 =~ "^-- "
|
|
||||||
|
if l:clippy_options =~# '^-- '
|
||||||
let l:clippy_options = join(split(l:clippy_options, '-- '))
|
let l:clippy_options = join(split(l:clippy_options, '-- '))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -139,6 +139,7 @@ Execute(When a crate belongs to a workspace we chdir into the crate, unless we d
|
|||||||
|
|
||||||
Execute(When ale_rust_cargo_use_clippy is set, cargo-clippy is used as linter):
|
Execute(When ale_rust_cargo_use_clippy is set, cargo-clippy is used as linter):
|
||||||
let b:ale_rust_cargo_use_clippy = 1
|
let b:ale_rust_cargo_use_clippy = 1
|
||||||
|
|
||||||
AssertLinter 'cargo', [
|
AssertLinter 'cargo', [
|
||||||
\ ale#Escape('cargo') . ' --version',
|
\ ale#Escape('cargo') . ' --version',
|
||||||
\ 'cargo clippy --frozen --message-format=json -q',
|
\ 'cargo clippy --frozen --message-format=json -q',
|
||||||
@ -147,23 +148,51 @@ Execute(When ale_rust_cargo_use_clippy is set, cargo-clippy is used as linter):
|
|||||||
Execute(When ale_rust_cargo_clippy_options is set, cargo-clippy appends it to commandline):
|
Execute(When ale_rust_cargo_clippy_options is set, cargo-clippy appends it to commandline):
|
||||||
let b:ale_rust_cargo_use_clippy = 1
|
let b:ale_rust_cargo_use_clippy = 1
|
||||||
let b:ale_rust_cargo_clippy_options = '-- -D warnings'
|
let b:ale_rust_cargo_clippy_options = '-- -D warnings'
|
||||||
|
|
||||||
AssertLinter 'cargo', [
|
AssertLinter 'cargo', [
|
||||||
\ ale#Escape('cargo') . ' --version',
|
\ ale#Escape('cargo') . ' --version',
|
||||||
\ 'cargo clippy --frozen --message-format=json -q -- -D warnings',
|
\ 'cargo clippy --frozen --message-format=json -q -- -D warnings',
|
||||||
\]
|
\]
|
||||||
|
|
||||||
Execute(When ale_rust_cargo_clippy_options does not start with --, it is added):
|
Execute(Clippy options work without prepending --):
|
||||||
let b:ale_rust_cargo_use_clippy = 1
|
let b:ale_rust_cargo_use_clippy = 1
|
||||||
let b:ale_rust_cargo_clippy_options = '-D warnings'
|
let b:ale_rust_cargo_clippy_options = '-D warnings'
|
||||||
|
|
||||||
AssertLinter 'cargo', [
|
AssertLinter 'cargo', [
|
||||||
\ ale#Escape('cargo') . ' --version',
|
\ ale#Escape('cargo') . ' --version',
|
||||||
\ 'cargo clippy --frozen --message-format=json -q -- -D warnings',
|
\ 'cargo clippy --frozen --message-format=json -q -- -D warnings',
|
||||||
\]
|
\]
|
||||||
|
|
||||||
|
Execute(Build supports all cargo flags):
|
||||||
|
let g:ale_rust_cargo_use_check = 0
|
||||||
|
let g:ale_rust_cargo_check_all_targets = 1
|
||||||
|
let g:ale_rust_cargo_check_tests = 1
|
||||||
|
let g:ale_rust_cargo_check_examples = 1
|
||||||
|
let b:ale_rust_cargo_default_feature_behavior = 'all'
|
||||||
|
|
||||||
|
AssertLinter 'cargo', [
|
||||||
|
\ ale#Escape('cargo') . ' --version',
|
||||||
|
\ 'cargo build --all-targets --examples --tests --frozen --message-format=json -q --all-features',
|
||||||
|
\]
|
||||||
|
|
||||||
|
Execute(Clippy supports all cargo flags):
|
||||||
|
let b:ale_rust_cargo_use_clippy = 1
|
||||||
|
let g:ale_rust_cargo_check_all_targets = 1
|
||||||
|
let g:ale_rust_cargo_check_tests = 1
|
||||||
|
let g:ale_rust_cargo_check_examples = 1
|
||||||
|
let b:ale_rust_cargo_default_feature_behavior = 'all'
|
||||||
|
let b:ale_rust_cargo_clippy_options = '-D warnings'
|
||||||
|
|
||||||
|
AssertLinter 'cargo', [
|
||||||
|
\ ale#Escape('cargo') . ' --version',
|
||||||
|
\ 'cargo clippy --all-targets --examples --tests --frozen --message-format=json -q --all-features -- -D warnings',
|
||||||
|
\]
|
||||||
|
|
||||||
Execute(cargo-check does not refer ale_rust_cargo_clippy_options):
|
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_clippy = 0
|
||||||
let b:ale_rust_cargo_use_check = 1
|
let b:ale_rust_cargo_use_check = 1
|
||||||
let b:ale_rust_cargo_clippy_options = '-- -D warnings'
|
let b:ale_rust_cargo_clippy_options = '-- -D warnings'
|
||||||
|
|
||||||
AssertLinter 'cargo', [
|
AssertLinter 'cargo', [
|
||||||
\ ale#Escape('cargo') . ' --version',
|
\ ale#Escape('cargo') . ' --version',
|
||||||
\ 'cargo check --frozen --message-format=json -q',
|
\ 'cargo check --frozen --message-format=json -q',
|
||||||
|
Loading…
Reference in New Issue
Block a user