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/qf/pulp.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/qf/pulp.vim')
| -rw-r--r-- | autoload/vimtex/qf/pulp.vim | 67 | 
1 files changed, 67 insertions, 0 deletions
| diff --git a/autoload/vimtex/qf/pulp.vim b/autoload/vimtex/qf/pulp.vim new file mode 100644 index 00000000..0f0b73ef --- /dev/null +++ b/autoload/vimtex/qf/pulp.vim @@ -0,0 +1,67 @@ +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#qf#pulp#new() abort " {{{1 +  return deepcopy(s:qf) +endfunction + +" }}}1 + + +let s:qf = { +      \ 'name' : 'LaTeX logfile using pulp', +      \} + +function! s:qf.init(state) abort dict "{{{1 +  if !executable('pulp') +    call vimtex#log#error('pulp is not executable!') +    throw 'vimtex: Requirements not met' +  endif + +  " Automatically remove the -file-line-error option if we use the latexmk +  " backend (for convenience) +  if a:state.compiler.name ==# 'latexmk' +    let l:index = index(a:state.compiler.options, '-file-line-error') +    if l:index >= 0 +      call remove(a:state.compiler.options, l:index) +    endif +  endif +endfunction + +function! s:qf.set_errorformat() abort dict "{{{1 +  setlocal errorformat= +  setlocal errorformat+=%-G%*[^\ ])\ %.%# +  setlocal errorformat+=%-G%.%#For\ some\ reason%.%# +  setlocal errorformat+=%W%f:%l-%*[0-9?]:\ %*[^\ ]\ warning:\ %m +  setlocal errorformat+=%E%f:%l-%*[0-9?]:\ %*[^\ ]\ error:\ %m +  setlocal errorformat+=%W%f:%l-%*[0-9?]:\ %m +  setlocal errorformat+=%W%l-%*[0-9?]:\ %m +  setlocal errorformat+=%-G%.%# +endfunction + +" }}}1 +function! s:qf.addqflist(tex, log) abort dict " {{{1 +  if empty(a:log) || !filereadable(a:log) +    call setqflist([]) +    throw 'Vimtex: No log file found' +  endif + +  let l:tmp = fnameescape(fnamemodify(a:log, ':r') . '.pulp') +  let l:log = fnameescape(a:log) + +  silent call system(printf('pulp %s >%s', l:log, l:tmp)) +  let self.errorformat_saved = &l:errorformat +  call self.set_errorformat() +  execute 'caddfile' l:tmp +  let &l:errorformat = self.errorformat_saved +  silent call system('rm ' . l:tmp) +endfunction + +" }}}1 + +endif | 
