diff options
Diffstat (limited to 'autoload/vimtex/syntax/p/biblatex.vim')
-rw-r--r-- | autoload/vimtex/syntax/p/biblatex.vim | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/autoload/vimtex/syntax/p/biblatex.vim b/autoload/vimtex/syntax/p/biblatex.vim new file mode 100644 index 00000000..1c620d6c --- /dev/null +++ b/autoload/vimtex/syntax/p/biblatex.vim @@ -0,0 +1,84 @@ +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#syntax#p#biblatex#load() abort " {{{1 + if has_key(b:vimtex_syntax, 'biblatex') | return | endif + let b:vimtex_syntax.biblatex = 1 + + if get(g:, 'tex_fast', 'r') !~# 'r' | return | endif + + for l:pattern in [ + \ 'bibentry', + \ 'cite[pt]?\*?', + \ 'citeal[tp]\*?', + \ 'cite(num|text|url)', + \ '[Cc]ite%(title|author|year(par)?|date)\*?', + \ '[Pp]arencite\*?', + \ 'foot%(full)?cite%(text)?', + \ 'fullcite', + \ '[Tt]extcite', + \ '[Ss]martcite', + \ 'supercite', + \ '[Aa]utocite\*?', + \ '[Ppf]?[Nn]otecite', + \ '%(text|block)cquote\*?', + \] + execute 'syntax match texStatement' + \ '/\v\\' . l:pattern . '\ze\s*%(\[|\{)/' + \ 'nextgroup=texRefOption,texCite' + endfor + + for l:pattern in [ + \ '[Cc]ites', + \ '[Pp]arencites', + \ 'footcite%(s|texts)', + \ '[Tt]extcites', + \ '[Ss]martcites', + \ 'supercites', + \ '[Aa]utocites', + \ '[pPfFsStTaA]?[Vv]olcites?', + \ 'cite%(field|list|name)', + \] + execute 'syntax match texStatement' + \ '/\v\\' . l:pattern . '\ze\s*%(\[|\{)/' + \ 'nextgroup=texRefOptions,texCites' + endfor + + for l:pattern in [ + \ '%(foreign|hyphen)textcquote\*?', + \ '%(foreign|hyphen)blockcquote', + \ 'hybridblockcquote', + \] + execute 'syntax match texStatement' + \ '/\v\\' . l:pattern . '\ze\s*%(\[|\{)/' + \ 'nextgroup=texQuoteLang' + endfor + + syntax region texRefOptions contained matchgroup=Delimiter + \ start='\[' end=']' + \ contains=@texRefGroup,texRefZone + \ nextgroup=texRefOptions,texCites + + syntax region texCites contained matchgroup=Delimiter + \ start='{' end='}' + \ contains=@texRefGroup,texRefZone,texCites + \ nextgroup=texRefOptions,texCites + + syntax region texQuoteLang contained matchgroup=Delimiter + \ start='{' end='}' + \ transparent + \ contains=@texMatchGroup + \ nextgroup=texRefOption,texCite + + highlight def link texRefOptions texRefOption + highlight def link texCites texCite +endfunction + +" }}}1 + +endif |