summaryrefslogtreecommitdiffstats
path: root/autoload/vimtex/syntax/p/cleveref.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/vimtex/syntax/p/cleveref.vim')
-rw-r--r--autoload/vimtex/syntax/p/cleveref.vim44
1 files changed, 44 insertions, 0 deletions
diff --git a/autoload/vimtex/syntax/p/cleveref.vim b/autoload/vimtex/syntax/p/cleveref.vim
new file mode 100644
index 00000000..1066e4ab
--- /dev/null
+++ b/autoload/vimtex/syntax/p/cleveref.vim
@@ -0,0 +1,44 @@
+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#cleveref#load() abort " {{{1
+ if has_key(b:vimtex_syntax, 'cleveref') | return | endif
+ let b:vimtex_syntax.cleveref = 1
+ if get(g:, 'tex_fast', 'r') !~# 'r' | return | endif
+
+ syntax match texStatement '\\\(\(label\)\?c\(page\)\?\|C\|auto\)ref\>'
+ \ nextgroup=texCRefZone
+
+ " \crefrange, \cpagerefrange (these commands expect two arguments)
+ syntax match texStatement '\\c\(page\)\?refrange\>'
+ \ nextgroup=texCRefZoneRange skipwhite skipnl
+
+ " \label[xxx]{asd}
+ syntax match texStatement '\\label\[.\{-}\]'
+ \ nextgroup=texCRefZone skipwhite skipnl
+ \ contains=texCRefLabelOpts
+
+ syntax region texCRefZone contained matchgroup=Delimiter
+ \ start="{" end="}"
+ \ contains=@texRefGroup,texRefZone
+ syntax region texCRefZoneRange contained matchgroup=Delimiter
+ \ start="{" end="}"
+ \ contains=@texRefGroup,texRefZone
+ \ nextgroup=texCRefZone skipwhite skipnl
+ syntax region texCRefLabelOpts contained matchgroup=Delimiter
+ \ start='\[' end=']'
+ \ contains=@texRefGroup,texRefZone
+
+ highlight link texCRefZone texRefZone
+ highlight link texCRefZoneRange texRefZone
+ highlight link texCRefLabelOpts texCmdArgs
+endfunction
+
+" }}}1
+
+endif