summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2018-04-17 13:30:30 +0100
committerw0rp <devw0rp@gmail.com>2018-04-17 13:30:30 +0100
commitf9ba3d924fc445ceea6ab7a6700b95dd12d268ca (patch)
tree41d169514dc43d61f71e7bdf3052af9789015310
parentfb720251bf38139c1811665852e1bc2f73d0393f (diff)
downloadale-f9ba3d924fc445ceea6ab7a6700b95dd12d268ca.zip
Fix #1507 - Add an option for disabling switching directories for pylint
-rw-r--r--ale_linters/python/pylint.vim17
-rw-r--r--doc/ale-python.txt11
-rw-r--r--test/command_callback/test_pylint_command_callback.vader13
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'