diff options
author | w0rp <devw0rp@gmail.com> | 2018-04-17 13:30:30 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2018-04-17 13:30:30 +0100 |
commit | f9ba3d924fc445ceea6ab7a6700b95dd12d268ca (patch) | |
tree | 41d169514dc43d61f71e7bdf3052af9789015310 | |
parent | fb720251bf38139c1811665852e1bc2f73d0393f (diff) | |
download | ale-f9ba3d924fc445ceea6ab7a6700b95dd12d268ca.zip |
Fix #1507 - Add an option for disabling switching directories for pylint
-rw-r--r-- | ale_linters/python/pylint.vim | 17 | ||||
-rw-r--r-- | doc/ale-python.txt | 11 | ||||
-rw-r--r-- | test/command_callback/test_pylint_command_callback.vader | 13 |
3 files changed, 33 insertions, 8 deletions
diff --git a/ale_linters/python/pylint.vim b/ale_linters/python/pylint.vim index 5eafd8f7..a6fc8ed4 100644 --- a/ale_linters/python/pylint.vim +++ b/ale_linters/python/pylint.vim @@ -1,20 +1,21 @@ " Author: keith <k@keith.so> " Description: pylint for python files -let g:ale_python_pylint_executable = -\ get(g:, 'ale_python_pylint_executable', 'pylint') - -let g:ale_python_pylint_options = -\ get(g:, 'ale_python_pylint_options', '') - -let g:ale_python_pylint_use_global = get(g:, 'ale_python_pylint_use_global', get(g:, 'ale_use_global_executables', 0)) +call ale#Set('python_pylint_executable', 'pylint') +call ale#Set('python_pylint_options', '') +call ale#Set('python_pylint_use_global', get(g:, 'ale_use_global_executables', 0)) +call ale#Set('python_pylint_change_directory', 1) function! ale_linters#python#pylint#GetExecutable(buffer) abort return ale#python#FindExecutable(a:buffer, 'python_pylint', ['pylint']) endfunction function! ale_linters#python#pylint#GetCommand(buffer) abort - return ale#path#BufferCdString(a:buffer) + let l:cd_string = ale#Var(a:buffer, 'python_pylint_change_directory') + \ ? ale#path#BufferCdString(a:buffer) + \ : '' + + return l:cd_string \ . ale#Escape(ale_linters#python#pylint#GetExecutable(a:buffer)) \ . ' ' . ale#Var(a:buffer, 'python_pylint_options') \ . ' --output-format text --msg-template="{path}:{line}:{column}: {msg_id} ({symbol}) {msg}" --reports n' diff --git a/doc/ale-python.txt b/doc/ale-python.txt index 396603e9..e1614262 100644 --- a/doc/ale-python.txt +++ b/doc/ale-python.txt @@ -231,6 +231,17 @@ g:ale_python_pycodestyle_use_global *g:ale_python_pycodestyle_use_global* =============================================================================== pylint *ale-python-pylint* +g:ale_python_pylint_change_directory *g:ale_python_pylint_change_directory* + *b:ale_python_pylint_change_directory* + Type: |Number| + Default: `1` + + If set to `1`, ALE will switch to the directory the Python file being + checked with `pylint` is in before checking it. This helps `pylint` find + configuration files more easily. This option can be turned off if you want + to control the directory Python is executed from yourself. + + g:ale_python_pylint_executable *g:ale_python_pylint_executable* *b:ale_python_pylint_executable* Type: |String| diff --git a/test/command_callback/test_pylint_command_callback.vader b/test/command_callback/test_pylint_command_callback.vader index 5dc6abe9..1cdc34d4 100644 --- a/test/command_callback/test_pylint_command_callback.vader +++ b/test/command_callback/test_pylint_command_callback.vader @@ -2,10 +2,12 @@ Before: Save g:ale_python_pylint_executable Save g:ale_python_pylint_options Save g:ale_python_pylint_use_global + Save g:ale_python_pylint_change_directory unlet! g:ale_python_pylint_executable unlet! g:ale_python_pylint_options unlet! g:ale_python_pylint_use_global + unlet! g:ale_python_pylint_change_directory runtime ale_linters/python/pylint.vim call ale#test#SetDirectory('/testplugin/test/command_callback') @@ -32,6 +34,17 @@ Execute(The pylint callbacks should return the correct default values): \ . ale#Escape('pylint') . ' ' . b:command_tail, \ ale_linters#python#pylint#GetCommand(bufnr('')) +Execute(The option for disabling changing directories should work): + let g:ale_python_pylint_change_directory = 0 + + AssertEqual + \ 'pylint', + \ ale_linters#python#pylint#GetExecutable(bufnr('')) + \ + AssertEqual + \ ale#Escape('pylint') . ' ' . b:command_tail, + \ ale_linters#python#pylint#GetCommand(bufnr('')) + Execute(The pylint executable should be configurable, and escaped properly): let g:ale_python_pylint_executable = 'executable with spaces' |