diff options
author | w0rp <devw0rp@gmail.com> | 2020-08-31 09:12:36 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2020-08-31 09:12:36 +0100 |
commit | ac2100d410378906d7d277561f50ae3305b6429e (patch) | |
tree | 63b0892541173721c1c1e732befa11bdd1458cc6 | |
parent | cdaeca452e7fe24b117ac840b392fe4e89acda57 (diff) | |
download | ale-ac2100d410378906d7d277561f50ae3305b6429e.zip |
Fix flake8 cd logic for invalid options
-rw-r--r-- | ale_linters/python/flake8.vim | 26 | ||||
-rw-r--r-- | test/command_callback/test_flake8_command_callback.vader | 20 |
2 files changed, 31 insertions, 15 deletions
diff --git a/ale_linters/python/flake8.vim b/ale_linters/python/flake8.vim index 85216ae8..fc4ab692 100644 --- a/ale_linters/python/flake8.vim +++ b/ale_linters/python/flake8.vim @@ -40,27 +40,23 @@ endfunction function! ale_linters#python#flake8#GetCdString(buffer) abort 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# 1 - let l:change_directory = 'file' - elseif l:change_directory is# 0 - let l:change_directory = 'off' - endif + if l:change_directory is# 'project' + let l:project_root = ale#python#FindProjectRootIni(a:buffer) - if l:change_directory is# 'file' - return ale#path#BufferCdString(a:buffer) - elseif l:change_directory is# 'off' - return '' + if !empty(l:project_root) + let l:cd_string = ale#path#CdString(l:project_root) + endif endif - let l:project_root = ale#python#FindProjectRootIni(a:buffer) - - if !empty(l:project_root) - return ale#path#CdString(l:project_root) + if (l:change_directory is# 'project' && empty(l:cd_string)) + \|| l:change_directory is# 1 + \|| l:change_directory is# 'file' + let l:cd_string = ale#path#BufferCdString(a:buffer) endif - return ale#path#BufferCdString(a:buffer) + return l:cd_string endfunction function! ale_linters#python#flake8#GetCommand(buffer, version) abort diff --git a/test/command_callback/test_flake8_command_callback.vader b/test/command_callback/test_flake8_command_callback.vader index 0f370983..09f64ee3 100644 --- a/test/command_callback/test_flake8_command_callback.vader +++ b/test/command_callback/test_flake8_command_callback.vader @@ -41,6 +41,19 @@ Execute(The option for disabling changing directories should work): \ 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): 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 -', \] + 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): let g:ale_python_flake8_options = '--some-option' |