diff options
Diffstat (limited to '')
-rw-r--r-- | autoload/vimtex/view/zathura.vim | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/autoload/vimtex/view/zathura.vim b/autoload/vimtex/view/zathura.vim deleted file mode 100644 index 88e41468..00000000 --- a/autoload/vimtex/view/zathura.vim +++ /dev/null @@ -1,154 +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#view#zathura#new() abort " {{{1 - " Check if the viewer is executable - if !executable('zathura') - call vimtex#log#error('Zathura is not executable!') - return {} - endif - - if g:vimtex_view_zathura_check_libsynctex && executable('ldd') - let l:shared = split(system("sh -c 'ldd $(which zathura)'")) - if v:shell_error == 0 - \ && empty(filter(l:shared, 'v:val =~# ''libsynctex''')) - call vimtex#log#warning('Zathura is not linked to libsynctex!') - let s:zathura.has_synctex = 0 - endif - endif - - " Check if the xdotool is available - if !executable('xdotool') - call vimtex#log#warning('Zathura requires xdotool for forward search!') - endif - - " - " Use the xwin template - " - return vimtex#view#common#apply_xwin_template('Zathura', - \ vimtex#view#common#apply_common_template(deepcopy(s:zathura))) -endfunction - -" }}}1 - -let s:zathura = { - \ 'name' : 'Zathura', - \ 'has_synctex' : 1, - \} - -function! s:zathura.start(outfile) dict abort " {{{1 - let l:cmd = 'zathura' - if self.has_synctex - let l:cmd .= ' -x "' . g:vimtex_compiler_progname - \ . ' --servername ' . v:servername - \ . ' --remote-expr ' - \ . '\"vimtex#view#reverse_goto(%{line}, ''%{input}'')\""' - if g:vimtex_view_forward_search_on_start - let l:cmd .= ' --synctex-forward ' - \ . line('.') - \ . ':' . col('.') - \ . ':' . vimtex#util#shellescape(expand('%:p')) - endif - endif - let l:cmd .= ' ' . g:vimtex_view_zathura_options - let l:cmd .= ' ' . vimtex#util#shellescape(a:outfile) - let self.process = vimtex#process#start(l:cmd) - - call self.xwin_get_id() - let self.outfile = a:outfile -endfunction - -" }}}1 -function! s:zathura.forward_search(outfile) dict abort " {{{1 - if !self.has_synctex | return | endif - if !filereadable(self.synctex()) | return | endif - - let l:cmd = 'zathura --synctex-forward ' - let l:cmd .= line('.') - let l:cmd .= ':' . col('.') - let l:cmd .= ':' . vimtex#util#shellescape(expand('%:p')) - let l:cmd .= ' ' . vimtex#util#shellescape(a:outfile) - call vimtex#process#run(l:cmd) - let self.cmd_forward_search = l:cmd - let self.outfile = a:outfile -endfunction - -" }}}1 -function! s:zathura.compiler_callback(status) dict abort " {{{1 - if !a:status && g:vimtex_view_use_temp_files < 2 - return - endif - - if g:vimtex_view_use_temp_files - call self.copy_files() - endif - - if !filereadable(self.out()) | return | endif - - if g:vimtex_view_automatic && !has_key(self, 'started_through_callback') - " - " Search for existing window created by latexmk - " Note: It may be necessary to wait some time before it is opened and - " recognized. Sometimes it is very quick, other times it may take - " a second. This way, we don't block longer than necessary. - " - for l:dummy in range(30) - let l:xwin_exists = self.xwin_exists() - if l:xwin_exists | break | endif - sleep 50m - endfor - - if ! l:xwin_exists - call self.start(self.out()) - let self.started_through_callback = 1 - endif - endif - - if has_key(self, 'hook_callback') - call self.hook_callback() - endif -endfunction - -" }}}1 -function! s:zathura.latexmk_append_argument() dict abort " {{{1 - if g:vimtex_view_use_temp_files - let cmd = ' -view=none' - else - let zathura = 'zathura ' . g:vimtex_view_zathura_options - if self.has_synctex - let zathura .= ' -x \"' . g:vimtex_compiler_progname - \ . ' --servername ' . v:servername - \ . ' --remote +\%{line} \%{input}\" \%S' - endif - - let cmd = vimtex#compiler#latexmk#wrap_option('new_viewer_always', '0') - let cmd .= vimtex#compiler#latexmk#wrap_option('pdf_previewer', zathura) - endif - - return cmd -endfunction - -" }}}1 -function! s:zathura.get_pid() dict abort " {{{1 - " First try to match full output file name - let cmd = 'pgrep -nf "zathura.*' - \ . escape(get(self, 'outfile', self.out()), '~\%.') . '"' - let pid = str2nr(system(cmd)[:-2]) - - " Now try to match correct servername as fallback - if empty(pid) - let cmd = 'pgrep -nf "zathura.+--servername ' . v:servername . '"' - let pid = str2nr(system(cmd)[:-2]) - endif - - return pid -endfunction - -" }}}1 - -endif |