summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvor Peles <ivorpeles@gmail.com>2020-10-06 02:12:05 -0400
committerIvor Peles <ivorpeles@gmail.com>2020-11-21 19:24:19 -0500
commit373ffa0f316f14559870fb3903d723c6d88597ee (patch)
tree4777517d8d1a428a2460aa0db8ac698d9f477550
parent681a6e371d02cce9c2414c19f5deeae61aa321fa (diff)
downloadale-373ffa0f316f14559870fb3903d723c6d88597ee.zip
Use pipenv isort executable when python_auto_pipenv = 1
-rw-r--r--autoload/ale/fixers/isort.vim22
1 files changed, 16 insertions, 6 deletions
diff --git a/autoload/ale/fixers/isort.vim b/autoload/ale/fixers/isort.vim
index 9070fb27..926822f2 100644
--- a/autoload/ale/fixers/isort.vim
+++ b/autoload/ale/fixers/isort.vim
@@ -5,14 +5,23 @@ call ale#Set('python_isort_executable', 'isort')
call ale#Set('python_isort_options', '')
call ale#Set('python_isort_use_global', get(g:, 'ale_use_global_executables', 0))
+function! ale#fixers#isort#GetExecutable(buffer) abort
+ if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_isort_auto_pipenv'))
+ \ && ale#python#PipenvPresent(a:buffer)
+ return 'pipenv'
+ endif
+
+ return ale#python#FindExecutable(a:buffer, 'python_isort', ['isort'])
+endfunction
+
function! ale#fixers#isort#Fix(buffer) abort
let l:options = ale#Var(a:buffer, 'python_isort_options')
- let l:executable = ale#python#FindExecutable(
- \ a:buffer,
- \ 'python_isort',
- \ ['isort'],
- \)
+ let l:executable = ale#fixers#isort#GetExecutable(a:buffer)
+
+ let l:exec_args = l:executable =~? 'pipenv$'
+ \ ? ' run isort'
+ \ : ''
if !executable(l:executable)
return 0
@@ -20,6 +29,7 @@ function! ale#fixers#isort#Fix(buffer) abort
return {
\ 'command': ale#path#BufferCdString(a:buffer)
- \ . ale#Escape(l:executable) . (!empty(l:options) ? ' ' . l:options : '') . ' -',
+ \ . ale#Escape(l:executable) . l:exec_args
+ \ . (!empty(l:options) ? ' ' . l:options : '') . ' -',
\}
endfunction