summaryrefslogtreecommitdiffstats
path: root/autoload/vimtex/syntax/p/biblatex.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/vimtex/syntax/p/biblatex.vim')
-rw-r--r--autoload/vimtex/syntax/p/biblatex.vim84
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