Allow linting rust tests and examples with cargo
This commit is contained in:
		
							parent
							
								
									4ec661b305
								
							
						
					
					
						commit
						e272207114
					
				@ -4,6 +4,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
call ale#Set('rust_cargo_use_check', 1)
 | 
					call ale#Set('rust_cargo_use_check', 1)
 | 
				
			||||||
call ale#Set('rust_cargo_check_all_targets', 0)
 | 
					call ale#Set('rust_cargo_check_all_targets', 0)
 | 
				
			||||||
 | 
					call ale#Set('rust_cargo_check_examples', 0)
 | 
				
			||||||
 | 
					call ale#Set('rust_cargo_check_tests', 0)
 | 
				
			||||||
call ale#Set('rust_cargo_default_feature_behavior', 'default')
 | 
					call ale#Set('rust_cargo_default_feature_behavior', 'default')
 | 
				
			||||||
call ale#Set('rust_cargo_include_features', '')
 | 
					call ale#Set('rust_cargo_include_features', '')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -31,6 +33,12 @@ function! ale_linters#rust#cargo#GetCommand(buffer, version_output) abort
 | 
				
			|||||||
    let l:use_all_targets = l:use_check
 | 
					    let l:use_all_targets = l:use_check
 | 
				
			||||||
    \   && ale#Var(a:buffer, 'rust_cargo_check_all_targets')
 | 
					    \   && ale#Var(a:buffer, 'rust_cargo_check_all_targets')
 | 
				
			||||||
    \   && ale#semver#GTE(l:version, [0, 22, 0])
 | 
					    \   && ale#semver#GTE(l:version, [0, 22, 0])
 | 
				
			||||||
 | 
					    let l:use_examples = l:use_check
 | 
				
			||||||
 | 
					    \   && ale#Var(a:buffer, 'rust_cargo_check_examples')
 | 
				
			||||||
 | 
					    \   && ale#semver#GTE(l:version, [0, 22, 0])
 | 
				
			||||||
 | 
					    let l:use_tests = l:use_check
 | 
				
			||||||
 | 
					    \   && ale#Var(a:buffer, 'rust_cargo_check_tests')
 | 
				
			||||||
 | 
					    \   && ale#semver#GTE(l: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')
 | 
				
			||||||
    if !empty(l:include_features)
 | 
					    if !empty(l:include_features)
 | 
				
			||||||
@ -50,6 +58,8 @@ function! ale_linters#rust#cargo#GetCommand(buffer, version_output) abort
 | 
				
			|||||||
    return 'cargo '
 | 
					    return 'cargo '
 | 
				
			||||||
    \   . (l:use_check ? 'check' : 'build')
 | 
					    \   . (l:use_check ? 'check' : 'build')
 | 
				
			||||||
    \   . (l:use_all_targets ? ' --all-targets' : '')
 | 
					    \   . (l:use_all_targets ? ' --all-targets' : '')
 | 
				
			||||||
 | 
					    \   . (l:use_examples ? ' --examples' : '')
 | 
				
			||||||
 | 
					    \   . (l:use_tests ? ' --tests' : '')
 | 
				
			||||||
    \   . ' --frozen --message-format=json -q'
 | 
					    \   . ' --frozen --message-format=json -q'
 | 
				
			||||||
    \   . l:default_feature
 | 
					    \   . l:default_feature
 | 
				
			||||||
    \   . l:include_features
 | 
					    \   . l:include_features
 | 
				
			||||||
 | 
				
			|||||||
@ -59,6 +59,26 @@ g:ale_rust_cargo_check_all_targets         *g:ale_rust_cargo_check_all_targets*
 | 
				
			|||||||
  is used. See |g:ale_rust_cargo_use_check|,
 | 
					  is used. See |g:ale_rust_cargo_use_check|,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					g:ale_rust_cargo_check_tests                     *g:ale_rust_cargo_check_tests*
 | 
				
			||||||
 | 
					                                                 *b:ale_rust_cargo_check_tests*
 | 
				
			||||||
 | 
					  Type: |Number|
 | 
				
			||||||
 | 
					  Default: `0`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  When set to `1`, ALE will set the `--tests` option when `cargo check`
 | 
				
			||||||
 | 
					  is used. This allows for linting of tests which are normally excluded.
 | 
				
			||||||
 | 
					  See |g:ale_rust_cargo_use_check|,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					g:ale_rust_cargo_check_examples               *g:ale_rust_cargo_check_examples*
 | 
				
			||||||
 | 
					                                              *b:ale_rust_cargo_check_examples*
 | 
				
			||||||
 | 
					  Type: |Number|
 | 
				
			||||||
 | 
					  Default: `0`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  When set to `1`, ALE will set the `--examples` option when `cargo check`
 | 
				
			||||||
 | 
					  is used. This allows for linting of examples which are normally excluded.
 | 
				
			||||||
 | 
					  See |g:ale_rust_cargo_use_check|,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
