diff options
Diffstat (limited to 'autoload/vimtex/qf.vim')
-rw-r--r-- | autoload/vimtex/qf.vim | 245 |
1 files changed, 0 insertions, 245 deletions
diff --git a/autoload/vimtex/qf.vim b/autoload/vimtex/qf.vim deleted file mode 100644 index 6cc530e6..00000000 --- a/autoload/vimtex/qf.vim +++ /dev/null @@ -1,245 +0,0 @@ -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#init_buffer() abort " {{{1 - if !g:vimtex_quickfix_enabled | return | endif - - command! -buffer VimtexErrors call vimtex#qf#toggle() - - nnoremap <buffer> <plug>(vimtex-errors) :call vimtex#qf#toggle()<cr> -endfunction - -" }}}1 -function! vimtex#qf#init_state(state) abort " {{{1 - if !g:vimtex_quickfix_enabled | return | endif - - try - let l:qf = vimtex#qf#{g:vimtex_quickfix_method}#new() - call l:qf.init(a:state) - unlet l:qf.init - let a:state.qf = l:qf - catch /vimtex: Requirements not met/ - call vimtex#log#warning( - \ 'Quickfix state not initialized!', - \ 'Please see :help g:vimtex_quickfix_method') - endtry -endfunction - -" }}}1 - -function! vimtex#qf#toggle() abort " {{{1 - if vimtex#qf#is_open() - cclose - else - call vimtex#qf#open(1) - endif -endfunction - -" }}}1 -function! vimtex#qf#open(force) abort " {{{1 - if !exists('b:vimtex.qf.addqflist') | return | endif - - try - call vimtex#qf#setqflist() - catch /Vimtex: No log file found/ - if a:force - call vimtex#log#warning('No log file found') - endif - if g:vimtex_quickfix_mode > 0 - cclose - endif - return - catch - call vimtex#log#error('Something went wrong when parsing log files!') - if g:vimtex_quickfix_mode > 0 - cclose - endif - return - endtry - - if empty(getqflist()) - if a:force - call vimtex#log#info('No errors!') - endif - if g:vimtex_quickfix_mode > 0 - cclose - endif - return - endif - - " - " There are two options that determine when to open the quickfix window. If - " forced, the quickfix window is always opened when there are errors or - " warnings (forced typically imply that the functions is called from the - " normal mode mapping). Else the behaviour is based on the settings. - " - let l:errors_or_warnings = s:qf_has_errors() - \ || g:vimtex_quickfix_open_on_warning - - if a:force || (g:vimtex_quickfix_mode > 0 && l:errors_or_warnings) - call s:window_save() - botright cwindow - if g:vimtex_quickfix_mode == 2 - call s:window_restore() - endif - if g:vimtex_quickfix_autoclose_after_keystrokes > 0 - augroup vimtex_qf_autoclose - autocmd! - autocmd CursorMoved,CursorMovedI * call s:qf_autoclose_check() - augroup END - endif - redraw - endif -endfunction - -" }}}1 -function! vimtex#qf#setqflist(...) abort " {{{1 - if !exists('b:vimtex.qf.addqflist') | return | endif - - if a:0 > 0 - let l:tex = a:1 - let l:log = fnamemodify(l:tex, ':r') . '.log' - let l:blg = fnamemodify(l:tex, ':r') . '.blg' - let l:jump = 0 - else - let l:tex = b:vimtex.tex - let l:log = b:vimtex.log() - let l:blg = b:vimtex.ext('blg') - let l:jump = g:vimtex_quickfix_autojump - endif - - try - " Initialize the quickfix list - " Note: Only create new list if the current list is not a vimtex qf list - if get(getqflist({'title': 1}), 'title') =~# 'Vimtex' - call setqflist([], 'r') - else - call setqflist([]) - endif - - " Parse LaTeX errors - call b:vimtex.qf.addqflist(l:tex, l:log) - - " Parse bibliography errors - if has_key(b:vimtex.packages, 'biblatex') - call vimtex#qf#biblatex#addqflist(l:blg) - else - call vimtex#qf#bibtex#addqflist(l:blg) - endif - - " Ignore entries if desired - if !empty(g:vimtex_quickfix_ignore_filters) - let l:qflist = getqflist() - for l:re in g:vimtex_quickfix_ignore_filters - call filter(l:qflist, 'v:val.text !~# l:re') - endfor - call setqflist(l:qflist, 'r') - endif - - " Set title if supported - try - call setqflist([], 'r', {'title': 'Vimtex errors (' . b:vimtex.qf.name . ')'}) - catch - endtry - - " Jump to first error if wanted - if l:jump - cfirst - endif - catch /Vimtex: No log file found/ - throw 'Vimtex: No log file found' - endtry -endfunction - -" }}}1 -function! vimtex#qf#inquire(file) abort " {{{1 - try - call vimtex#qf#setqflist(a:file) - return s:qf_has_errors() - catch - return 0 - endtry -endfunction - -" }}}1 - -function! vimtex#qf#is_open() abort " {{{1 - redir => l:bufstring - silent! ls! - redir END - - let l:buflist = filter(split(l:bufstring, '\n'), 'v:val =~# ''Quickfix''') - - for l:line in l:buflist - let l:bufnr = str2nr(matchstr(l:line, '^\s*\zs\d\+')) - if bufwinnr(l:bufnr) >= 0 - \ && getbufvar(l:bufnr, '&buftype', '') ==# 'quickfix' - return 1 - endif - endfor - - return 0 -endfunction - -" }}}1 - -function! s:window_save() abort " {{{1 - if exists('*win_gotoid') - let s:previous_window = win_getid() - else - let w:vimtex_remember_window = 1 - endif -endfunction - -" }}}1 -function! s:window_restore() abort " {{{1 - if exists('*win_gotoid') - call win_gotoid(s:previous_window) - else - for l:winnr in range(1, winnr('$')) - if getwinvar(l:winnr, 'vimtex_remember_window') - execute l:winnr . 'wincmd p' - unlet! w:vimtex_remember_window - endif - endfor - endif -endfunction - -" }}}1 - -function! s:qf_has_errors() abort " {{{1 - return len(filter(getqflist(), 'v:val.type ==# ''E''')) > 0 -endfunction - -" }}}1 -" -function! s:qf_autoclose_check() abort " {{{1 - if get(s:, 'keystroke_counter') == 0 - let s:keystroke_counter = g:vimtex_quickfix_autoclose_after_keystrokes - endif - - redir => l:bufstring - silent! ls! - redir END - - if empty(filter(split(l:bufstring, '\n'), 'v:val =~# ''%a- .*Quickfix''')) - let s:keystroke_counter -= 1 - else - let s:keystroke_counter = g:vimtex_quickfix_autoclose_after_keystrokes + 1 - endif - - if s:keystroke_counter == 0 - cclose - autocmd! vimtex_qf_autoclose - augroup! vimtex_qf_autoclose - endif -endfunction - -" }}}1 - -endif |