Changed plugin name to vimtex

This commit is contained in:
Karl Yngve Lervåg 2015-03-07 23:02:15 +01:00
parent d9be80a86e
commit a14cc5997d
24 changed files with 1973 additions and 1939 deletions

View File

@ -1,4 +1,4 @@
# vim-latex
# vimtex
## Introduction
@ -9,6 +9,8 @@ There exists several LaTeX plugins for vim, for instance:
[vimscript#2945](http://www.vim.org/scripts/script.php?script_id=2945)
- [LaTeX-Box](https://github.com/LaTeX-Box-Team/LaTeX-Box):
[vimscript#3109](http://www.vim.org/scripts/script.php?script_id=3109)
- [vim-latex-live-preview](https://github.com/xuhdev/vim-latex-live-preview):
[vimscript#4524](http://www.vim.org/scripts/script.php?script_id=4524)
I have been using both LaTeX-Suite and LaTeX-Box myself, but I found both of
these to be relatively bulky and difficult to manage and extend. LaTeX-Box
@ -16,16 +18,12 @@ was supposed to be simple and lightweight, and I think it was close to being
just that. However, after having worked on it for some time, I felt that much
of the simplicity could be improved by a complete restructuring.
Enter vim-latex, which is a lightweight and simple plugin that provides LaTeX
Enter vimtex, which is a lightweight and simple plugin that provides LaTeX
support for vim. It has most of the functionality of LaTeX-Box, but the idea
is to combine vim-latex with the strength of other plugins. I personally
is to combine vimtex with the strength of other plugins. I personally
recommend [UltiSnips](https://github.com/SirVer/ultisnips) for snippets and
[neocomplete](https://github.com/Shougo/neocomplete.vim) for completion.
Note that vim-latex should not be confused with LaTeX-Suite, which is also to
some extent known as vim-latex. The present plugin is not related to
LaTeX-Suite in any way.
Read the documentation for a more thorough introduction.
## Installation
@ -33,23 +31,23 @@ Read the documentation for a more thorough introduction.
### With gmarik vundle
_https://github.com/gmarik/vundle_
Add `Plugin 'lervag/vim-latex'` to your ~/.vimrc and run
Add `Plugin 'lervag/vimtex'` to your ~/.vimrc and run
`:PluginInstall` in a vim buffer. Add `!` to the command to update.
### With neobundle
_https://github.com/Shougo/neobundle.vim_
Add `NeoBundle 'lervag/vim-latex'` to your ~/.vimrc and run
Add `NeoBundle 'lervag/vimtex'` to your ~/.vimrc and run
`:NeoBundleInstall` in a vim buffer. Add `!` to the command to update.
### With pathogen
_https://github.com/tpope/vim-pathogen_
Add the vim-latex bundle to your bundle directory, for instance with `git
Add the vimtex bundle to your bundle directory, for instance with `git
clone`. This will typically be enough:
cd ~/.vim/bundle
git clone git://github.com/lervag/vim-latex
git clone git://github.com/lervag/vimtex
### Without a plugin manager

View File

@ -1,4 +1,4 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com

View File

@ -1,80 +0,0 @@
" LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#mappings#init(initialized)
call latex#util#set_default('g:latex_mappings_enabled', 1)
if !g:latex_mappings_enabled | return | endif
nmap <silent><buffer> <localleader>li <plug>(vl-info)
nmap <silent><buffer> <localleader>lh <plug>(vl-help)
nmap <silent><buffer> <localleader>lR <plug>(vl-reinit)
nmap <silent><buffer> dse <plug>(vl-delete-env)
nmap <silent><buffer> dsc <plug>(vl-delete-cmd)
nmap <silent><buffer> cse <plug>(vl-change-env)
nmap <silent><buffer> csc <plug>(vl-change-cmd)
nmap <silent><buffer> tse <plug>(vl-toggle-star)
nmap <silent><buffer> tsd <plug>(vl-toggle-delim)
nmap <silent><buffer> <F7> <plug>(vl-create-cmd)
imap <silent><buffer> <F7> <plug>(vl-create-cmd)
imap <silent><buffer> ]] <plug>(vl-close-env)
if g:latex_latexmk_enabled
nmap <silent><buffer> <localleader>ll <plug>(vl-compile-toggle)
nmap <silent><buffer> <localleader>lo <plug>(vl-compile-output)
nmap <silent><buffer> <localleader>lk <plug>(vl-stop)
nmap <silent><buffer> <localleader>lK <plug>(vl-stop-all)
nmap <silent><buffer> <localleader>le <plug>(vl-errors)
nmap <silent><buffer> <localleader>lc <plug>(vl-clean)
nmap <silent><buffer> <localleader>lC <plug>(vl-clean-full)
nmap <silent><buffer> <localleader>lg <plug>(vl-status)
nmap <silent><buffer> <localleader>lG <plug>(vl-status-all)
endif
if g:latex_motion_enabled
nmap <silent><buffer> % <plug>(vl-%)
xmap <silent><buffer> % <plug>(vl-%)
omap <silent><buffer> % <plug>(vl-%)
nmap <silent><buffer> ]] <plug>(vl-]])
nmap <silent><buffer> ][ <plug>(vl-][)
nmap <silent><buffer> [] <plug>(vl-[])
nmap <silent><buffer> [[ <plug>(vl-[[)
xmap <silent><buffer> ]] <plug>(vl-]])
xmap <silent><buffer> ][ <plug>(vl-][)
xmap <silent><buffer> [] <plug>(vl-[])
xmap <silent><buffer> [[ <plug>(vl-[[)
omap <silent><buffer> ]] <plug>(vl-]])
omap <silent><buffer> ][ <plug>(vl-][)
omap <silent><buffer> [] <plug>(vl-[])
omap <silent><buffer> [[ <plug>(vl-[[)
xmap <silent><buffer> ie <plug>(vl-ie)
xmap <silent><buffer> ae <plug>(vl-ae)
omap <silent><buffer> ie <plug>(vl-ie)
omap <silent><buffer> ae <plug>(vl-ae)
xmap <silent><buffer> i$ <plug>(vl-i$)
xmap <silent><buffer> a$ <plug>(vl-a$)
omap <silent><buffer> i$ <plug>(vl-i$)
omap <silent><buffer> a$ <plug>(vl-a$)
xmap <silent><buffer> id <plug>(vl-id)
xmap <silent><buffer> ad <plug>(vl-ad)
omap <silent><buffer> id <plug>(vl-id)
omap <silent><buffer> ad <plug>(vl-ad)
endif
if g:latex_toc_enabled
nmap <silent><buffer> <localleader>lt <plug>(vl-toc-open)
nmap <silent><buffer> <localleader>lT <plug>(vl-toc-toggle)
endif
if g:latex_view_enabled
nmap <silent><buffer> <localleader>lv <plug>(vl-view)
if has_key(g:latex#data[b:latex.id], 'rsearch')
nmap <silent><buffer> <localleader>lr <plug>(vl-reverse-search)
endif
endif
endfunction
" vim: fdm=marker sw=2

View File

@ -1,25 +1,25 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
" vim-latex is not initialized until latex#init() has been run once
" vimtex is not initialized until vimtex#init() has been run once
let s:initialized = 0
function! latex#init() " {{{1
function! vimtex#init() " {{{1
call s:init_options()
call s:init_environment()
call latex#toc#init(s:initialized)
call latex#fold#init(s:initialized)
call latex#view#init(s:initialized)
call latex#motion#init(s:initialized)
call latex#labels#init(s:initialized)
call latex#change#init(s:initialized)
call latex#latexmk#init(s:initialized)
call latex#complete#init(s:initialized)
call latex#mappings#init(s:initialized)
call vimtex#toc#init(s:initialized)
call vimtex#fold#init(s:initialized)
call vimtex#view#init(s:initialized)
call vimtex#motion#init(s:initialized)
call vimtex#labels#init(s:initialized)
call vimtex#change#init(s:initialized)
call vimtex#latexmk#init(s:initialized)
call vimtex#complete#init(s:initialized)
call vimtex#mappings#init(s:initialized)
"
" This variable is used to allow a distinction between global and buffer
@ -28,19 +28,19 @@ function! latex#init() " {{{1
let s:initialized = 1
endfunction
function! latex#info() " {{{1
function! vimtex#info() " {{{1
if !s:initialized
echoerr "Error: vim-latex has not been initialized!"
echoerr "Error: vimtex has not been initialized!"
return
endif
" Print buffer data
echo "b:latex"
call s:print_dict(b:latex)
echo "b:vimtex"
call s:print_dict(b:vimtex)
" Print global data
let n = 0
for data in g:latex#data
for data in g:vimtex#data
" Prepare for printing
let d = deepcopy(data)
for f in ['aux', 'out', 'log']
@ -49,14 +49,14 @@ function! latex#info() " {{{1
" Print data blob title line
echo "\n"
echo "g:latex#data[" . n . "] : " . remove(d, 'name')
echo "g:vimtex#data[" . n . "] : " . remove(d, 'name')
call s:print_dict(d)
let n += 1
endfor
endfunction
function! latex#help() " {{{1
if g:latex_mappings_enabled
function! vimtex#help() " {{{1
if g:vimtex_mappings_enabled
nmap <buffer>
xmap <buffer>
omap <buffer>
@ -65,25 +65,25 @@ function! latex#help() " {{{1
endif
endfunction
function! latex#reinit() " {{{1
function! vimtex#reinit() " {{{1
"
" Stop latexmk processes (if running)
"
call latex#latexmk#stop_all()
call vimtex#latexmk#stop_all()
"
" Reset global variables
"
let s:initialized = 0
unlet g:latex#data
unlet g:vimtex#data
"
" Reset and reinitialize buffers
"
let n = bufnr('%')
bufdo if getbufvar('%', '&filetype') == 'tex' |
\ unlet b:latex |
\ call latex#init() |
\ unlet b:vimtex |
\ call vimtex#init() |
\ endif
silent execute 'buffer ' . n
endfunction
@ -91,8 +91,8 @@ endfunction
function! s:init_environment() " {{{1
" Initialize global and local data blobs
call latex#util#set_default('g:latex#data', [])
call latex#util#set_default('b:latex', {})
call vimtex#util#set_default('g:vimtex#data', [])
call vimtex#util#set_default('b:vimtex', {})
" Set some file type specific vim options
setlocal suffixesadd+=.tex
@ -102,7 +102,7 @@ function! s:init_environment() " {{{1
let main = s:get_main()
let id = s:get_id(main)
if id >= 0
let b:latex.id = id
let b:vimtex.id = id
else
let data = {}
let data.tex = main
@ -119,35 +119,35 @@ function! s:init_environment() " {{{1
return s:get_main_out(self)
endfunction
call add(g:latex#data, data)
let b:latex.id = len(g:latex#data) - 1
call add(g:vimtex#data, data)
let b:vimtex.id = len(g:vimtex#data) - 1
endif
" Define commands
command! -buffer VimLatexInfo call latex#info()
command! -buffer VimLatexHelp call latex#help()
command! -buffer VimLatexReinitialize call latex#reinit()
command! -buffer VimtexInfo call Vimtex#info()
command! -buffer VimtexHelp call vimtex#help()
command! -buffer VimtexReinitialize call vimtex#reinit()
" Define mappings
nnoremap <buffer> <plug>(vl-info) :call latex#info()<cr>
nnoremap <buffer> <plug>(vl-help) :call latex#help()<cr>
nnoremap <buffer> <plug>(vl-reinit) :call latex#reinit()<cr>
nnoremap <buffer> <plug>(vimtex-info) :call vimtex#info()<cr>
nnoremap <buffer> <plug>(vimtex-help) :call vimtex#help()<cr>
nnoremap <buffer> <plug>(vimtex-reinit) :call vimtex#reinit()<cr>
endfunction
function! s:init_options() " {{{1
call latex#util#set_default('g:latex_quickfix_ignore_all_warnings', 0)
call latex#util#set_default('g:latex_quickfix_ignored_warnings', [])
call vimtex#util#set_default('g:vimtex_quickfix_ignore_all_warnings', 0)
call vimtex#util#set_default('g:vimtex_quickfix_ignored_warnings', [])
call latex#util#error_deprecated('g:latex_errorformat_ignore_warnings')
call latex#util#error_deprecated('g:latex_errorformat_show_warnings')
call vimtex#util#error_deprecated('g:vimtex_errorformat_ignore_warnings')
call vimtex#util#error_deprecated('g:vimtex_errorformat_show_warnings')
endfunction
" }}}1
function! s:get_id(main) " {{{1
if exists('g:latex#data') && !empty(g:latex#data)
if exists('g:vimtex#data') && !empty(g:vimtex#data)
let id = 0
while id < len(g:latex#data)
if g:latex#data[id].tex == a:main
while id < len(g:vimtex#data)
if g:vimtex#data[id].tex == a:main
return id
endif
let id += 1
@ -236,7 +236,7 @@ function! s:get_main_ext(texdata, ext) " {{{1
" Create set of candidates
let candidates = [
\ a:texdata.name,
\ g:latex_latexmk_build_dir . '/' . a:texdata.name,
\ g:vimtex_latexmk_build_dir . '/' . a:texdata.name,
\ ]
" Search through the candidates
@ -255,7 +255,7 @@ function! s:get_main_out(texdata) " {{{1
" Create set of candidates
let candidates = [
\ a:texdata.name,
\ g:latex_latexmk_build_dir . '/' . a:texdata.name,
\ g:vimtex_latexmk_build_dir . '/' . a:texdata.name,
\ ]
" Check for pdf files

View File

@ -1,32 +1,32 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#change#init(initialized) " {{{1
function! vimtex#change#init(initialized) " {{{1
" Define mappings
nnoremap <silent><buffer> <plug>(vl-delete-env)
\ :call latex#change#env('')<cr>
nnoremap <silent><buffer> <plug>(vl-delete-cmd) vaBom`o<esc>xg``xdF\
\:silent! call repeat#set("\<plug>(vl-delete-cmd)", v:count)<cr>
nnoremap <silent><buffer> <plug>(vl-change-env)
\ :call latex#change#env_prompt()<cr>
nnoremap <silent><buffer> <plug>(vl-change-cmd)
\ :call latex#change#command()<cr>
nnoremap <silent><buffer> <plug>(vl-toggle-star)
\ :call latex#change#toggle_env_star()<cr>
nnoremap <silent><buffer> <plug>(vl-toggle-delim)
\ :call latex#change#toggle_delim()<cr>
nnoremap <silent><buffer> <plug>(vl-create-cmd)
\ :call latex#change#to_command()<cr>i
inoremap <silent><buffer> <plug>(vl-create-cmd)
\ <c-r>=latex#change#to_command()<cr>
inoremap <silent><buffer> <plug>(vl-close-env)
\ <c-r>=latex#change#close_environment()<cr>
nnoremap <silent><buffer> <plug>(vimtex-delete-env)
\ :call vimtex#change#env('')<cr>
nnoremap <silent><buffer> <plug>(vimtex-delete-cmd) vaBom`o<esc>xg``xdF\
\:silent! call repeat#set("\<plug>(vimtex-delete-cmd)", v:count)<cr>
nnoremap <silent><buffer> <plug>(vimtex-change-env)
\ :call vimtex#change#env_prompt()<cr>
nnoremap <silent><buffer> <plug>(vimtex-change-cmd)
\ :call vimtex#change#command()<cr>
nnoremap <silent><buffer> <plug>(vimtex-toggle-star)
\ :call vimtex#change#toggle_env_star()<cr>
nnoremap <silent><buffer> <plug>(vimtex-toggle-delim)
\ :call vimtex#change#toggle_delim()<cr>
nnoremap <silent><buffer> <plug>(vimtex-create-cmd)
\ :call vimtex#change#to_command()<cr>i
inoremap <silent><buffer> <plug>(vimtex-create-cmd)
\ <c-r>=vimtex#change#to_command()<cr>
inoremap <silent><buffer> <plug>(vimtex-close-env)
\ <c-r>=vimtex#change#close_environment()<cr>
endfunction
function! latex#change#command() " {{{1
function! vimtex#change#command() " {{{1
let pos_save = getpos('.')
let savereg = @a
@ -49,13 +49,13 @@ function! latex#change#command() " {{{1
let @a = savereg
call setpos('.', pos_save)
silent! call repeat#set("\<plug>(vl-change-cmd)" . new . ' ', v:count)
silent! call repeat#set("\<plug>(vimtex-change-cmd)" . new . ' ', v:count)
endfunction
function! latex#change#close_environment() " {{{1
function! vimtex#change#close_environment() " {{{1
" Close delimiters
let [lnum, cnum] = searchpairpos('\C\\left\>', '', '\C\\right\>', 'bnW',
\ 'latex#util#in_comment()')
\ 'vimtex#util#in_comment()')
if lnum > 0
let line = strpart(getline(lnum), cnum - 1)
let bracket = matchstr(line, '^\\left\zs\((\|\[\|\\{\||\|\.\)\ze')
@ -72,7 +72,7 @@ function! latex#change#close_environment() " {{{1
endif
" Close environment
let env = latex#util#get_env()
let env = vimtex#util#get_env()
if env == '\['
return '\]'
elseif env == '\('
@ -82,8 +82,8 @@ function! latex#change#close_environment() " {{{1
endif
endfunction
function! latex#change#delim(open, close) " {{{1
let [d1, l1, c1, d2, l2, c2] = latex#util#get_delim()
function! vimtex#change#delim(open, close) " {{{1
let [d1, l1, c1, d2, l2, c2] = vimtex#util#get_delim()
let line = getline(l1)
let line = strpart(line,0,c1 - 1) . a:open . strpart(line, c1 + len(d1) - 1)
@ -102,8 +102,8 @@ function! latex#change#delim(open, close) " {{{1
call setline(l2, line)
endfunction
function! latex#change#env(new) " {{{1
let [env, l1, c1, l2, c2] = latex#util#get_env(1)
function! vimtex#change#env(new) " {{{1
let [env, l1, c1, l2, c2] = vimtex#util#get_env(1)
if a:new == ''
let beg = ''
@ -134,23 +134,23 @@ function! latex#change#env(new) " {{{1
call setline(l2, line)
if a:new == ''
silent! call repeat#set("\<plug>(vl-delete-env)", v:count)
silent! call repeat#set("\<plug>(vimtex-delete-env)", v:count)
else
silent! call repeat#set("\<plug>(vl-change-env)" . a:new . " ", v:count)
silent! call repeat#set("\<plug>(vimtex-change-env)" . a:new . " ", v:count)
endif
endfunction
function! latex#change#env_prompt() " {{{1
let new_env = input('Change ' . latex#util#get_env() . ' for: ', '',
function! vimtex#change#env_prompt() " {{{1
let new_env = input('Change ' . vimtex#util#get_env() . ' for: ', '',
\ 'customlist,' . s:sidwrap('input_complete'))
if empty(new_env)
return
else
call latex#change#env(new_env)
call vimtex#change#env(new_env)
endif
endfunction
function! latex#change#to_command() " {{{1
function! vimtex#change#to_command() " {{{1
" Get current line
let line = getline('.')
@ -190,11 +190,11 @@ function! latex#change#to_command() " {{{1
return ''
endfunction
function! latex#change#toggle_delim() " {{{1
function! vimtex#change#toggle_delim() " {{{1
"
" Toggle \left and \right variants of delimiters
"
let [d1, l1, c1, d2, l2, c2] = latex#util#get_delim()
let [d1, l1, c1, d2, l2, c2] = vimtex#util#get_delim()
if d1 == ''
return 0
@ -224,11 +224,11 @@ function! latex#change#toggle_delim() " {{{1
let line = strpart(line, 0, c2 - 1) . newd2 . strpart(line, c2 + len(d2) - 1)
call setline(l2, line)
silent! call repeat#set("\<plug>(vl-toggle-delim)", v:count)
silent! call repeat#set("\<plug>(vimtex-toggle-delim)", v:count)
endfunction
function! latex#change#toggle_env_star() " {{{1
let env = latex#util#get_env()
function! vimtex#change#toggle_env_star() " {{{1
let env = vimtex#util#get_env()
if env == '\('
return
@ -240,18 +240,18 @@ function! latex#change#toggle_env_star() " {{{1
let new_env = env . '*'
endif
call latex#change#env(new_env)
call vimtex#change#env(new_env)
silent! call repeat#set("\<plug>(vl-toggle-star)", v:count)
silent! call repeat#set("\<plug>(vimtex-toggle-star)", v:count)
endfunction
function! latex#change#wrap_selection(wrapper) " {{{1
function! vimtex#change#wrap_selection(wrapper) " {{{1
keepjumps normal! `>a}
execute 'keepjumps normal! `<i\' . a:wrapper . '{'
endfunction
function! latex#change#wrap_selection_prompt(...) " {{{1
function! vimtex#change#wrap_selection_prompt(...) " {{{1
let env = input('Environment: ', '',
\ 'customlist,' . s:sidwrap('input_complete'))
if empty(env)
@ -287,7 +287,7 @@ let s:SID = matchstr(expand('<sfile>'), '\zs<SNR>\d\+_\ze.*$')
function! s:input_complete(lead, cmdline, pos) " {{{1
let suggestions = []
for entry in g:latex_complete_environments
for entry in g:vimtex_complete_environments
let env = entry.word
if env =~ '^' . a:lead
call add(suggestions, env)
@ -310,7 +310,7 @@ function! s:search_and_skip_comments(pat, ...) " {{{1
let flags = substitute(flags, 'c', '', 'g')
" keep searching while in comment
while latex#util#in_comment()
while vimtex#util#in_comment()
let ret = search(a:pat, flags, stopline)
if !ret
break

View File

@ -1,17 +1,17 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#complete#init(initialized) " {{{1
call latex#util#set_default('g:latex_complete_enabled', 1)
if !g:latex_complete_enabled | return | endif
function! vimtex#complete#init(initialized) " {{{1
call vimtex#util#set_default('g:vimtex_complete_enabled', 1)
if !g:vimtex_complete_enabled | return | endif
" Set default options
call latex#util#set_default('g:latex_complete_close_braces', 0)
call latex#util#set_default('g:latex_complete_recursive_bib', 0)
call latex#util#set_default('g:latex_complete_patterns',
call vimtex#util#set_default('g:vimtex_complete_close_braces', 0)
call vimtex#util#set_default('g:vimtex_complete_recursive_bib', 0)
call vimtex#util#set_default('g:vimtex_complete_patterns',
\ {
\ 'ref' : '\C\\v\?\(eq\|page\|[cC]\|labelc\)\?ref\*\?\_\s*{[^{}]*',
\ 'bib' : '\C\\\a*cite\a*\*\?\(\[[^\]]*\]\)*\_\s*{[^{}]*',
@ -25,29 +25,29 @@ function! latex#complete#init(initialized) " {{{1
endif
" Check if kpsewhich is required and available
if g:latex_complete_recursive_bib && !executable('kpsewhich')
if g:vimtex_complete_recursive_bib && !executable('kpsewhich')
echom "Warning: bibtex completion not available"
echom " Missing executable: kpsewhich"
echom " You could try to turn off recursive bib functionality"
let s:bibtex = 0
endif
setlocal omnifunc=latex#complete#omnifunc
setlocal omnifunc=vimtex#complete#omnifunc
endfunction
function! latex#complete#omnifunc(findstart, base) " {{{1
function! vimtex#complete#omnifunc(findstart, base) " {{{1
if a:findstart
"
" First call: Find start of text to be completed
"
" Note: g:latex_complete_patterns is a dictionary where the keys are the
" Note: g:vimtex_complete_patterns is a dictionary where the keys are the
" types of completion and the values are the patterns that must match for
" the given type. Currently, it completes labels (e.g. \ref{...), bibtex
" entries (e.g. \cite{...) and commands (e.g. \...).
"
let pos = col('.') - 1
let line = getline('.')[:pos-1]
for [type, pattern] in items(g:latex_complete_patterns)
for [type, pattern] in items(g:vimtex_complete_patterns)
if line =~ pattern . '$'
let s:completion_type = type
while pos > 0
@ -65,9 +65,9 @@ function! latex#complete#omnifunc(findstart, base) " {{{1
" Second call: Find list of matches
"
if s:completion_type == 'ref'
return latex#complete#labels(a:base)
return vimtex#complete#labels(a:base)
elseif s:completion_type == 'bib' && s:bibtex
return latex#complete#bibtex(a:base)
return vimtex#complete#bibtex(a:base)
endif
endif
endfunction
@ -76,8 +76,8 @@ endfunction
let s:bibtex = 1
let s:completion_type = ''
function! latex#complete#labels(regex) " {{{1
let labels = s:labels_get(g:latex#data[b:latex.id].aux())
function! vimtex#complete#labels(regex) " {{{1
let labels = s:labels_get(g:vimtex#data[b:vimtex.id].aux())
let matches = filter(copy(labels), 'v:val[0] =~ ''' . a:regex . '''')
" Try to match label and number
@ -103,7 +103,7 @@ function! latex#complete#labels(regex) " {{{1
\ 'word': m[0],
\ 'menu': printf("%7s [p. %s]", '('.m[1].')', m[2])
\ }
if g:latex_complete_close_braces && !s:next_chars_match('^\s*[,}]')
if g:vimtex_complete_close_braces && !s:next_chars_match('^\s*[,}]')
let entry = copy(entry)
let entry.abbr = entry.word
let entry.word = entry.word . '}'
@ -114,7 +114,7 @@ function! latex#complete#labels(regex) " {{{1
return suggestions
endfunction
function! latex#complete#bibtex(regexp) " {{{1
function! vimtex#complete#bibtex(regexp) " {{{1
let res = []
let s:type_length = 4
@ -135,7 +135,7 @@ function! latex#complete#bibtex(regexp) " {{{1
\ }
" Close braces if desired
if g:latex_complete_close_braces && !s:next_chars_match('^\s*[,}]')
if g:vimtex_complete_close_braces && !s:next_chars_match('^\s*[,}]')
let w.word = w.word . '}'
endif
@ -166,7 +166,7 @@ function! s:bibtex_search(regexp) " {{{2
" The bibtex completion seems to require that we are in the project root
let l:save_pwd = getcwd()
execute 'lcd ' . fnameescape(g:latex#data[b:latex.id].root)
execute 'lcd ' . fnameescape(g:vimtex#data[b:vimtex.id].root)
" Find data from external bib files
let bibfiles = join(s:bibtex_find_bibs(), ',')
@ -189,7 +189,7 @@ function! s:bibtex_search(regexp) " {{{2
let exe = {}
let exe.cmd = 'bibtex -terse ' . tmp.aux
let exe.bg = 0
call latex#util#execute(exe)
call vimtex#util#execute(exe)
" Parse temporary bbl file
let lines = split(substitute(join(readfile(tmp.bbl), "\n"),
@ -220,7 +220,7 @@ function! s:bibtex_search(regexp) " {{{2
execute 'lcd ' . fnameescape(l:save_pwd)
" Find data from 'thebibliography' environments
let lines = readfile(g:latex#data[b:latex.id].tex)
let lines = readfile(g:vimtex#data[b:vimtex.id].tex)
if match(lines, '\C\\begin{thebibliography}') >= 0
for line in filter(filter(lines, 'v:val =~ ''\C\\bibitem'''),
\ 'v:val =~ a:regexp')
@ -242,7 +242,7 @@ function! s:bibtex_find_bibs(...) " {{{2
if a:0
let file = a:1
else
let file = g:latex#data[b:latex.id].tex
let file = g:vimtex#data[b:vimtex.id].tex
endif
if !filereadable(file)
@ -265,11 +265,11 @@ function! s:bibtex_find_bibs(...) " {{{2
"
" Recursively search included files
"
if g:latex_complete_recursive_bib
if g:vimtex_complete_recursive_bib
for entry in map(filter(lines,
\ 'v:val =~ ' . s:re_incsearch),
\ 'matchstr(v:val, ' . s:re_incsearch . ')')
let bibfiles += s:bibtex_find_bibs(latex#util#kpsewhich(entry))
let bibfiles += s:bibtex_find_bibs(vimtex#util#kpsewhich(entry))
endfor
endif
@ -336,14 +336,14 @@ function! s:labels_extract(file) " {{{2
let lines = readfile(a:file)
let lines = filter(lines, 'v:val =~# ''\\newlabel{''')
let lines = filter(lines, 'v:val !~# ''@cref''')
let lines = map(lines, 'latex#util#convert_back(v:val)')
let lines = map(lines, 'vimtex#util#convert_back(v:val)')
for line in lines
let tree = latex#util#tex2tree(line)
let tree = vimtex#util#tex2tree(line)
if !empty(tree[2][0])
call add(matches, [
\ latex#util#tree2tex(tree[1][0]),
\ latex#util#tree2tex(tree[2][0][0]),
\ latex#util#tree2tex(tree[2][1][0]),
\ vimtex#util#tree2tex(tree[1][0]),
\ vimtex#util#tree2tex(tree[2][0][0]),
\ vimtex#util#tree2tex(tree[2][1][0]),
\ ])
endif
endfor

View File

@ -1,18 +1,18 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#fold#init(initialized) " {{{1
call latex#util#set_default('g:latex_fold_enabled', 1)
if !g:latex_fold_enabled | return | endif
function! vimtex#fold#init(initialized) " {{{1
call vimtex#util#set_default('g:vimtex_fold_enabled', 1)
if !g:vimtex_fold_enabled | return | endif
" Set default options
call latex#util#set_default('g:latex_fold_automatic', 1)
call latex#util#set_default('g:latex_fold_preamble', 1)
call latex#util#set_default('g:latex_fold_envs', 1)
call latex#util#set_default('g:latex_fold_parts',
call vimtex#util#set_default('g:vimtex_fold_automatic', 1)
call vimtex#util#set_default('g:vimtex_fold_preamble', 1)
call vimtex#util#set_default('g:vimtex_fold_envs', 1)
call vimtex#util#set_default('g:vimtex_fold_parts',
\ [
\ "part",
\ "appendix",
@ -20,7 +20,7 @@ function! latex#fold#init(initialized) " {{{1
\ "mainmatter",
\ "backmatter",
\ ])
call latex#util#set_default('g:latex_fold_sections',
call vimtex#util#set_default('g:vimtex_fold_sections',
\ [
\ "chapter",
\ "section",
@ -29,26 +29,26 @@ function! latex#fold#init(initialized) " {{{1
\ ])
" Define some script variables
let s:parts = '\v^\s*(\\|\% Fake)(' . join(g:latex_fold_parts, '|') . ')>'
let s:secs = '\v^\s*(\\|\% Fake)(' . join(g:latex_fold_sections, '|') . ')>'
let s:parts = '\v^\s*(\\|\% Fake)(' . join(g:vimtex_fold_parts, '|') . ')>'
let s:secs = '\v^\s*(\\|\% Fake)(' . join(g:vimtex_fold_sections, '|') . ')>'
" Set fold options
setl foldmethod=expr
setl foldexpr=latex#fold#level(v:lnum)
setl foldtext=latex#fold#text()
setl foldexpr=vimtex#fold#level(v:lnum)
setl foldtext=vimtex#fold#text()
" Initalize folds
call latex#fold#refresh('zX')
call vimtex#fold#refresh('zX')
" Remap zx to refresh fold levels
nnoremap <silent><buffer> zx :call latex#fold#refresh('zx')<cr>
nnoremap <silent><buffer> zX :call latex#fold#refresh('zX')<cr>
nnoremap <silent><buffer> zx :call vimtex#fold#refresh('zx')<cr>
nnoremap <silent><buffer> zX :call vimtex#fold#refresh('zX')<cr>
" Define commands
command! -buffer VimLatexRefreshFolds call latex#fold#refresh('zx')
command! -buffer VimtexRefreshFolds call vimtex#fold#refresh('zx')
" Set options for automatic/manual mode
if g:latex_fold_automatic
if g:vimtex_fold_automatic
" For some reason, foldmethod=expr makes undo slow (at least in some cases)
nnoremap <silent><buffer> u :call FdmSave()<cr>u:call FdmRestore()<cr>
@ -68,12 +68,12 @@ function! latex#fold#init(initialized) " {{{1
endif
endfunction
function! latex#fold#refresh(map) " {{{1
function! vimtex#fold#refresh(map) " {{{1
" Parse tex file to dynamically set the sectioning fold levels
let b:latex.fold_parts = s:parse_folded()
let b:vimtex.fold_parts = s:parse_folded()
" Refresh folds
if g:latex_fold_automatic
if g:vimtex_fold_automatic
execute 'normal! ' . a:map
else
setl foldmethod=expr
@ -82,7 +82,7 @@ function! latex#fold#refresh(map) " {{{1
endif
endfunction
function! latex#fold#level(lnum) " {{{1
function! vimtex#fold#level(lnum) " {{{1
" Check for normal lines first (optimization)
let line = getline(a:lnum)
if line !~ '\(% Fake\|\\\(document\|begin\|end\|'
@ -91,7 +91,7 @@ function! latex#fold#level(lnum) " {{{1
endif
" Fold preamble
if g:latex_fold_preamble
if g:vimtex_fold_preamble
if line =~# '^\s*\\documentclass'
return ">1"
elseif line =~# '^\s*\\begin\s*{\s*document\s*}'
@ -100,7 +100,7 @@ function! latex#fold#level(lnum) " {{{1
endif
" Fold chapters and sections
for [part, level] in b:latex.fold_parts
for [part, level] in b:vimtex.fold_parts
if line =~# part
return ">" . level
endif
@ -112,7 +112,7 @@ function! latex#fold#level(lnum) " {{{1
endif
" Fold environments
if g:latex_fold_envs
if g:vimtex_fold_envs
if line =~# s:notcomment . s:notbslash . '\\begin\s*{.\{-}}'
if line !~# '\\end'
return "a1"
@ -128,7 +128,7 @@ function! latex#fold#level(lnum) " {{{1
return "="
endfunction
function! latex#fold#text() " {{{1
function! vimtex#fold#text() " {{{1
" Initialize
let line = getline(v:foldstart)
let level = v:foldlevel > 1 ? repeat('-', v:foldlevel-2) . '*' : ''
@ -236,7 +236,7 @@ function! s:parse_folded() " {{{1
" Parse part commands (frontmatter, appendix, part, etc)
let lines = filter(copy(buffer), 'v:val =~ ''' . s:parts . '''')
for part in g:latex_fold_parts
for part in g:vimtex_fold_parts
let partpattern = '^\s*\(\\\|% Fake\)' . part . '\>'
for line in lines
if line =~# partpattern
@ -256,7 +256,7 @@ function! s:parse_folded() " {{{1
" Parse section commands (chapter, [sub...]section)
let lines = filter(copy(buffer), 'v:val =~ ''' . s:secs . '''')
for part in g:latex_fold_sections
for part in g:vimtex_fold_sections
let partpattern = '^\s*\(\\\|% Fake\)' . part . '\>'
for line in lines
if line =~# partpattern

View File

@ -1,14 +1,14 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#labels#init(initialized) " {{{1
call latex#util#set_default('g:latex_labels_enabled', 1)
if !g:latex_labels_enabled | return | endif
function! vimtex#labels#init(initialized) " {{{1
call vimtex#util#set_default('g:vimtex_labels_enabled', 1)
if !g:vimtex_labels_enabled | return | endif
let g:latex#data[b:latex.id].labels = function('s:gather_labels')
let g:vimtex#data[b:vimtex.id].labels = function('s:gather_labels')
endfunction
" }}}1

View File

@ -1,68 +1,68 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#latexmk#init(initialized) " {{{1
call latex#util#set_default('g:latex_latexmk_enabled', 1)
if !g:latex_latexmk_enabled | return | endif
function! vimtex#latexmk#init(initialized) " {{{1
call vimtex#util#set_default('g:vimtex_latexmk_enabled', 1)
if !g:vimtex_latexmk_enabled | return | endif
if s:system_incompatible() | return | endif
" Set default options
call latex#util#set_default('g:latex_latexmk_background', 0)
call latex#util#set_default('g:latex_latexmk_build_dir', '.')
call latex#util#set_default('g:latex_latexmk_callback', 1)
call latex#util#set_default('g:latex_latexmk_continuous', 1)
call latex#util#set_default('g:latex_latexmk_options', '-pdf')
call latex#util#set_default('g:latex_quickfix_autojump', '0')
call latex#util#set_default('g:latex_quickfix_mode', '2')
call latex#util#set_default('g:latex_quickfix_open_on_warning', '1')
call latex#util#error_deprecated('g:latex_build_dir')
call latex#util#error_deprecated('g:latex_latexmk_autojump')
call latex#util#error_deprecated('g:latex_latexmk_output')
call latex#util#error_deprecated('g:latex_latexmk_quickfix')
call vimtex#util#set_default('g:vimtex_latexmk_background', 0)
call vimtex#util#set_default('g:vimtex_latexmk_build_dir', '.')
call vimtex#util#set_default('g:vimtex_latexmk_callback', 1)
call vimtex#util#set_default('g:vimtex_latexmk_continuous', 1)
call vimtex#util#set_default('g:vimtex_latexmk_options', '-pdf')
call vimtex#util#set_default('g:vimtex_quickfix_autojump', '0')
call vimtex#util#set_default('g:vimtex_quickfix_mode', '2')
call vimtex#util#set_default('g:vimtex_quickfix_open_on_warning', '1')
call vimtex#util#error_deprecated('g:vimtex_build_dir')
call vimtex#util#error_deprecated('g:vimtex_latexmk_autojump')
call vimtex#util#error_deprecated('g:vimtex_latexmk_output')
call vimtex#util#error_deprecated('g:vimtex_latexmk_quickfix')
" Set compiler (this defines the errorformat)
compiler latexmk
let g:latex#data[b:latex.id].pid = 0
let g:vimtex#data[b:vimtex.id].pid = 0
" Define commands
command! -buffer VimLatexCompile call latex#latexmk#compile()
command! -buffer -bang VimLatexCompileSS call latex#latexmk#compile_ss(<q-bang> == "!")
command! -buffer VimLatexCompileToggle call latex#latexmk#toggle()
command! -buffer VimLatexCompileOutput call latex#latexmk#output()
command! -buffer VimLatexStop call latex#latexmk#stop()
command! -buffer VimLatexStopAll call latex#latexmk#stop_all()
command! -buffer -bang VimLatexErrors call latex#latexmk#errors(<q-bang> == "!")
command! -buffer -bang VimLatexClean call latex#latexmk#clean(<q-bang> == "!")
command! -buffer -bang VimLatexStatus call latex#latexmk#status(<q-bang> == "!")
command! -buffer VimLatexLacheck call latex#latexmk#lacheck()
command! -buffer VimtexCompile call vimtex#latexmk#compile()
command! -buffer -bang VimtexCompileSS call vimtex#latexmk#compile_ss(<q-bang> == "!")
command! -buffer VimtexCompileToggle call vimtex#latexmk#toggle()
command! -buffer VimtexCompileOutput call vimtex#latexmk#output()
command! -buffer VimtexStop call vimtex#latexmk#stop()
command! -buffer VimtexStopAll call vimtex#latexmk#stop_all()
command! -buffer -bang VimtexErrors call vimtex#latexmk#errors(<q-bang> == "!")
command! -buffer -bang VimtexClean call vimtex#latexmk#clean(<q-bang> == "!")
command! -buffer -bang VimtexStatus call vimtex#latexmk#status(<q-bang> == "!")
command! -buffer VimtexLacheck call vimtex#latexmk#lacheck()
" Define mappings
nnoremap <buffer> <plug>(vl-compile) :call latex#latexmk#compile()<cr>
nnoremap <buffer> <plug>(vl-compile-ss) :call latex#latexmk#compile_ss(0)<cr>
nnoremap <buffer> <plug>(vl-compile-toggle) :call latex#latexmk#toggle()<cr>
nnoremap <buffer> <plug>(vl-compile-output) :call latex#latexmk#output()<cr>
nnoremap <buffer> <plug>(vl-stop) :call latex#latexmk#stop()<cr>
nnoremap <buffer> <plug>(vl-stop-all) :call latex#latexmk#stop_all()<cr>
nnoremap <buffer> <plug>(vl-errors) :call latex#latexmk#errors(1)<cr>
nnoremap <buffer> <plug>(vl-clean) :call latex#latexmk#clean(0)<cr>
nnoremap <buffer> <plug>(vl-clean-full) :call latex#latexmk#clean(1)<cr>
nnoremap <buffer> <plug>(vl-status) :call latex#latexmk#status(0)<cr>
nnoremap <buffer> <plug>(vl-status-all) :call latex#latexmk#status(1)<cr>
nnoremap <buffer> <plug>(vl-lacheck) :call latex#latexmk#lacheck()<cr>
nnoremap <buffer> <plug>(vimtex-compile) :call vimtex#latexmk#compile()<cr>
nnoremap <buffer> <plug>(vimtex-compile-ss) :call vimtex#latexmk#compile_ss(0)<cr>
nnoremap <buffer> <plug>(vimtex-compile-toggle) :call vimtex#latexmk#toggle()<cr>
nnoremap <buffer> <plug>(vimtex-compile-output) :call vimtex#latexmk#output()<cr>
nnoremap <buffer> <plug>(vimtex-stop) :call vimtex#latexmk#stop()<cr>
nnoremap <buffer> <plug>(vimtex-stop-all) :call vimtex#latexmk#stop_all()<cr>
nnoremap <buffer> <plug>(vimtex-errors) :call vimtex#latexmk#errors(1)<cr>
nnoremap <buffer> <plug>(vimtex-clean) :call vimtex#latexmk#clean(0)<cr>
nnoremap <buffer> <plug>(vimtex-clean-full) :call vimtex#latexmk#clean(1)<cr>
nnoremap <buffer> <plug>(vimtex-status) :call vimtex#latexmk#status(0)<cr>
nnoremap <buffer> <plug>(vimtex-status-all) :call vimtex#latexmk#status(1)<cr>
nnoremap <buffer> <plug>(vimtex-lacheck) :call vimtex#latexmk#lacheck()<cr>
" The remaining part is only relevant for continuous mode
if !g:latex_latexmk_continuous | return | endif
if !g:vimtex_latexmk_continuous | return | endif
" Ensure that all latexmk processes are stopped when vim exits
" Note: Only need to define this once, globally.
if !a:initialized
augroup latex_latexmk
autocmd!
autocmd VimLeave * call latex#latexmk#stop_all()
autocmd VimLeave * call vimtex#latexmk#stop_all()
augroup END
endif
@ -75,8 +75,8 @@ function! latex#latexmk#init(initialized) " {{{1
endfunction
" }}}1
function! latex#latexmk#callback(status) " {{{1
call latex#latexmk#errors(0)
function! vimtex#latexmk#callback(status) " {{{1
call vimtex#latexmk#errors(0)
redraw!
echohl ModeMsg
@ -90,16 +90,16 @@ function! latex#latexmk#callback(status) " {{{1
endif
echohl None
if has_key(g:latex#data[b:latex.id].viewer, 'latexmk_callback')
call g:latex#data[b:latex.id].viewer.latexmk_callback()
if has_key(g:vimtex#data[b:vimtex.id].viewer, 'latexmk_callback')
call g:vimtex#data[b:vimtex.id].viewer.latexmk_callback()
endif
return ""
endfunction
" }}}1
function! latex#latexmk#clean(full) " {{{1
let data = g:latex#data[b:latex.id]
function! vimtex#latexmk#clean(full) " {{{1
let data = g:vimtex#data[b:vimtex.id]
if data.pid
echomsg "latexmk is already running"
return
@ -113,15 +113,15 @@ function! latex#latexmk#clean(full) " {{{1
else
let cmd = 'cd ' . shellescape(data.root) . '; '
endif
let cmd .= 'latexmk -outdir=' . g:latex_latexmk_build_dir
let cmd .= 'latexmk -outdir=' . g:vimtex_latexmk_build_dir
let cmd .= a:full ? ' -C ' : ' -c'
let cmd .= latex#util#fnameescape(data.base)
let cmd .= vimtex#util#fnameescape(data.base)
let exe = {
\ 'cmd' : cmd,
\ 'bg' : 0,
\ }
call latex#util#execute(exe)
let g:latex#data[b:latex.id].cmd_latexmk_clean = cmd
call vimtex#util#execute(exe)
let g:vimtex#data[b:vimtex.id].cmd_latexmk_clean = cmd
if a:full
echomsg "latexmk full clean finished"
@ -131,7 +131,7 @@ function! latex#latexmk#clean(full) " {{{1
endfunction
" }}}1
function! latex#latexmk#lacheck() " {{{1
function! vimtex#latexmk#lacheck() " {{{1
compiler lacheck
silent lmake %
@ -143,19 +143,19 @@ function! latex#latexmk#lacheck() " {{{1
endfunction
" }}}1
function! latex#latexmk#toggle() " {{{1
let data = g:latex#data[b:latex.id]
function! vimtex#latexmk#toggle() " {{{1
let data = g:vimtex#data[b:vimtex.id]
if data.pid
call latex#latexmk#stop()
call vimtex#latexmk#stop()
else
call latex#latexmk#compile()
call vimtex#latexmk#compile()
endif
endfunction
" }}}1
function! latex#latexmk#compile() " {{{1
let data = g:latex#data[b:latex.id]
function! vimtex#latexmk#compile() " {{{1
let data = g:vimtex#data[b:vimtex.id]
if data.pid
echomsg "latexmk is already running for `" . data.base . "'"
return
@ -163,13 +163,13 @@ function! latex#latexmk#compile() " {{{1
" Build command line and start latexmk
let exe = s:latexmk_build_cmd(data)
if !g:latex_latexmk_continuous && !g:latex_latexmk_background
if !g:vimtex_latexmk_continuous && !g:vimtex_latexmk_background
let exe.bg = 0
let exe.silent = 0
endif
call latex#util#execute(exe)
call vimtex#util#execute(exe)
if g:latex_latexmk_continuous
if g:vimtex_latexmk_continuous
call s:latexmk_set_pid(data)
echomsg 'latexmk started in continuous mode ...'
@ -179,29 +179,29 @@ function! latex#latexmk#compile() " {{{1
endfunction
" }}}1
function! latex#latexmk#compile_ss(verbose) " {{{1
let data = g:latex#data[b:latex.id]
function! vimtex#latexmk#compile_ss(verbose) " {{{1
let data = g:vimtex#data[b:vimtex.id]
if data.pid
echomsg "latexmk is already running for `" . data.base . "'"
return
endif
let l:latex_latexmk_continuous = g:latex_latexmk_continuous
let g:latex_latexmk_continuous = 0
let l:vimtex_latexmk_continuous = g:vimtex_latexmk_continuous
let g:vimtex_latexmk_continuous = 0
let exe = s:latexmk_build_cmd(data)
if a:verbose
let exe.bg = 0
let exe.silent = 0
endif
call latex#util#execute(exe)
let g:latex_latexmk_continuous = l:latex_latexmk_continuous
call vimtex#util#execute(exe)
let g:vimtex_latexmk_continuous = l:vimtex_latexmk_continuous
endfunction
" }}}1
function! latex#latexmk#errors(force) " {{{1
function! vimtex#latexmk#errors(force) " {{{1
cclose
let log = g:latex#data[b:latex.id].log()
let log = g:vimtex#data[b:vimtex.id].log()
if empty(log)
if a:force
echo "No log file found!"
@ -209,7 +209,7 @@ function! latex#latexmk#errors(force) " {{{1
return
endif
if g:latex_quickfix_autojump
if g:vimtex_quickfix_autojump
execute 'cfile ' . fnameescape(log)
else
execute 'cgetfile ' . fnameescape(log)
@ -222,13 +222,13 @@ function! latex#latexmk#errors(force) " {{{1
" normal mode mapping). Else the behaviour is based on the settings.
"
let open_quickfix_window = a:force
\ || (g:latex_quickfix_mode > 0
\ && (g:latex_quickfix_open_on_warning
\ || (g:vimtex_quickfix_mode > 0
\ && (g:vimtex_quickfix_open_on_warning
\ || s:log_contains_error(log)))
if open_quickfix_window
botright cwindow
if g:latex_quickfix_mode == 2
if g:vimtex_quickfix_mode == 2
wincmd p
endif
redraw!
@ -236,11 +236,11 @@ function! latex#latexmk#errors(force) " {{{1
endfunction
" }}}1
function! latex#latexmk#output() " {{{1
if has_key(g:latex#data[b:latex.id], 'tmp')
let tmp = g:latex#data[b:latex.id].tmp
function! vimtex#latexmk#output() " {{{1
if has_key(g:vimtex#data[b:vimtex.id], 'tmp')
let tmp = g:vimtex#data[b:vimtex.id].tmp
else
echo "vim-latex: No output exists"
echo "vimtex: No output exists"
return
endif
@ -270,10 +270,10 @@ function! latex#latexmk#output() " {{{1
endfunction
" }}}1
function! latex#latexmk#status(detailed) " {{{1
function! vimtex#latexmk#status(detailed) " {{{1
if a:detailed
let running = 0
for data in g:latex#data
for data in g:vimtex#data
if data.pid
if !running
echo "latexmk is running"
@ -293,7 +293,7 @@ function! latex#latexmk#status(detailed) " {{{1
echo "latexmk is not running"
endif
else
if g:latex#data[b:latex.id].pid
if g:vimtex#data[b:vimtex.id].pid
echo "latexmk is running"
else
echo "latexmk is not running"
@ -302,12 +302,12 @@ function! latex#latexmk#status(detailed) " {{{1
endfunction
" }}}1
function! latex#latexmk#stop() " {{{1
let pid = g:latex#data[b:latex.id].pid
let base = g:latex#data[b:latex.id].base
function! vimtex#latexmk#stop() " {{{1
let pid = g:vimtex#data[b:vimtex.id].pid
let base = g:vimtex#data[b:vimtex.id].base
if pid
call s:latexmk_kill_pid(pid)
let g:latex#data[b:latex.id].pid = 0
let g:vimtex#data[b:vimtex.id].pid = 0
echo "latexmk stopped for `" . base . "'"
else
echo "latexmk is not running for `" . base . "'"
@ -315,8 +315,8 @@ function! latex#latexmk#stop() " {{{1
endfunction
" }}}1
function! latex#latexmk#stop_all() " {{{1
for data in g:latex#data
function! vimtex#latexmk#stop_all() " {{{1
for data in g:vimtex#data
if data.pid
call s:latexmk_kill_pid(data.pid)
let data.pid = 0
@ -327,7 +327,7 @@ endfunction
" }}}1
" Helper function(s) for building the latexmk command
function! latex#latexmk#add_option(name, value) " {{{1
function! vimtex#latexmk#add_option(name, value) " {{{1
if has('win32')
return ' -e "$' . a:name . ' = ''' . a:value . '''"'
else
@ -354,33 +354,33 @@ function! s:latexmk_build_cmd(data) " {{{1
let cmd .= ' && max_print_line=2000 latexmk'
endif
let cmd .= ' ' . g:latex_latexmk_options
let cmd .= ' ' . g:vimtex_latexmk_options
let cmd .= ' -e ' . shellescape('$pdflatex =~ s/ / -file-line-error /')
let cmd .= ' -outdir=' . g:latex_latexmk_build_dir
let cmd .= ' -outdir=' . g:vimtex_latexmk_build_dir
if g:latex_latexmk_continuous
if g:vimtex_latexmk_continuous
let cmd .= ' -pvc'
endif
if g:latex_latexmk_callback && has('clientserver')
if g:vimtex_latexmk_callback && has('clientserver')
let success = v:progname
let success .= ' --servername ' . v:servername
let success .= ' --remote-expr \"latex\#latexmk\#callback(1)\"'
let success .= ' --remote-expr \"vimtex\#latexmk\#callback(1)\"'
let failed = v:progname
let failed .= ' --servername ' . v:servername
let failed .= ' --remote-expr \"latex\#latexmk\#callback(0)\"'
let cmd .= latex#latexmk#add_option('success_cmd', success)
let cmd .= latex#latexmk#add_option('failure_cmd', failed)
let failed .= ' --remote-expr \"vimtex\#latexmk\#callback(0)\"'
let cmd .= vimtex#latexmk#add_option('success_cmd', success)
let cmd .= vimtex#latexmk#add_option('failure_cmd', failed)
let s:first_callback = 1
endif
if has_key(g:latex#data[b:latex.id].viewer, 'latexmk_append_argument')
let cmd .= g:latex#data[b:latex.id].viewer.latexmk_append_argument()
if has_key(g:vimtex#data[b:vimtex.id].viewer, 'latexmk_append_argument')
let cmd .= g:vimtex#data[b:vimtex.id].viewer.latexmk_append_argument()
endif
let cmd .= ' ' . latex#util#fnameescape(a:data.base)
let cmd .= ' ' . vimtex#util#fnameescape(a:data.base)
if g:latex_latexmk_continuous || g:latex_latexmk_background
if g:vimtex_latexmk_continuous || g:vimtex_latexmk_background
if has('win32')
let cmd .= ' >' . tmp
let cmd = 'cmd /s /c "' . cmd . '"'
@ -418,7 +418,7 @@ function! s:latexmk_kill_pid(pid) " {{{1
let exe.cmd = 'kill ' . a:pid
endif
call latex#util#execute(exe)
call vimtex#util#execute(exe)
endfunction
" }}}1
@ -436,9 +436,9 @@ function! s:stop_buffer() " {{{1
"
" Only run if latex variables are set
"
if !exists('b:latex') | return | endif
let id = b:latex.id
let pid = g:latex#data[id].pid
if !exists('b:vimtex') | return | endif
let id = b:vimtex.id
let pid = g:vimtex#data[id].pid
"
" Only stop if latexmk is running
@ -449,7 +449,7 @@ function! s:stop_buffer() " {{{1
"
let n = 0
for b in filter(range(1, bufnr("$")), 'buflisted(v:val)')
if id == getbufvar(b, 'latex', {'id' : -1}).id
if id == getbufvar(b, 'vimtex', {'id' : -1}).id
let n += 1
endif
endfor
@ -458,7 +458,7 @@ function! s:stop_buffer() " {{{1
" Only stop if current buffer is the last for current latex blob
"
if n == 1
silent call latex#latexmk#stop()
silent call vimtex#latexmk#stop()
endif
endif
endfunction
@ -475,7 +475,7 @@ function! s:system_incompatible() " {{{1
"
for cmd in required
if !executable(cmd)
echom "Warning: Could not initialize latex#latexmk"
echom "Warning: Could not initialize vimtex#latexmk"
echom " Missing executable: " . cmd
return 1
endif

View File

@ -0,0 +1,80 @@
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! vimtex#mappings#init(initialized)
call vimtex#util#set_default('g:vimtex_mappings_enabled', 1)
if !g:vimtex_mappings_enabled | return | endif
nmap <silent><buffer> <localleader>li <plug>(vimtex-info)
nmap <silent><buffer> <localleader>lh <plug>(vimtex-help)
nmap <silent><buffer> <localleader>lR <plug>(vimtex-reinit)
nmap <silent><buffer> dse <plug>(vimtex-delete-env)
nmap <silent><buffer> dsc <plug>(vimtex-delete-cmd)
nmap <silent><buffer> cse <plug>(vimtex-change-env)
nmap <silent><buffer> csc <plug>(vimtex-change-cmd)
nmap <silent><buffer> tse <plug>(vimtex-toggle-star)
nmap <silent><buffer> tsd <plug>(vimtex-toggle-delim)
nmap <silent><buffer> <F7> <plug>(vimtex-create-cmd)
imap <silent><buffer> <F7> <plug>(vimtex-create-cmd)
imap <silent><buffer> ]] <plug>(vimtex-close-env)
if g:vimtex_latexmk_enabled
nmap <silent><buffer> <localleader>ll <plug>(vimtex-compile-toggle)
nmap <silent><buffer> <localleader>lo <plug>(vimtex-compile-output)
nmap <silent><buffer> <localleader>lk <plug>(vimtex-stop)
nmap <silent><buffer> <localleader>lK <plug>(vimtex-stop-all)
nmap <silent><buffer> <localleader>le <plug>(vimtex-errors)
nmap <silent><buffer> <localleader>lc <plug>(vimtex-clean)
nmap <silent><buffer> <localleader>lC <plug>(vimtex-clean-full)
nmap <silent><buffer> <localleader>lg <plug>(vimtex-status)
nmap <silent><buffer> <localleader>lG <plug>(vimtex-status-all)
endif
if g:vimtex_motion_enabled
nmap <silent><buffer> % <plug>(vimtex-%)
xmap <silent><buffer> % <plug>(vimtex-%)
omap <silent><buffer> % <plug>(vimtex-%)
nmap <silent><buffer> ]] <plug>(vimtex-]])
nmap <silent><buffer> ][ <plug>(vimtex-][)
nmap <silent><buffer> [] <plug>(vimtex-[])
nmap <silent><buffer> [[ <plug>(vimtex-[[)
xmap <silent><buffer> ]] <plug>(vimtex-]])
xmap <silent><buffer> ][ <plug>(vimtex-][)
xmap <silent><buffer> [] <plug>(vimtex-[])
xmap <silent><buffer> [[ <plug>(vimtex-[[)
omap <silent><buffer> ]] <plug>(vimtex-]])
omap <silent><buffer> ][ <plug>(vimtex-][)
omap <silent><buffer> [] <plug>(vimtex-[])
omap <silent><buffer> [[ <plug>(vimtex-[[)
xmap <silent><buffer> ie <plug>(vimtex-ie)
xmap <silent><buffer> ae <plug>(vimtex-ae)
omap <silent><buffer> ie <plug>(vimtex-ie)
omap <silent><buffer> ae <plug>(vimtex-ae)
xmap <silent><buffer> i$ <plug>(vimtex-i$)
xmap <silent><buffer> a$ <plug>(vimtex-a$)
omap <silent><buffer> i$ <plug>(vimtex-i$)
omap <silent><buffer> a$ <plug>(vimtex-a$)
xmap <silent><buffer> id <plug>(vimtex-id)
xmap <silent><buffer> ad <plug>(vimtex-ad)
omap <silent><buffer> id <plug>(vimtex-id)
omap <silent><buffer> ad <plug>(vimtex-ad)
endif
if g:vimtex_toc_enabled
nmap <silent><buffer> <localleader>lt <plug>(vimtex-toc-open)
nmap <silent><buffer> <localleader>lT <plug>(vimtex-toc-toggle)
endif
if g:vimtex_view_enabled
nmap <silent><buffer> <localleader>lv <plug>(vimtex-view)
if has_key(g:vimtex#data[b:vimtex.id], 'rsearch')
nmap <silent><buffer> <localleader>lr <plug>(vimtex-reverse-search)
endif
endif
endfunction
" vim: fdm=marker sw=2

View File

@ -1,47 +1,47 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#motion#init(initialized) " {{{1
call latex#util#set_default('g:latex_motion_enabled', 1)
if !g:latex_motion_enabled | return | endif
function! vimtex#motion#init(initialized) " {{{1
call vimtex#util#set_default('g:vimtex_motion_enabled', 1)
if !g:vimtex_motion_enabled | return | endif
" Set default options
call latex#util#set_default('g:latex_motion_matchparen', 1)
call vimtex#util#set_default('g:vimtex_motion_matchparen', 1)
" Define mappings
nnoremap <buffer> <plug>(vl-%) :call latex#motion#find_matching_pair()<cr>
xnoremap <buffer> <plug>(vl-%) :<c-u>call latex#motion#find_matching_pair(1)<cr>
onoremap <buffer> <plug>(vl-%) :normal v%<cr>
nnoremap <buffer> <plug>(vl-]]) :call latex#motion#next_section(0,0,0)<cr>
nnoremap <buffer> <plug>(vl-][) :call latex#motion#next_section(1,0,0)<cr>
nnoremap <buffer> <plug>(vl-[]) :call latex#motion#next_section(1,1,0)<cr>
nnoremap <buffer> <plug>(vl-[[) :call latex#motion#next_section(0,1,0)<cr>
xnoremap <buffer> <plug>(vl-]]) :<c-u>call latex#motion#next_section(0,0,1)<cr>
xnoremap <buffer> <plug>(vl-][) :<c-u>call latex#motion#next_section(1,0,1)<cr>
xnoremap <buffer> <plug>(vl-[]) :<c-u>call latex#motion#next_section(1,1,1)<cr>
xnoremap <buffer> <plug>(vl-[[) :<c-u>call latex#motion#next_section(0,1,1)<cr>
onoremap <buffer> <plug>(vl-]]) :normal v]]<cr>
onoremap <buffer> <plug>(vl-][) :normal v][<cr>
onoremap <buffer> <plug>(vl-[]) :normal v[]<cr>
onoremap <buffer> <plug>(vl-[[) :normal v[[<cr>
xnoremap <buffer> <plug>(vl-ie) :<c-u>call latex#motion#sel_environment(1)<cr>
xnoremap <buffer> <plug>(vl-ae) :<c-u>call latex#motion#sel_environment()<cr>
onoremap <buffer> <plug>(vl-ie) :normal vie<cr>
onoremap <buffer> <plug>(vl-ae) :normal vae<cr>
xnoremap <buffer> <plug>(vl-i$) :<c-u>call latex#motion#sel_inline_math(1)<cr>
xnoremap <buffer> <plug>(vl-a$) :<c-u>call latex#motion#sel_inline_math()<cr>
onoremap <buffer> <plug>(vl-i$) :normal vi$<cr>
onoremap <buffer> <plug>(vl-a$) :normal va$<cr>
xnoremap <buffer> <plug>(vl-id) :<c-u>call latex#motion#sel_delimiter(1)<cr>
xnoremap <buffer> <plug>(vl-ad) :<c-u>call latex#motion#sel_delimiter()<cr>
onoremap <buffer> <plug>(vl-id) :normal vi(<cr>
onoremap <buffer> <plug>(vl-ad) :normal va(<cr>
nnoremap <buffer> <plug>(vimtex-%) :call vimtex#motion#find_matching_pair()<cr>
xnoremap <buffer> <plug>(vimtex-%) :<c-u>call vimtex#motion#find_matching_pair(1)<cr>
onoremap <buffer> <plug>(vimtex-%) :normal v%<cr>
nnoremap <buffer> <plug>(vimtex-]]) :call vimtex#motion#next_section(0,0,0)<cr>
nnoremap <buffer> <plug>(vimtex-][) :call vimtex#motion#next_section(1,0,0)<cr>
nnoremap <buffer> <plug>(vimtex-[]) :call vimtex#motion#next_section(1,1,0)<cr>
nnoremap <buffer> <plug>(vimtex-[[) :call vimtex#motion#next_section(0,1,0)<cr>
xnoremap <buffer> <plug>(vimtex-]]) :<c-u>call vimtex#motion#next_section(0,0,1)<cr>
xnoremap <buffer> <plug>(vimtex-][) :<c-u>call vimtex#motion#next_section(1,0,1)<cr>
xnoremap <buffer> <plug>(vimtex-[]) :<c-u>call vimtex#motion#next_section(1,1,1)<cr>
xnoremap <buffer> <plug>(vimtex-[[) :<c-u>call vimtex#motion#next_section(0,1,1)<cr>
onoremap <buffer> <plug>(vimtex-]]) :normal v]]<cr>
onoremap <buffer> <plug>(vimtex-][) :normal v][<cr>
onoremap <buffer> <plug>(vimtex-[]) :normal v[]<cr>
onoremap <buffer> <plug>(vimtex-[[) :normal v[[<cr>
xnoremap <buffer> <plug>(vimtex-ie) :<c-u>call vimtex#motion#sel_environment(1)<cr>
xnoremap <buffer> <plug>(vimtex-ae) :<c-u>call vimtex#motion#sel_environment()<cr>
onoremap <buffer> <plug>(vimtex-ie) :normal vie<cr>
onoremap <buffer> <plug>(vimtex-ae) :normal vae<cr>
xnoremap <buffer> <plug>(vimtex-i$) :<c-u>call vimtex#motion#sel_inline_math(1)<cr>
xnoremap <buffer> <plug>(vimtex-a$) :<c-u>call vimtex#motion#sel_inline_math()<cr>
onoremap <buffer> <plug>(vimtex-i$) :normal vi$<cr>
onoremap <buffer> <plug>(vimtex-a$) :normal va$<cr>
xnoremap <buffer> <plug>(vimtex-id) :<c-u>call vimtex#motion#sel_delimiter(1)<cr>
xnoremap <buffer> <plug>(vimtex-ad) :<c-u>call vimtex#motion#sel_delimiter()<cr>
onoremap <buffer> <plug>(vimtex-id) :normal vi(<cr>
onoremap <buffer> <plug>(vimtex-ad) :normal va(<cr>
" Highlight matching parens ($, (), ...)
if !a:initialized && g:latex_motion_matchparen
if !a:initialized && g:vimtex_motion_matchparen
augroup latex_motion
autocmd!
" Disable matchparen autocommands
@ -59,12 +59,12 @@ function! latex#motion#init(initialized) " {{{1
endif
endfunction
function! latex#motion#find_matching_pair(...) " {{{1
function! vimtex#motion#find_matching_pair(...) " {{{1
if a:0 > 0
normal! gv
endif
if latex#util#in_comment() | return | endif
if vimtex#util#in_comment() | return | endif
" Save position
let nl = line('.')
@ -90,7 +90,7 @@ function! latex#motion#find_matching_pair(...) " {{{1
if delim =~ '^\$'
let inline = s:notcomment . s:notbslash . '\$'
let [lnum0, cnum0] = searchpos('.', 'nW')
if lnum0 && latex#util#has_syntax('texMathZoneX', lnum0, cnum0)
if lnum0 && vimtex#util#has_syntax('texMathZoneX', lnum0, cnum0)
let [lnum2, cnum2] = searchpos(inline, 'nW', 0, 200)
else
let [lnum2, cnum2] = searchpos(not_cursor . inline, 'bnW', 0, 200)
@ -104,19 +104,19 @@ function! latex#motion#find_matching_pair(...) " {{{1
if delim =~# '^' . open_pat
call searchpairpos(open_pat, '', close_pat,
\ 'W', 'latex#util#in_comment()', 0, 200)
\ 'W', 'vimtex#util#in_comment()', 0, 200)
call search(close_pat, 'ce')
return
elseif delim =~# '^' . close_pat
call searchpairpos(open_pat, '', not_cursor . close_pat,
\ 'bW', 'latex#util#in_comment()', 0, 200)
\ 'bW', 'vimtex#util#in_comment()', 0, 200)
return
endif
endfor
endif
endfunction
function! latex#motion#next_section(type, backwards, visual) " {{{1
function! vimtex#motion#next_section(type, backwards, visual) " {{{1
" Restore visual mode if desired
if a:visual
normal! gv
@ -150,10 +150,10 @@ function! latex#motion#next_section(type, backwards, visual) " {{{1
endif
endfunction
function! latex#motion#sel_delimiter(...) " {{{1
function! vimtex#motion#sel_delimiter(...) " {{{1
let inner = a:0 > 0
let [d1, l1, c1, d2, l2, c2] = latex#util#get_delim()
let [d1, l1, c1, d2, l2, c2] = vimtex#util#get_delim()
if inner
let c1 += len(d1)
@ -184,10 +184,10 @@ function! latex#motion#sel_delimiter(...) " {{{1
endif
endfunction
function! latex#motion#sel_environment(...) " {{{1
function! vimtex#motion#sel_environment(...) " {{{1
let inner = a:0 > 0
let [env, lnum, cnum, lnum2, cnum2] = latex#util#get_env(1)
let [env, lnum, cnum, lnum2, cnum2] = vimtex#util#get_env(1)
call cursor(lnum, cnum)
if inner
if env =~ '^\'
@ -213,12 +213,12 @@ function! latex#motion#sel_environment(...) " {{{1
endif
endfunction
function! latex#motion#sel_inline_math(...) " {{{1
function! vimtex#motion#sel_inline_math(...) " {{{1
let inner = a:0 > 0
let dollar_pat = '\\\@<!\$'
if latex#util#has_syntax('texMathZoneX')
if vimtex#util#has_syntax('texMathZoneX')
call s:search_and_skip_comments(dollar_pat, 'cbW')
elseif getline('.')[col('.') - 1] == '$'
call s:search_and_skip_comments(dollar_pat, 'bW')
@ -283,7 +283,7 @@ let s:section.= '>'
" }}}1
function! s:highlight_matching_pair(...) " {{{1
if latex#util#in_comment() | return | endif
if vimtex#util#in_comment() | return | endif
let hmode = a:0 > 0 ? 1 : 0
2match none
@ -307,7 +307,7 @@ function! s:highlight_matching_pair(...) " {{{1
" Match inline math
"
let [lnum0, cnum0] = searchpos('.', 'nW')
if lnum0 && latex#util#has_syntax('texMathZoneX', lnum0, cnum0)
if lnum0 && vimtex#util#has_syntax('texMathZoneX', lnum0, cnum0)
let [lnum2, cnum2] = searchpos(s:notcomment . s:notbslash . '\$',
\ 'nW', line('w$'), 200)
else
@ -328,7 +328,7 @@ function! s:highlight_matching_pair(...) " {{{1
if delim =~# '^' . open_pat
let [lnum2, cnum2] = searchpairpos(open_pat, '', close_pat,
\ 'nW', 'latex#util#in_comment()', line('w$'), 200)
\ 'nW', 'vimtex#util#in_comment()', line('w$'), 200)
execute '2match MatchParen /\%(\%' . nl . 'l\%' . cnum
\ . 'c' . s:delimiters_open[i] . '\|\%'
\ . lnum2 . 'l\%' . cnum2 . 'c'
@ -337,7 +337,7 @@ function! s:highlight_matching_pair(...) " {{{1
elseif delim =~# '^' . close_pat
let [lnum2, cnum2] = searchpairpos(open_pat, '',
\ '\C\%(\%'. nl . 'l\%' . cnum . 'c\)\@!' . close_pat,
\ 'bnW', 'latex#util#in_comment()', line('w0'), 200)
\ 'bnW', 'vimtex#util#in_comment()', line('w0'), 200)
execute '2match MatchParen /\%(\%' . lnum2 . 'l\%' . cnum2
\ . 'c' . s:delimiters_open[i] . '\|\%'
\ . nl . 'l\%' . cnum . 'c'
@ -362,7 +362,7 @@ function! s:search_and_skip_comments(pat, ...) " {{{1
let flags = substitute(flags, 'c', '', 'g')
" keep searching while in comment
while latex#util#in_comment()
while vimtex#util#in_comment()
let ret = search(a:pat, flags, stopline)
if !ret
break

View File

@ -1,37 +1,37 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#toc#init(initialized) " {{{1
call latex#util#set_default('g:latex_toc_enabled', 1)
if !g:latex_toc_enabled | return | endif
function! vimtex#toc#init(initialized) " {{{1
call vimtex#util#set_default('g:vimtex_toc_enabled', 1)
if !g:vimtex_toc_enabled | return | endif
" Set default options
call latex#util#set_default('g:latex_toc_fold', 0)
call latex#util#set_default('g:latex_toc_fold_levels', 10)
call latex#util#set_default('g:latex_toc_hide_help', 0)
call latex#util#set_default('g:latex_toc_hide_line_numbers', 1)
call latex#util#set_default('g:latex_toc_hide_preamble', 0)
call latex#util#set_default('g:latex_toc_numbers', 1)
call latex#util#set_default('g:latex_toc_numbers_width', 0)
call latex#util#set_default('g:latex_toc_resize', 1)
call latex#util#set_default('g:latex_toc_secnumdepth', 3)
call latex#util#set_default('g:latex_toc_split_pos', 'vert leftabove')
call latex#util#set_default('g:latex_toc_width', 30)
call latex#util#error_deprecated('g:latex_toc_split_side')
call vimtex#util#set_default('g:vimtex_toc_fold', 0)
call vimtex#util#set_default('g:vimtex_toc_fold_levels', 10)
call vimtex#util#set_default('g:vimtex_toc_hide_help', 0)
call vimtex#util#set_default('g:vimtex_toc_hide_line_numbers', 1)
call vimtex#util#set_default('g:vimtex_toc_hide_preamble', 0)
call vimtex#util#set_default('g:vimtex_toc_numbers', 1)
call vimtex#util#set_default('g:vimtex_toc_numbers_width', 0)
call vimtex#util#set_default('g:vimtex_toc_resize', 1)
call vimtex#util#set_default('g:vimtex_toc_secnumdepth', 3)
call vimtex#util#set_default('g:vimtex_toc_split_pos', 'vert leftabove')
call vimtex#util#set_default('g:vimtex_toc_width', 30)
call vimtex#util#error_deprecated('g:vimtex_toc_split_side')
" Define commands
command! -buffer VimLatexTocOpen call latex#toc#open()
command! -buffer VimLatexTocToggle call latex#toc#toggle()
command! -buffer VimtexTocOpen call vimtex#toc#open()
command! -buffer VimtexTocToggle call vimtex#toc#toggle()
" Define mappings
nnoremap <buffer> <plug>(vl-toc-open) :call latex#toc#open()<cr>
nnoremap <buffer> <plug>(vl-toc-toggle) :call latex#toc#toggle()<cr>
nnoremap <buffer> <plug>(vimtex-toc-open) :call vimtex#toc#open()<cr>
nnoremap <buffer> <plug>(vimtex-toc-toggle) :call vimtex#toc#toggle()<cr>
endfunction
function! latex#toc#open() " {{{1
function! vimtex#toc#open() " {{{1
" Go to TOC if it already exists
let winnr = bufwinnr(bufnr('LaTeX TOC'))
if winnr >= 0
@ -46,17 +46,17 @@ function! latex#toc#open() " {{{1
let toc = s:parse_toc()
" Resize vim session if wanted, then create TOC window
if g:latex_toc_resize
silent exe "set columns+=" . g:latex_toc_width
if g:vimtex_toc_resize
silent exe "set columns+=" . g:vimtex_toc_width
endif
silent exe g:latex_toc_split_pos g:latex_toc_width . 'new LaTeX\ TOC'
silent exe g:vimtex_toc_split_pos g:vimtex_toc_width . 'new LaTeX\ TOC'
" Set buffer local variables
let b:toc = toc
let b:toc_numbers = 1
let b:toc_max_level = s:max_level
let b:toc_topmatters = s:count_matters
let b:toc_secnumdepth = g:latex_toc_secnumdepth
let b:toc_secnumdepth = g:vimtex_toc_secnumdepth
let b:calling_winnr = bufwinnr(calling_buf)
let b:calling_file = calling_file
let b:calling_line = calling_line
@ -64,14 +64,14 @@ function! latex#toc#open() " {{{1
setlocal filetype=latextoc
endfunction
function! latex#toc#toggle() " {{{1
function! vimtex#toc#toggle() " {{{1
if bufwinnr(bufnr('LaTeX TOC')) >= 0
if g:latex_toc_resize
silent exe "set columns-=" . g:latex_toc_width
if g:vimtex_toc_resize
silent exe "set columns-=" . g:vimtex_toc_width
endif
silent execute 'bwipeout' . bufnr('LaTeX TOC')
else
call latex#toc#open()
call vimtex#toc#open()
silent execute 'wincmd w'
endif
endfunction
@ -140,7 +140,7 @@ let s:re_other = {
" }}}1
function! s:parse_toc() " {{{1
let file = g:latex#data[b:latex.id].tex
let file = g:vimtex#data[b:vimtex.id].tex
" Reset TOC numbering
call s:number_reset('preamble')
@ -157,7 +157,7 @@ endfunction
" }}}1
function! s:parse_limits(file) " {{{1
if !filereadable(a:file)
echoerr "Error in latex#toc s:parse_limits"
echoerr "Error in vimtex#toc s:parse_limits"
echoerr "File not readable: " . a:file
return ''
endif
@ -191,7 +191,7 @@ function! s:parse_file(file) " {{{1
if a:file == ''
return []
elseif !filereadable(a:file)
echoerr "Error in latex#toc s:parse_file"
echoerr "Error in vimtex#toc s:parse_file"
echoerr "File not readable: " . a:file
return []
endif
@ -210,7 +210,7 @@ function! s:parse_file(file) " {{{1
" 2. Parse preamble
if s:number.preamble
if !g:latex_toc_hide_preamble && line =~# '\v^\s*\\documentclass'
if !g:vimtex_toc_hide_preamble && line =~# '\v^\s*\\documentclass'
call add(toc, {
\ 'title' : 'Preamble',
\ 'number' : '',

View File

@ -1,12 +1,10 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
" Utility functions sorted by name
"
function! latex#util#convert_back(line) " {{{1
function! vimtex#util#convert_back(line) " {{{1
"
" Substitute stuff like '\IeC{\"u}' to corresponding unicode symbols
"
@ -82,15 +80,15 @@ let s:convert_back_list = map([
\ ['\\\~n}' , 'ñ'],
\], '[''\C\(\\IeC\s*{\)\?'' . v:val[0], v:val[1]]')
function! latex#util#error_deprecated(variable) " {{{1
function! vimtex#util#error_deprecated(variable) " {{{1
if exists(a:variable)
echoerr "Deprecation error: " . a:variable
echoerr "Please read docs for more info!"
echoerr ":h vim-latex-changelog"
echoerr ":h vimtex-changelog"
endif
endfunction
function! latex#util#execute(exe) " {{{1
function! vimtex#util#execute(exe) " {{{1
" Execute the given command on the current system. Wrapper function to make
" it easier to run on both windows and unix.
"
@ -108,7 +106,7 @@ function! latex#util#execute(exe) " {{{1
" Check and parse arguments
if !has_key(a:exe, 'cmd')
echoerr "Error in latex#util#execute!"
echoerr "Error in vimtex#util#execute!"
echoerr "Argument error, exe.cmd does not exist!"
return
endif
@ -171,19 +169,19 @@ function! latex#util#execute(exe) " {{{1
endif
endfunction
function! latex#util#fnameescape(path) " {{{1
function! vimtex#util#fnameescape(path) " {{{1
"
" In a Windows environment, a path used in "cmd" only needs to be enclosed by
" double quotes. shellscape() on Windows with "shellslash" set will produce
" a path enclosed by single quotes, which "cmd" does not recognize and
" reports an error. Any path that goes into latex#util#execute() should be
" reports an error. Any path that goes into vimtex#util#execute() should be
" processed through this function.
"
return has('win32') ? '"' . a:path . '"' : shellescape(a:path)
endfunction
function! latex#util#get_env(...) " {{{1
" latex#util#get_env([with_pos])
function! vimtex#util#get_env(...) " {{{1
" vimtex#util#get_env([with_pos])
" Returns:
" - environment
" if with_pos is not given
@ -209,7 +207,7 @@ function! latex#util#get_env(...) " {{{1
let flags .= 'c'
endif
let [lnum1, cnum1] = searchpairpos(begin_pat, '', end_pat, flags,
\ 'latex#util#in_comment()')
\ 'vimtex#util#in_comment()')
let env = ''
@ -234,7 +232,7 @@ function! latex#util#get_env(...) " {{{1
endif
let [lnum2, cnum2] = searchpairpos(begin_pat, '', end_pat, flags,
\ 'latex#util#in_comment()')
\ 'vimtex#util#in_comment()')
call setpos('.', saved_pos)
return [env, lnum1, cnum1, lnum2, cnum2]
@ -244,7 +242,7 @@ function! latex#util#get_env(...) " {{{1
endif
endfunction
function! latex#util#get_delim() " {{{1
function! vimtex#util#get_delim() " {{{1
" Save position in order to restore before finishing
let pos_original = getpos('.')
@ -283,7 +281,7 @@ function! latex#util#get_delim() " {{{1
endif
" Search for closing delimiter
let pos = searchpairpos(open, '', close, flags, 'latex#util#in_comment()')
let pos = searchpairpos(open, '', close, flags, 'vimtex#util#in_comment()')
" Check if the current is pair is the closest pair
if pos[0] && pos[0]*1000 + pos[1] < l2*1000 + c2
@ -291,7 +289,7 @@ function! latex#util#get_delim() " {{{1
let c2=pos[1]
let d2=matchstr(strpart(getline(l2), c2 - 1), close)
let pos = searchpairpos(open,'',close,'bW', 'latex#util#in_comment()')
let pos = searchpairpos(open,'',close,'bW', 'vimtex#util#in_comment()')
let l1=pos[0]
let c1=pos[1]
let d1=matchstr(strpart(getline(l1), c1 - 1), open)
@ -318,7 +316,7 @@ let s:delimiters_close = [
\ '\\\cbigg\?\()\|\]\|\\}\)',
\ ]
function! latex#util#get_os() " {{{1
function! vimtex#util#get_os() " {{{1
if has("win32")
return "win"
elseif has("unix")
@ -330,19 +328,19 @@ function! latex#util#get_os() " {{{1
endif
endfunction
function! latex#util#has_syntax(name, ...) " {{{1
" Usage: latex#util#has_syntax(name, [line], [col])
function! vimtex#util#has_syntax(name, ...) " {{{1
" Usage: vimtex#util#has_syntax(name, [line], [col])
let line = a:0 >= 1 ? a:1 : line('.')
let col = a:0 >= 2 ? a:2 : col('.')
return 0 <= index(map(synstack(line, col),
\ 'synIDattr(v:val, "name") == "' . a:name . '"'), 1)
endfunction
function! latex#util#in_comment(...) " {{{1
function! vimtex#util#in_comment(...) " {{{1
return synIDattr(synID(line('.'), col('.'), 0), "name") =~# '^texComment'
endfunction
function! latex#util#kpsewhich(file, ...) " {{{1
function! vimtex#util#kpsewhich(file, ...) " {{{1
let cmd = 'kpsewhich '
let cmd .= a:0 > 0 ? a:1 : ''
let cmd .= ' "' . a:file . '"'
@ -358,19 +356,19 @@ function! latex#util#kpsewhich(file, ...) " {{{1
return out
endfunction
function! latex#util#set_default(variable, default) " {{{1
function! vimtex#util#set_default(variable, default) " {{{1
if !exists(a:variable)
let {a:variable} = a:default
endif
endfunction
function! latex#util#set_default_os_specific(variable, default) " {{{1
function! vimtex#util#set_default_os_specific(variable, default) " {{{1
if !exists(a:variable)
let {a:variable} = get(a:default, latex#util#get_os(), '')
let {a:variable} = get(a:default, vimtex#util#get_os(), '')
endif
endfunction
function! latex#util#tex2tree(str) " {{{1
function! vimtex#util#tex2tree(str) " {{{1
let tree = []
let i1 = 0
let i2 = -1
@ -393,7 +391,7 @@ function! latex#util#tex2tree(str) " {{{1
else
let depth -= 1
if depth == 0
call add(tree, latex#util#tex2tree(strpart(a:str, i1, i2 - i1)))
call add(tree, vimtex#util#tex2tree(strpart(a:str, i1, i2 - i1)))
let i1 = i2 + 1
endif
endif
@ -401,11 +399,11 @@ function! latex#util#tex2tree(str) " {{{1
return tree
endfunction
function! latex#util#tree2tex(tree) " {{{1
function! vimtex#util#tree2tex(tree) " {{{1
if type(a:tree) == type('')
return a:tree
else
return '{' . join(map(a:tree, 'latex#util#tree2tex(v:val)'), '') . '}'
return '{' . join(map(a:tree, 'vimtex#util#tree2tex(v:val)'), '') . '}'
endif
endfunction

View File

@ -1,34 +1,34 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latex#view#init(initialized) " {{{1
call latex#util#set_default('g:latex_view_enabled', 1)
if !g:latex_view_enabled | return | endif
function! vimtex#view#init(initialized) " {{{1
call vimtex#util#set_default('g:vimtex_view_enabled', 1)
if !g:vimtex_view_enabled | return | endif
let data = g:latex#data[b:latex.id]
let data = g:vimtex#data[b:vimtex.id]
" Initialize viewer options
for viewer in s:viewers
call latex#util#set_default('g:latex_view_' . viewer . '_options', '')
call vimtex#util#set_default('g:vimtex_view_' . viewer . '_options', '')
endfor
" Initialize other options
call latex#util#set_default_os_specific('g:latex_view_general_viewer',
call vimtex#util#set_default_os_specific('g:vimtex_view_general_viewer',
\ {
\ 'linux' : 'xdg-open',
\ 'mac' : 'open',
\ })
call latex#util#set_default('g:latex_view_method', 'general')
call latex#util#set_default('g:latex_view_mupdf_send_keys', '')
call latex#util#error_deprecated('g:latex_viewer')
call vimtex#util#set_default('g:vimtex_view_method', 'general')
call vimtex#util#set_default('g:vimtex_view_mupdf_send_keys', '')
call vimtex#util#error_deprecated('g:vimtex_viewer')
let viewer = 's:' . g:latex_view_method
let viewer = 's:' . g:vimtex_view_method
if !exists(viewer)
echoerr "Viewer does not exist!"
echoerr "Viewer: " . g:latex_view_method
echoerr "Viewer: " . g:vimtex_view_method
return
endif
@ -36,18 +36,18 @@ function! latex#view#init(initialized) " {{{1
call data.viewer.init()
" Define commands
command! -buffer VimLatexView call g:latex#data[b:latex.id].viewer.view()
command! -buffer VimtexView call g:vimtex#data[b:vimtex.id].viewer.view()
if has_key(data.viewer, 'reverse_search')
command! -buffer -nargs=* VimLatexRSearch
\ call g:latex#data[b:latex.id].viewer.reverse_search()
command! -buffer -nargs=* VimtexRSearch
\ call g:vimtex#data[b:vimtex.id].viewer.reverse_search()
endif
" Define mappings
nnoremap <buffer> <plug>(vl-view)
\ :call g:latex#data[b:latex.id].viewer.view()<cr>
nnoremap <buffer> <plug>(vimtex-view)
\ :call g:vimtex#data[b:vimtex.id].viewer.view()<cr>
if has_key(data.viewer, 'reverse_search')
nnoremap <buffer> <plug>(vl-reverse-search)
\ :call g:latex#data[b:latex.id].viewer.reverse_search()<cr>
nnoremap <buffer> <plug>(vimtex-reverse-search)
\ :call g:vimtex#data[b:vimtex.id].viewer.reverse_search()<cr>
endif
endfunction
@ -67,27 +67,27 @@ endfor
" {{{1 General
function! s:general.init() dict " {{{2
if !executable(g:latex_view_general_viewer)
if !executable(g:vimtex_view_general_viewer)
echoerr "General viewer is not available!"
echoerr "g:latex_view_general_viewer = "
\ . g:latex_view_general_viewer
echoerr "g:vimtex_view_general_viewer = "
\ . g:vimtex_view_general_viewer
endif
endfunction
" }}}2
function! s:general.view() dict " {{{2
let exe = {}
let exe.cmd = g:latex_view_general_viewer
let exe.cmd = g:vimtex_view_general_viewer
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
endif
let exe.cmd .= ' ' . g:latex_view_general_options
let exe.cmd .= ' ' . latex#util#fnameescape(outfile)
let exe.cmd .= ' ' . g:vimtex_view_general_options
let exe.cmd .= ' ' . vimtex#util#fnameescape(outfile)
call latex#util#execute(exe)
call vimtex#util#execute(exe)
let self.cmd_view = exe.cmd
endfunction
@ -123,21 +123,21 @@ endfunction
" }}}2
function! s:mupdf.start() dict " {{{2
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
endif
let exe = {}
let exe.cmd = 'mupdf ' . g:latex_view_mupdf_options
let exe.cmd .= ' ' . latex#util#fnameescape(outfile)
call latex#util#execute(exe)
let exe.cmd = 'mupdf ' . g:vimtex_view_mupdf_options
let exe.cmd .= ' ' . vimtex#util#fnameescape(outfile)
call vimtex#util#execute(exe)
let self.cmd_start = exe.cmd
call self.xwin_get_id()
call self.xwin_send_keys(g:latex_view_mupdf_send_keys)
call self.xwin_send_keys(g:vimtex_view_mupdf_send_keys)
call self.forward_search()
endfunction
@ -146,7 +146,7 @@ function! s:mupdf.forward_search() dict " {{{2
if !executable('xdotool') | return | endif
if !executable('synctex') | return | endif
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
@ -155,8 +155,8 @@ function! s:mupdf.forward_search() dict " {{{2
let self.cmd_synctex_view = "synctex view -i "
\ . (line(".") + 1) . ":"
\ . (col(".") + 1) . ":"
\ . latex#util#fnameescape(expand("%:p"))
\ . " -o " . latex#util#fnameescape(outfile)
\ . vimtex#util#fnameescape(expand("%:p"))
\ . " -o " . vimtex#util#fnameescape(outfile)
\ . " | grep -m1 'Page:' | sed 's/Page://' | tr -d '\n'"
let self.page = system(self.cmd_synctex_view)
@ -165,7 +165,7 @@ function! s:mupdf.forward_search() dict " {{{2
let exe.cmd = 'xdotool'
let exe.cmd .= ' type --window ' . self.xwin_id
let exe.cmd .= ' "' . self.page . 'g"'
call latex#util#execute(exe)
call vimtex#util#execute(exe)
let self.cmd_forward_search = exe.cmd
endif
@ -177,7 +177,7 @@ function! s:mupdf.reverse_search() dict " {{{2
if !executable('xdotool') | return | endif
if !executable('synctex') | return | endif
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
@ -222,18 +222,18 @@ endfunction
" }}}2
function! s:mupdf.latexmk_callback() dict " {{{2
call self.xwin_get_id()
call self.xwin_send_keys(g:latex_view_mupdf_send_keys)
call self.xwin_send_keys(g:vimtex_view_mupdf_send_keys)
call self.forward_search()
call self.focus_vim()
endfunction
" }}}2
function! s:mupdf.latexmk_append_argument() dict " {{{2
let cmd = latex#latexmk#add_option('new_viewer_always', '0')
let cmd .= latex#latexmk#add_option('pdf_update_method', '2')
let cmd .= latex#latexmk#add_option('pdf_update_signal', 'SIGHUP')
let cmd .= latex#latexmk#add_option('pdf_previewer',
\ 'start mupdf ' . g:latex_view_mupdf_options)
let cmd = vimtex#latexmk#add_option('new_viewer_always', '0')
let cmd .= vimtex#latexmk#add_option('pdf_update_method', '2')
let cmd .= vimtex#latexmk#add_option('pdf_update_signal', 'SIGHUP')
let cmd .= vimtex#latexmk#add_option('pdf_previewer',
\ 'start mupdf ' . g:vimtex_view_mupdf_options)
return cmd
endfunction
@ -248,18 +248,18 @@ endfunction
" }}}2
function! s:okular.view() dict " {{{2
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
endif
let exe = {}
let exe.cmd = 'okular ' . g:latex_view_okular_options
let exe.cmd .= ' --unique ' . latex#util#fnameescape(outfile)
let exe.cmd .= '\#src:' . line('.') . latex#util#fnameescape(expand('%:p'))
let exe.cmd = 'okular ' . g:vimtex_view_okular_options
let exe.cmd .= ' --unique ' . vimtex#util#fnameescape(outfile)
let exe.cmd .= '\#src:' . line('.') . vimtex#util#fnameescape(expand('%:p'))
call latex#util#execute(exe)
call vimtex#util#execute(exe)
let self.cmd_view = exe.cmd
endfunction
@ -274,20 +274,20 @@ endfunction
" }}}2
function! s:qpdfview.view() dict " {{{2
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
endif
let exe = {}
let exe.cmd = 'qpdfview ' . g:latex_view_qpdfview_options
let exe.cmd .= ' --unique ' . latex#util#fnameescape(outfile)
let exe.cmd .= '\#src:' . latex#util#fnameescape(expand('%:p'))
let exe.cmd = 'qpdfview ' . g:vimtex_view_qpdfview_options
let exe.cmd .= ' --unique ' . vimtex#util#fnameescape(outfile)
let exe.cmd .= '\#src:' . vimtex#util#fnameescape(expand('%:p'))
let exe.cmd .= ':' . line('.')
let exe.cmd .= ':' . col('.')
call latex#util#execute(exe)
call vimtex#util#execute(exe)
let self.cmd_view = exe.cmd
endfunction
@ -302,19 +302,19 @@ endfunction
" }}}2
function! s:sumatrapdf.view() dict " {{{2
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
endif
let exe = {}
let exe.cmd = 'SumatraPDF ' . g:latex_view_sumatrapdf_options
let exe.cmd .= ' -forward-search ' . latex#util#fnameescape(expand('%:p'))
let exe.cmd = 'SumatraPDF ' . g:vimtex_view_sumatrapdf_options
let exe.cmd .= ' -forward-search ' . vimtex#util#fnameescape(expand('%:p'))
let exe.cmd .= ' ' . line('.')
let exe.cmd .= ' ' . latex#util#fnameescape(outfile)
let exe.cmd .= ' ' . vimtex#util#fnameescape(outfile)
call latex#util#execute(exe)
call vimtex#util#execute(exe)
let self.cmd_view = exe.cmd
endfunction
@ -348,19 +348,19 @@ endfunction
" }}}2
function! s:zathura.start() dict " {{{2
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
endif
let exe = {}
let exe.cmd = 'zathura ' . g:latex_view_zathura_options
let exe.cmd = 'zathura ' . g:vimtex_view_zathura_options
let exe.cmd .= ' -x "' . exepath(v:progname)
\ . ' --servername ' . v:servername
\ . ' --remote +\%{line} \%{input}"'
let exe.cmd .= ' ' . latex#util#fnameescape(outfile)
call latex#util#execute(exe)
let exe.cmd .= ' ' . vimtex#util#fnameescape(outfile)
call vimtex#util#execute(exe)
let self.cmd_start = exe.cmd
@ -370,7 +370,7 @@ endfunction
" }}}2
function! s:zathura.forward_search() dict " {{{2
let outfile = g:latex#data[b:latex.id].out()
let outfile = g:vimtex#data[b:vimtex.id].out()
if !filereadable(outfile)
echomsg "Can't view: Output file is not readable!"
return
@ -380,9 +380,9 @@ function! s:zathura.forward_search() dict " {{{2
let exe.cmd = 'zathura --synctex-forward '
let exe.cmd .= line(".")
let exe.cmd .= ':' . col('.')
let exe.cmd .= ':' . latex#util#fnameescape(expand('%:p'))
let exe.cmd .= ' ' . latex#util#fnameescape(outfile)
call latex#util#execute(exe)
let exe.cmd .= ':' . vimtex#util#fnameescape(expand('%:p'))
let exe.cmd .= ' ' . vimtex#util#fnameescape(outfile)
call vimtex#util#execute(exe)
let self.cmd_forward_search = exe.cmd
endfunction
@ -396,9 +396,9 @@ endfunction
" }}}2
function! s:zathura.latexmk_append_argument() dict " {{{2
let cmd = latex#latexmk#add_option('new_viewer_always', '0')
let cmd .= latex#latexmk#add_option('pdf_previewer',
\ 'start zathura ' . g:latex_view_zathura_options
let cmd = vimtex#latexmk#add_option('new_viewer_always', '0')
let cmd .= vimtex#latexmk#add_option('pdf_previewer',
\ 'start zathura ' . g:vimtex_view_zathura_options
\ . ' -x \"' . exepath(v:progname)
\ . ' --servername ' . v:servername
\ . ' --remote +\%{line} \%{input}\" \%S')

View File

@ -1,4 +1,4 @@
% LaTeX plugin for Vim
% vimtex - LaTeX plugin for Vim
%
% Maintainer: Karl Yngve Lervåg
% Email: karl.yngve@gmail.com

View File

@ -1,10 +1,24 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
function! latextoc#fold_level(lnum) " {{{1
function! vimtextoc#init() " {{{1
if !exists('b:toc') | return | endif
" Fill TOC entries
call s:add_start()
call s:add_entries()
call s:add_help()
call s:add_end()
" Jump to closest index
call setpos('.', b:toc_pos_closest)
endfunction
" }}}1
function! vimtextoc#fold_level(lnum) " {{{1
let pline = getline(a:lnum - 1)
let cline = getline(a:lnum)
let nline = getline(a:lnum + 1)
@ -17,36 +31,24 @@ function! latextoc#fold_level(lnum) " {{{1
return 0
endif
if l:nn > l:cn && g:latex_toc_fold_levels >= l:nn
if l:nn > l:cn && g:vimtex_toc_fold_levels >= l:nn
return '>' . l:nn
endif
if l:cn < l:pn && l:cn >= l:nn && g:latex_toc_fold_levels >= l:cn
if l:cn < l:pn && l:cn >= l:nn && g:vimtex_toc_fold_levels >= l:cn
return l:cn
endif
return '='
endfunction
function! latextoc#fold_text() " {{{1
" }}}1
function! vimtextoc#fold_text() " {{{1
return getline(v:foldstart)
endfunction
" }}}1
function! latextoc#init() " {{{1
if !exists('b:toc') | return | endif
" Fill TOC entries
call s:add_start()
call s:add_entries()
call s:add_help()
call s:add_end()
" Jump to closest index
call setpos('.', b:toc_pos_closest)
endfunction
" }}}1
function! latextoc#refresh() " {{{1
function! vimtextoc#refresh() " {{{1
if !exists('b:toc') | return | endif
" Fill TOC entries
@ -58,6 +60,7 @@ function! latextoc#refresh() " {{{1
" Restore old position
call setpos('.', b:toc_pos_saved)
endfunction
" }}}1
function! s:add_start() " {{{1
@ -69,8 +72,8 @@ endfunction
" }}}1
function! s:add_entries() " {{{1
let closest_index = 0
if g:latex_toc_numbers_width
let s:width = g:latex_toc_numbers_width
if g:vimtex_toc_numbers_width
let s:width = g:vimtex_toc_numbers_width
else
let s:width = 2*(b:toc_secnumdepth+2)
endi
@ -90,7 +93,7 @@ function! s:add_entries() " {{{1
endfunction
" }}}1
function! s:add_help() " {{{1
if !g:latex_toc_hide_help
if !g:vimtex_toc_hide_help
call append('$', "")
call append('$', "<Esc>/q: close")
call append('$', "<Space>: jump")
@ -113,7 +116,7 @@ function! s:print_entry(entry) " {{{1
" Create entry string
let entry = ''
if g:latex_toc_numbers
if g:vimtex_toc_numbers
let entry .= printf(s:num_format, level >= b:toc_secnumdepth + 2
\ ? '' : strpart(s:print_number(a:entry.number), 0, s:width))
endif

View File

@ -1,3 +1,9 @@
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
if exists("current_compiler") | finish | endif
let current_compiler = "lacheck"

View File

@ -1,3 +1,9 @@
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
if exists("current_compiler") | finish | endif
let current_compiler = "latexmk"
@ -24,11 +30,11 @@ CompilerSet errorformat+=%Z<argument>\ %m
CompilerSet errorformat+=%Cl.%l\ %m
" Show warnings
if exists("g:latex_quickfix_ignore_all_warnings")
\ && exists("g:latex_quickfix_ignored_warnings")
\ && !g:latex_quickfix_ignore_all_warnings
if exists("g:vimtex_quickfix_ignore_all_warnings")
\ && exists("g:vimtex_quickfix_ignored_warnings")
\ && !g:vimtex_quickfix_ignore_all_warnings
" Ignore some warnings
for w in g:latex_quickfix_ignored_warnings
for w in g:vimtex_quickfix_ignored_warnings
let warning = escape(substitute(w, '[\,]', '%\\\\&', 'g'), ' ')
exe 'CompilerSet errorformat+=%-G%.%#'. warning .'%.%#'
endfor

File diff suppressed because it is too large Load Diff

1325
doc/vimtex.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
"
if exists('g:latex_enabled') && !g:latex_enabled
if exists('g:vimtex_enabled') && !g:vimtex_enabled
finish
endif
if exists('b:did_ftplugin')
@ -12,6 +12,14 @@ if exists('b:did_ftplugin')
endif
let b:did_ftplugin = 1
call latex#init()
if exists('g:latex_enabled')
echohl Error
echom "vim-latex has been renamed to vimtex!"
echom "Please see docs for more information (:h vim-latex-namechange)."
echohl None
finish
endif
call vimtex#init()
" vim: fdm=marker sw=2

View File

@ -1,4 +1,4 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
@ -16,7 +16,7 @@ setlocal listchars=
setlocal nobuflisted
setlocal noswapfile
setlocal nowrap
if g:latex_toc_hide_line_numbers
if g:vimtex_toc_hide_line_numbers
setlocal nonumber
setlocal norelativenumber
endif
@ -26,14 +26,14 @@ setlocal cursorline
setlocal tabstop=8
setlocal cole=0
setlocal cocu=nvic
if g:latex_toc_fold
if g:vimtex_toc_fold
setlocal foldmethod=expr
setlocal foldexpr=latextoc#fold_level(v:lnum)
setlocal foldtext=latextoc#fold_text()
setlocal foldexpr=vimtex_toc#fold_level(v:lnum)
setlocal foldtext=vimtex_toc#fold_text()
endif
" Refresh/Initialize TOC content
call latextoc#init()
call vimtex_toc#init()
" Define mappings
nnoremap <buffer> <silent> G G4k
@ -77,8 +77,8 @@ function! s:toc_activate(close) "{{{1
" Keep or close TOC window (based on options)
if a:close
if g:latex_toc_resize
silent exe "set columns-=" . g:latex_toc_width
if g:vimtex_toc_resize
silent exe "set columns-=" . g:vimtex_toc_width
endif
execute 'bwipeout ' . toc_bnr
else
@ -87,8 +87,8 @@ function! s:toc_activate(close) "{{{1
endfunction
function! s:toc_close() "{{{1
if g:latex_toc_resize
silent exe "set columns-=" . g:latex_toc_width
if g:vimtex_toc_resize
silent exe "set columns-=" . g:vimtex_toc_width
endif
bwipeout
endfunction
@ -129,25 +129,25 @@ function! s:toc_open_entry(entry) "{{{1
endfunction
function! s:toc_toggle_numbers() "{{{1
if g:latex_toc_numbers
let g:latex_toc_numbers = 0
if g:vimtex_toc_numbers
let g:vimtex_toc_numbers = 0
else
let g:latex_toc_numbers = 1
let g:vimtex_toc_numbers = 1
endif
call latextoc#refresh()
call vimtex_toc#refresh()
endfunction
function! s:toc_inc_secnumdepth() "{{{1
let b:toc_secnumdepth = min([b:toc_secnumdepth + 1, 5])
let g:latex_toc_secnumdepth = b:toc_secnumdepth
call latextoc#refresh()
let g:vimtex_toc_secnumdepth = b:toc_secnumdepth
call vimtex_toc#refresh()
endfunction
function! s:toc_dec_secnumdepth() "{{{1
let b:toc_secnumdepth = max([b:toc_secnumdepth - 1, -2])
let g:latex_toc_secnumdepth = b:toc_secnumdepth
call latextoc#refresh()
let g:vimtex_toc_secnumdepth = b:toc_secnumdepth
call vimtex_toc#refresh()
endfunction
" }}}1

View File

@ -1,4 +1,4 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com
@ -9,56 +9,18 @@ if exists("b:did_indent")
endif
let b:did_indent = 1
call latex#util#set_default('g:latex_indent_enabled', 1)
if !g:latex_indent_enabled | finish | endif
call vimtex#util#set_default('g:vimtex_indent_enabled', 1)
if !g:vimtex_indent_enabled | finish | endif
let s:cpo_save = &cpo
set cpo&vim
" {{{1 Options and common patterns
setlocal autoindent
setlocal indentexpr=LatexIndent()
setlocal indentexpr=s:vimtex_indent()
setlocal indentkeys&
setlocal indentkeys+=[,(,{,),},],\&,=\\item
let s:tikz_indented = 0
" Define some common patterns
let s:envs_lists = 'itemize\|description\|enumerate\|thebibliography'
let s:envs_noindent = 'document\|verbatim\|lstlisting'
let s:delimiters_open = '\(' . join([
\ '{',
\ '(',
\ '\[',
\ '\\{',
\ '\\(',
\ '\\\[',
\ '\\\Cbegin\s*{.\{-}}',
\ '\\\Cleft\s*\%([^\\]\|\\.\|\\\a*\)',
\ '\\\cbigg\?\((\|\[\|\\{\)',
\ ], '\|') . '\)'
let s:delimiters_close = '\(' . join([
\ '}',
\ ')',
\ '\]',
\ '\\}',
\ '\\)',
\ '\\\]',
\ '\\\Cend\s*{.\{-}}',
\ '\\\Cright\s*\%([^\\]\|\\.\|\\\a*\)',
\ '\\\cbigg\?\()\|\]\|\\}\)',
\ ], '\|') . '\)'
let s:tikz_commands = '\\\(' . join([
\ 'draw',
\ 'fill',
\ 'path',
\ 'node',
\ 'add\(legendentry\|plot\)',
\ ], '\|') . '\)'
" }}}1
" {{{1 LatexIndent
function! LatexIndent()
function! s:vimtex_indent() " {{{1
" Find a non-blank non-comment line above the current line
let lnum = prevnonblank(v:lnum - 1)
while lnum != 0 && getline(lnum) =~ '^\s*%'
@ -154,9 +116,7 @@ function! LatexIndent()
return ind
endfunction
"}}}
" {{{1 s:count_delimiters
function! s:count_delimiters(line, pattern)
function! s:count_delimiters(line, pattern) " {{{1
let sum = 0
let indx = match(a:line, a:pattern)
while indx >= 0
@ -167,6 +127,45 @@ function! s:count_delimiters(line, pattern)
endwhile
return sum
endfunction
" }}}1
" {{{1 Script variables
let s:tikz_indented = 0
" Define some common patterns
let s:envs_lists = 'itemize\|description\|enumerate\|thebibliography'
let s:envs_noindent = 'document\|verbatim\|lstlisting'
let s:delimiters_open = '\(' . join([
\ '{',
\ '(',
\ '\[',
\ '\\{',
\ '\\(',
\ '\\\[',
\ '\\\Cbegin\s*{.\{-}}',
\ '\\\Cleft\s*\%([^\\]\|\\.\|\\\a*\)',
\ '\\\cbigg\?\((\|\[\|\\{\)',
\ ], '\|') . '\)'
let s:delimiters_close = '\(' . join([
\ '}',
\ ')',
\ '\]',
\ '\\}',
\ '\\)',
\ '\\\]',
\ '\\\Cend\s*{.\{-}}',
\ '\\\Cright\s*\%([^\\]\|\\.\|\\\a*\)',
\ '\\\cbigg\?\()\|\]\|\\}\)',
\ ], '\|') . '\)'
let s:tikz_commands = '\\\(' . join([
\ 'draw',
\ 'fill',
\ 'path',
\ 'node',
\ 'add\(legendentry\|plot\)',
\ ], '\|') . '\)'
" }}}1
let &cpo = s:cpo_save

View File

@ -1,4 +1,4 @@
" LaTeX plugin for Vim
" vimtex - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve Lervåg
" Email: karl.yngve@gmail.com