diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2020-04-25 21:30:46 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-04-25 21:30:46 +0200 |
commit | d757bfd643cc73c2d495355c153ed0257f5d5b47 (patch) | |
tree | ff210950456938a779d98f6a2ba7321aca512897 /autoload/vimtex/fold/markers.vim | |
parent | 8ec73a3a8974a62a613680a6b6222a77a7b99546 (diff) | |
download | vim-polyglot-d757bfd643cc73c2d495355c153ed0257f5d5b47.tar.gz vim-polyglot-d757bfd643cc73c2d495355c153ed0257f5d5b47.zip |
Change latex provider to luatex, closes #476
Diffstat (limited to 'autoload/vimtex/fold/markers.vim')
-rw-r--r-- | autoload/vimtex/fold/markers.vim | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/autoload/vimtex/fold/markers.vim b/autoload/vimtex/fold/markers.vim new file mode 100644 index 00000000..00aa1fce --- /dev/null +++ b/autoload/vimtex/fold/markers.vim @@ -0,0 +1,60 @@ +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#fold#markers#new(config) abort " {{{1 + return extend(deepcopy(s:folder), a:config).init() +endfunction + +" }}}1 + + +let s:folder = { + \ 'name' : 'markers', + \ 'open' : '{{{', + \ 'close' : '}}}', + \ 're' : {}, + \ 'opened' : 0, + \} +function! s:folder.init() abort dict " {{{1 + let self.re.start = '%.*' . self.open + let self.re.end = '%.*' . self.close + let self.re.text = [ + \ [self.re.start . '\d\?\s*\zs.*', '% ' . self.open . ' '], + \ ['%\s*\zs.*\ze' . self.open, '% ' . self.open . ' '], + \ ['^.*\ze\s*%', ''], + \] + + let self.re.fold_re = escape(self.open . '|' . self.close, '{}%+*.') + + return self +endfunction + +" }}}1 +function! s:folder.level(line, lnum) abort dict " {{{1 + if a:line =~# self.re.start + let s:self.opened = 1 + return 'a1' + elseif a:line =~# self.re.end + let s:self.opened = 0 + return 's1' + endif +endfunction + +" }}}1 +function! s:folder.text(line, level) abort dict " {{{1 + for [l:re, l:pre] in self.re.text + let l:text = matchstr(a:line, l:re) + if !empty(l:text) | return l:pre . l:text | endif + endfor + + return '% ' . self.open . ' ' . getline(v:foldstart + 1) +endfunction + +" }}}1 + +endif |