#2009 - Force Windows jobs to run in a CMD shell
This commit is contained in:
parent
ba6f08f3d4
commit
422908a572
3 changed files with 26 additions and 1 deletions
|
@ -293,6 +293,8 @@ function! ale#command#Run(buffer, command, Callback, options) abort
|
|||
let s:fake_job_id = get(s:, 'fake_job_id', 0) + 1
|
||||
let l:job_id = s:fake_job_id
|
||||
endif
|
||||
elseif has('win32')
|
||||
let l:job_id = ale#job#StartWithCmd(l:command, l:job_options)
|
||||
else
|
||||
let l:job_id = ale#job#Start(l:command, l:job_options)
|
||||
endif
|
||||
|
|
|
@ -276,6 +276,24 @@ function! ale#job#Start(command, options) abort
|
|||
return l:job_id
|
||||
endfunction
|
||||
|
||||
" Force running commands in a Windows CMD command line.
|
||||
" This means the same command syntax works everywhere.
|
||||
function! ale#job#StartWithCmd(command, options) abort
|
||||
let l:shell = &l:shell
|
||||
let l:shellcmdflag = &l:shellcmdflag
|
||||
let &l:shell = 'cmd'
|
||||
let &l:shellcmdflag = '/c'
|
||||
|
||||
try
|
||||
let l:job_id = ale#job#Start(a:command, a:options)
|
||||
finally
|
||||
let &l:shell = l:shell
|
||||
let &l:shellcmdflag = l:shellcmdflag
|
||||
endtry
|
||||
|
||||
return l:job_id
|
||||
endfunction
|
||||
|
||||
" Send raw data to the job.
|
||||
function! ale#job#SendRaw(job_id, string) abort
|
||||
if has('nvim')
|
||||
|
|
|
@ -331,7 +331,12 @@ function! ale#lsp#StartProgram(conn_id, executable, command) abort
|
|||
\ 'mode': 'raw',
|
||||
\ 'out_cb': {_, message -> ale#lsp#HandleMessage(a:conn_id, message)},
|
||||
\}
|
||||
let l:job_id = ale#job#Start(a:command, l:options)
|
||||
|
||||
if has('win32')
|
||||
let l:job_id = ale#job#StartWithCmd(a:command, l:options)
|
||||
else
|
||||
let l:job_id = ale#job#Start(a:command, l:options)
|
||||
endif
|
||||
else
|
||||
let l:job_id = l:conn.job_id
|
||||
endif
|
||||
|
|
Reference in a new issue