diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2020-04-25 21:30:46 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-04-25 21:30:46 +0200 |
commit | d757bfd643cc73c2d495355c153ed0257f5d5b47 (patch) | |
tree | ff210950456938a779d98f6a2ba7321aca512897 /autoload/vimtex/kpsewhich.vim | |
parent | 8ec73a3a8974a62a613680a6b6222a77a7b99546 (diff) | |
download | vim-polyglot-d757bfd643cc73c2d495355c153ed0257f5d5b47.tar.gz vim-polyglot-d757bfd643cc73c2d495355c153ed0257f5d5b47.zip |
Change latex provider to luatex, closes #476
Diffstat (limited to 'autoload/vimtex/kpsewhich.vim')
-rw-r--r-- | autoload/vimtex/kpsewhich.vim | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/autoload/vimtex/kpsewhich.vim b/autoload/vimtex/kpsewhich.vim new file mode 100644 index 00000000..65533e28 --- /dev/null +++ b/autoload/vimtex/kpsewhich.vim @@ -0,0 +1,53 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'latex') == -1 + +" vimtex - LaTeX plugin for Vim +" +" Maintainer: Karl Yngve LervÄg +" Email: karl.yngve@gmail.com +" + +function! vimtex#kpsewhich#find(file) abort " {{{1 + return s:find_cached(a:file) +endfunction + +" }}}1 +function! vimtex#kpsewhich#run(args) abort " {{{1 + " kpsewhich should be run at the project root directory + if exists('b:vimtex.root') + call vimtex#paths#pushd(b:vimtex.root) + endif + let l:output = vimtex#process#capture('kpsewhich ' . a:args) + if exists('b:vimtex.root') + call vimtex#paths#popd() + endif + + " Remove warning lines from output + call filter(l:output, 'stridx(v:val, "kpsewhich: warning: ") == -1') + + return l:output +endfunction + +" }}}1 + +function! s:find(file) abort " {{{1 + let l:output = vimtex#kpsewhich#run(fnameescape(a:file)) + if empty(l:output) | return '' | endif + + let l:filename = l:output[0] + + " Ensure absolute path + if !vimtex#paths#is_abs(l:filename) && exists('b:vimtex.root') + let l:filename = simplify(b:vimtex.root . '/' . l:filename) + endif + + return l:filename +endfunction + +" Use caching if possible (requires 'lambda' feature) +let s:find_cached = has('lambda') + \ ? vimtex#cache#wrap(function('s:find'), 'kpsewhich') + \ : function('s:find') + +" }}}1 + +endif |