summaryrefslogtreecommitdiffstats
path: root/autoload/vimtex/syntax/p/tabularx.vim
blob: 0ff623c2cd43df5c69fcd0412776f243e1e0cfce (plain) (blame)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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#tabularx#load() abort " {{{1
  if has_key(b:vimtex_syntax, 'tabularx') | return | endif
  let b:vimtex_syntax.tabularx = 1

  call vimtex#syntax#misc#add_to_section_clusters('texTabular')

  syntax match texTabular '\\begin{tabular}\_[^{]\{-}\ze{'
        \ contains=texBeginEnd
        \ nextgroup=texTabularArg
        \ contained
  syntax region texTabularArg matchgroup=Delimiter
        \ start='{' end='}'
        \ contained

  syntax match texTabularCol /[lcr]/
        \ containedin=texTabularArg
        \ contained
  syntax match texTabularCol /[pmb]/
        \ containedin=texTabularArg
        \ nextgroup=texTabularLength
        \ contained
  syntax match texTabularCol /\*/
        \ containedin=texTabularArg
        \ nextgroup=texTabularMulti
        \ contained
  syntax region texTabularMulti matchgroup=Delimiter
        \ start='{' end='}'
        \ containedin=texTabularArg
        \ nextgroup=texTabularArg
        \ contained

  syntax match texTabularAtSep /@/
        \ containedin=texTabularArg
        \ nextgroup=texTabularLength
        \ contained
  syntax match texTabularVertline /||\?/
        \ containedin=texTabularArg
        \ contained
  syntax match texTabularPostPre /[<>]/
        \ containedin=texTabularArg
        \ nextgroup=texTabularPostPreArg
        \ contained

  syntax region texTabularPostPreArg matchgroup=Delimiter
        \ start='{' end='}'
        \ containedin=texTabularArg
        \ contains=texLength,texStatement,texMathDelimSingle
        \ contained

  syntax region texTabularLength matchgroup=Delimiter
        \ start='{' end='}'
        \ containedin=texTabularArg
        \ contains=texLength,texStatement
        \ contained

  syntax match texMathDelimSingle /\$\$\?/
        \ containedin=texTabularPostPreArg
        \ contained

  highlight def link texTabularCol        Directory
  highlight def link texTabularAtSep      Type
  highlight def link texTabularVertline   Type
  highlight def link texTabularPostPre    Type
  highlight def link texMathDelimSingle   Delimiter
endfunction

" }}}1

endif