g:ale_rust_cargo_default_feature_behavior
 | 
					g:ale_rust_cargo_default_feature_behavior
 | 
				
			||||||
                                    *g:ale_rust_cargo_default_feature_behavior*
 | 
					                                    *g:ale_rust_cargo_default_feature_behavior*
 | 
				
			||||||
                                    *b:ale_rust_cargo_default_feature_behavior*
 | 
					                                    *b:ale_rust_cargo_default_feature_behavior*
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,15 @@
 | 
				
			|||||||
Before:
 | 
					Before:
 | 
				
			||||||
  Save g:ale_rust_cargo_use_check
 | 
					  Save g:ale_rust_cargo_use_check
 | 
				
			||||||
  Save g:ale_rust_cargo_check_all_targets
 | 
					  Save g:ale_rust_cargo_check_all_targets
 | 
				
			||||||
 | 
					  Save g:ale_rust_cargo_check_tests
 | 
				
			||||||
 | 
					  Save g:ale_rust_cargo_check_examples
 | 
				
			||||||
  Save g:ale_rust_cargo_default_feature_behavior
 | 
					  Save g:ale_rust_cargo_default_feature_behavior
 | 
				
			||||||
  Save g:ale_rust_cargo_include_features
 | 
					  Save g:ale_rust_cargo_include_features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  unlet! g:ale_rust_cargo_use_check
 | 
					  unlet! g:ale_rust_cargo_use_check
 | 
				
			||||||
  unlet! g:ale_cargo_check_all_targets
 | 
					  unlet! g:ale_rust_cargo_check_all_targets
 | 
				
			||||||
 | 
					  unlet! g:ale_rust_cargo_check_tests
 | 
				
			||||||
 | 
					  unlet! g:ale_rust_cargo_check_examples
 | 
				
			||||||
  unlet! g:ale_rust_cargo_default_feature_behavior
 | 
					  unlet! g:ale_rust_cargo_default_feature_behavior
 | 
				
			||||||
  unlet! g:ale_rust_cargo_include_features
 | 
					  unlet! g:ale_rust_cargo_include_features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -119,6 +123,38 @@ Execute(--all-targets should be used when g:ale_rust_cargo_check_all_targets is
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
 | 
					  AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Execute(--tests should be used when g:ale_rust_cargo_check_tests is set to 1):
 | 
				
			||||||
 | 
					  let g:ale_rust_cargo_check_tests = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  AssertEqual
 | 
				
			||||||
 | 
					  \ 'cargo check --tests' . g:suffix,
 | 
				
			||||||
 | 
					  \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
 | 
				
			||||||
 | 
					  \   'cargo 0.22.0 (3423351a5 2017-10-06)',
 | 
				
			||||||
 | 
					  \ ])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " We should cache the version check
 | 
				
			||||||
 | 
					  AssertEqual
 | 
				
			||||||
 | 
					  \ 'cargo check --tests' . g:suffix,
 | 
				
			||||||
 | 
					  \ ale_linters#rust#cargo#GetCommand(bufnr(''), [])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  AssertEqual '', ale_linters#rust#cargo#VersionCheck(bufnr(''))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Execute(--examples should be used when g:ale_rust_cargo_check_examples is set to 1):
 | 
				
			||||||
 | 
					  let g:ale_rust_cargo_check_examples = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  AssertEqual
 | 
				
			||||||
 | 
					  \ 'cargo check --examples' . g:suffix,
 | 
				
			||||||
 | 
					  \ ale_linters#rust#cargo#GetCommand(bufnr(''), [
 | 
				
			||||||
 | 
					  \   'cargo 0.22.0 (3423351a5 2017-10-06)',
 | 
				
			||||||
 | 
					  \ ])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " We should cache the version check
 | 
				
			||||||
 | 
					  AssertEqual
 | 
				
			||||||
 | 
					  \ 'cargo check --examples' . g:suffix,
 | 
				
			||||||
 | 
					  \ 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):
 | 
					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'
 | 
					  let g:ale_rust_cargo_default_feature_behavior = 'none'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user