async: new function for validating directory

references #1544
This commit is contained in:
Christian Brabandt 2017-08-26 08:04:44 +02:00
parent 3e25ca5a5a
commit db907f5598
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
1 changed files with 10 additions and 15 deletions

View File

@ -42,6 +42,13 @@ function! s:po_output(buf, file)
endif endif
endfunction endfunction
function! s:valid_dir(dir)
if empty(a:dir) || !isdirectory(a:dir)
return getcwd()
endif
return a:dir
endfunction
if v:version >= 800 && has("job") if v:version >= 800 && has("job")
" Vim 8.0 with Job feature " Vim 8.0 with Job feature
@ -166,14 +173,10 @@ elseif has("nvim")
endfunction endfunction
function! airline#async#nvim_get_mq_async(cmd, file) function! airline#async#nvim_get_mq_async(cmd, file)
let cwd = fnamemodify(a:file, ':p:h')
if empty(cwd) || !isdirectory(cwd)
let cwd = getcwd()
endif
let config = { let config = {
\ 'buf': '', \ 'buf': '',
\ 'file': a:file, \ 'file': a:file,
\ 'cwd': cwd, \ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h'))
\ 'on_stdout': function('s:nvim_mq_job_handler'), \ 'on_stdout': function('s:nvim_mq_job_handler'),
\ 'on_exit': function('s:nvim_mq_job_handler') \ 'on_exit': function('s:nvim_mq_job_handler')
\ } \ }
@ -191,14 +194,10 @@ elseif has("nvim")
endfunction endfunction
function! airline#async#nvim_get_msgfmt_stat(cmd, file) function! airline#async#nvim_get_msgfmt_stat(cmd, file)
let cwd = fnamemodify(a:file, ':p:h')
if empty(cwd) || !isdirectory(cwd)
let cwd = getcwd()
endif
let config = { let config = {
\ 'buf': '', \ 'buf': '',
\ 'file': a:file, \ 'file': a:file,
\ 'cwd': cwd, \ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h'))
\ 'on_stdout': function('s:nvim_po_job_handler'), \ 'on_stdout': function('s:nvim_po_job_handler'),
\ 'on_stderr': function('s:nvim_po_job_handler'), \ 'on_stderr': function('s:nvim_po_job_handler'),
\ 'on_exit': function('s:nvim_po_job_handler') \ 'on_exit': function('s:nvim_po_job_handler')
@ -223,16 +222,12 @@ endif
function! airline#async#nvim_vcs_untracked(cfg, file, vcs) function! airline#async#nvim_vcs_untracked(cfg, file, vcs)
let cmd = a:cfg.cmd . shellescape(a:file) let cmd = a:cfg.cmd . shellescape(a:file)
let id = -1 let id = -1
let cwd = fnamemodify(a:file, ':p:h')
if empty(cwd) || !isdirectory(cwd)
let cwd = getcwd()
endif
let config = { let config = {
\ 'buf': '', \ 'buf': '',
\ 'vcs': a:vcs, \ 'vcs': a:vcs,
\ 'cfg': a:cfg, \ 'cfg': a:cfg,
\ 'file': a:file, \ 'file': a:file,
\ 'cwd': cwd \ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h'))
\ } \ }
if has("nvim") if has("nvim")
call extend(config, { call extend(config, {