mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-16 07:23:48 -05:00
Change latex provider to luatex, closes #476
This commit is contained in:
115
autoload/vimtex/view.vim
Normal file
115
autoload/vimtex/view.vim
Normal file
@@ -0,0 +1,115 @@
|
||||
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#init_buffer() abort " {{{1
|
||||
if !g:vimtex_view_enabled | return | endif
|
||||
|
||||
command! -buffer -nargs=? -complete=file VimtexView
|
||||
\ call b:vimtex.viewer.view(<q-args>)
|
||||
if has_key(b:vimtex.viewer, 'reverse_search')
|
||||
command! -buffer -nargs=* VimtexRSearch
|
||||
\ call b:vimtex.viewer.reverse_search()
|
||||
endif
|
||||
|
||||
nnoremap <buffer> <plug>(vimtex-view)
|
||||
\ :call b:vimtex.viewer.view('')<cr>
|
||||
if has_key(b:vimtex.viewer, 'reverse_search')
|
||||
nnoremap <buffer> <plug>(vimtex-reverse-search)
|
||||
\ :call b:vimtex.viewer.reverse_search()<cr>
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
function! vimtex#view#init_state(state) abort " {{{1
|
||||
if !g:vimtex_view_enabled | return | endif
|
||||
if has_key(a:state, 'viewer') | return | endif
|
||||
|
||||
try
|
||||
let a:state.viewer = vimtex#view#{g:vimtex_view_method}#new()
|
||||
catch /E117/
|
||||
call vimtex#log#warning(
|
||||
\ 'Invalid viewer: ' . g:vimtex_view_method,
|
||||
\ 'Please see :h g:vimtex_view_method')
|
||||
return
|
||||
endtry
|
||||
|
||||
" Make the following code more concise
|
||||
let l:v = a:state.viewer
|
||||
|
||||
"
|
||||
" Add compiler callback to callback hooks (if it exists)
|
||||
"
|
||||
if exists('*l:v.compiler_callback')
|
||||
\ && index(g:vimtex_compiler_callback_hooks,
|
||||
\ 'b:vimtex.viewer.compiler_callback') == -1
|
||||
call add(g:vimtex_compiler_callback_hooks,
|
||||
\ 'b:vimtex.viewer.compiler_callback')
|
||||
endif
|
||||
|
||||
"
|
||||
" Create view and/or callback hooks (if they exist)
|
||||
"
|
||||
for l:point in ['view', 'callback']
|
||||
execute 'let l:hook = ''g:vimtex_view_'
|
||||
\ . g:vimtex_view_method . '_hook_' . l:point . ''''
|
||||
if exists(l:hook)
|
||||
execute 'let hookfunc = ''*'' . ' . l:hook
|
||||
if exists(hookfunc)
|
||||
execute 'let l:v.hook_' . l:point . ' = function(' . l:hook . ')'
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
function! vimtex#view#reverse_goto(line, filename) abort " {{{1
|
||||
if mode() ==# 'i' | stopinsert | endif
|
||||
|
||||
let l:file = resolve(a:filename)
|
||||
|
||||
" Open file if necessary
|
||||
if !bufexists(l:file)
|
||||
if filereadable(l:file)
|
||||
execute 'silent edit' l:file
|
||||
else
|
||||
call vimtex#log#warning("Reverse goto failed for file:\n" . l:file)
|
||||
return
|
||||
endif
|
||||
endif
|
||||
|
||||
" Go to correct buffer and line
|
||||
let l:bufnr = bufnr(l:file)
|
||||
let l:winnr = bufwinnr(l:file)
|
||||
execute l:winnr >= 0
|
||||
\ ? l:winnr . 'wincmd w'
|
||||
\ : 'buffer ' . l:bufnr
|
||||
|
||||
execute 'normal!' a:line . 'G'
|
||||
normal! zMzvzz
|
||||
|
||||
" Attempt to focus Vim
|
||||
if executable('pstree') && executable('xdotool')
|
||||
let l:pids = reverse(split(system('pstree -s -p ' . getpid()), '\D\+'))
|
||||
|
||||
let l:xwinids = []
|
||||
call map(copy(l:pids), 'extend(l:xwinids, reverse(split('
|
||||
\ . "system('xdotool search --onlyvisible --pid ' . v:val)"
|
||||
\ . ')))')
|
||||
call filter(l:xwinids, '!empty(v:val)')
|
||||
|
||||
if !empty(l:xwinids)
|
||||
call system('xdotool windowactivate ' . l:xwinids[0] . ' &')
|
||||
call feedkeys("\<c-l>", 'tn')
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}1
|
||||
|
||||
endif
|
||||
Reference in New Issue
Block a user