@@ -25,7 +25,7 @@ syn case match
25
25
syn include @odocSyntaxOCaml syntax/ocaml.vim
26
26
unlet b: current_syntax
27
27
28
- syn cluster odocInline contains =odocBold,odocItalic,odocEmphasis,odocMiscInline,odocList,odocLinkText,odocUrl,odocBraceError ,odocCode,odocCrossref, odocCodeBlock,odocVerbatim,odocTargetSpecific,odocTag
28
+ syn cluster odocInline contains =odocBold,odocItalic,odocEmphasis,odocMiscInline,odocList,odocLinkText,odocUrl,odocCrossref ,odocCode,odocCodeBlock,odocVerbatim,odocTargetSpecific,odocTag,odocEscaped,odocEscapedError,odocBraceError,odocTagError
29
29
30
30
syn match odocBraceError " [{}]"
31
31
@@ -57,33 +57,45 @@ syn region odocTable matchgroup=odocMarker start="{t\>" end="}" contains=@Spell,
57
57
syn region odocTable matchgroup =odocMarker start =" {table\> " end =" }" contains =odocTableRow
58
58
syn region odocTableRow matchgroup =odocMarker start =" {tr\> " end =" }" contains =odocTableEntry
59
59
syn region odocTableEntry matchgroup =odocMarker start =" {t[dh]\> " end =" }" contains =@Spell,@odocInline
60
- syn region odocCode matchgroup =odocMarker start =" \[ " end =" \] "
60
+ syn match odocEscapedBracket contained " \\ [][]"
61
+ syn region odocBalancedBracket contained start =" \[ " end =" ]"
62
+ syn region odocCode matchgroup =odocMarker start =" \[ " end =" \] " contains =odocBalancedBracket,odocEscapedBracket
61
63
syn region odocCodeBlock matchgroup =odocMarker start =" {@[^\[ ]\+\[ " end =" \] }"
62
64
syn region odocCodeBlock matchgroup =odocMarker start =" {\% (@ocaml\% (\s [^\[ ]*\)\?\)\?\[ " end =" \] }" contains =@odocSyntaxOCaml
63
65
syn match odocListMarker " ^\s *[-+]\s "
64
66
syn region odocListItem contained matchgroup =odocListMarker start =" {\% (-\| li\>\) " end =" }" contains =@Spell,@odocInline
65
67
syn region odocList matchgroup =odocListMarker start =" {[ou]l\> " end =" }" contains =odocListItem
66
68
" a bit leniant with ":"
67
69
syn match odocCrossrefKw contained " \<\% (module\% (-type\)\?\| class\% (-type\)\?\| val\| type\| exception\| method\| constructor\| extension\| field\| instance-variable\| section\| page\) [-:]"
68
- syn region odocCrossref start =" {!" end =" }" contains =odocCrossrefKw
69
- syn match odocTag " @\% (author\| deprecated\| param\| raise\| return\| see\| since\| before\| version\) "
70
+ syn region odocCrossref matchgroup =odocCrossrefMarker start =" {!" end =" }" contains =odocCrossrefKw
71
+ syn match odocTagError " @[a-zA-Z]*"
72
+ syn match odocTag " @\% (author\| deprecated\| param\| raise\| return\| see\| since\| before\| version\)\> "
73
+
74
+ syn match odocEscapedError " \\ ."
75
+ syn match odocEscaped " \\ [][{}@\\ ]"
70
76
71
77
" Shamelessly borrowed from HTML syntax
72
78
hi def odocBold term = bold cterm= bold gui = bold
73
79
hi def odocEmphasis term = underline cterm= underline gui = underline
74
80
hi def odocItalic term = italic cterm= italic gui = italic
75
81
76
- hi def link odocCrossref Float
82
+ hi def link odocUrlMarker odocMarker
83
+ hi def link odocUrl Underlined
84
+ hi def link odocCrossrefMarker odocCrossref " or odocMarker
85
+ hi def link odocCrossref Label
77
86
hi def link odocCrossrefKw Keyword
78
87
hi def link odocHeading Title
79
88
hi def link odocHeadingLabel Label
80
89
hi def link odocListMarker Operator
81
90
hi def link odocMarker Delimiter
82
91
hi def link odocTag Keyword
92
+
83
93
hi def link odocBraceError Error
84
- hi def link odocUrlMarker odocMarker
85
- hi def link odocUrl Underlined
86
94
hi def link odocUnknownTarget Error
95
+ hi def link odocTagError Error
96
+ hi def link odocEscapedError Error
97
+ hi def link odocEscaped SpecialChar
98
+ hi def link odocEscapedBracket odocEscaped
87
99
88
100
let b: current_syntax = " odoc"
89
101
0 commit comments