File: vimtex.vim

package info (click to toggle)
vim-vimtex 2.17-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 8,844 kB
  • sloc: makefile: 360; python: 103
file content (32 lines) | stat: -rw-r--r-- 985 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
" VimTeX - LaTeX plugin for Vim
"
" Maintainer: Karl Yngve LervÄg
" Email:      karl.yngve@gmail.com
"

if !get(g:, 'vimtex_enabled', 1) | finish | endif
if exists('g:loaded_vimtex') | finish | endif
let g:loaded_vimtex = 1


command! -nargs=* VimtexInverseSearch
      \ call call('vimtex#view#inverse_search_cmd', s:parse_args(<q-args>))


function! s:parse_args(args) abort
  " Examples:
  "   parse_args("foobar")    = [-1, '', 0]
  "   parse_args("5 a.tex")   = [5, 'a.tex', 0]
  "   parse_args("5 'a.tex'") = [5, 'a.tex', 0]
  "   parse_args("5:3 a.tex") = [5, 'a.tex', 3]
  let l:matchlist = matchlist(a:args, '^\s*\(\d\+\)\%(:\(-\?\d\+\)\)\?\s\+\(.*\)')
  if empty(l:matchlist) | return [-1, '', 0] | endif
  let l:lnum = str2nr(l:matchlist[1])
  let l:cnum = str2nr(l:matchlist[2])
  let l:file = l:matchlist[3]

  let l:file = substitute(l:file, '\v^([''"])(.*)\1\s*', '\2', '')
  if empty(l:file) | return [-1, '', 0] | endif

  return [l:lnum, l:file, l:cnum]
endfunction