Fix flake8 cd logic for invalid options

This commit is contained in:
w0rp
2020-08-31 09:12:36 +01:00
parent cdaeca452e
commit ac2100d410
2 changed files with 32 additions and 16 deletions

View File

@@ -40,27 +40,23 @@ endfunction
function! ale_linters#python#flake8#GetCdString(buffer) abort function! ale_linters#python#flake8#GetCdString(buffer) abort
let l:change_directory = ale#Var(a:buffer, 'python_flake8_change_directory') let l:change_directory = ale#Var(a:buffer, 'python_flake8_change_directory')
let l:cd_string = ''
" map legacy options to new ones if l:change_directory is# 'project'
if l:change_directory is# 1 let l:project_root = ale#python#FindProjectRootIni(a:buffer)
let l:change_directory = 'file'
elseif l:change_directory is# 0 if !empty(l:project_root)
let l:change_directory = 'off' let l:cd_string = ale#path#CdString(l:project_root)
endif
endif endif
if l:change_directory is# 'file' if (l:change_directory is# 'project' && empty(l:cd_string))
return ale#path#BufferCdString(a:buffer) \|| l:change_directory is# 1
elseif l:change_directory is# 'off' \|| l:change_directory is# 'file'
return '' let l:cd_string = ale#path#BufferCdString(a:buffer)
endif endif
let l:project_root = ale#python#FindProjectRootIni(a:buffer) return l:cd_string
if !empty(l:project_root)
return ale#path#CdString(l:project_root)
endif
return ale#path#BufferCdString(a:buffer)
endfunction endfunction
function! ale_linters#python#flake8#GetCommand(buffer, version) abort function! ale_linters#python#flake8#GetCommand(buffer, version) abort

View File

@@ -41,6 +41,19 @@ Execute(The option for disabling changing directories should work):
\ ale#Escape('flake8') . ' --format=default --stdin-display-name %s -', \ ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
\] \]
let g:ale_python_flake8_change_directory = 0
AssertLinter 'flake8', [
\ ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
\]
" Invalid options should be considered the same as turning the setting off.
let g:ale_python_flake8_change_directory = 'xxx'
AssertLinter 'flake8', [
\ ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
\]
Execute(The option for changing directory to project root should work): Execute(The option for changing directory to project root should work):
silent execute 'file ' . fnameescape(g:dir . '/python_paths/namespace_package_tox/namespace/foo/bar.py') silent execute 'file ' . fnameescape(g:dir . '/python_paths/namespace_package_tox/namespace/foo/bar.py')
@@ -60,6 +73,13 @@ Execute(The option for changing directory to file dir should work):
\ . ale#Escape('flake8') . ' --format=default --stdin-display-name %s -', \ . ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
\] \]
let g:ale_python_flake8_change_directory = 1
AssertLinter 'flake8', [
\ ale#path#BufferCdString(bufnr(''))
\ . ale#Escape('flake8') . ' --format=default --stdin-display-name %s -',
\]
Execute(The flake8 command callback should let you set options): Execute(The flake8 command callback should let you set options):
let g:ale_python_flake8_options = '--some-option' let g:ale_python_flake8_options = '--some-option'