@@ -23,15 +23,23 @@ syn case match
23
23
syn include @odocSyntaxOCaml syntax/ocaml.vim
24
24
unlet b: current_syntax
25
25
26
- syn cluster odocInline contains =odocBold,odocItalic,odocEmphasis,odocMiscInline,odocList,odocLink,odocCode,odocCrossref,odocCodeBlock,odocVerbatim,odocTargetSpecific,odocTag
26
+ syn spell toplevel
27
+
28
+ syn cluster odocInline contains =odocBold,odocItalic,odocEmphasis,odocMiscInline,odocList,odocLinkText,odocUrl,odocCrossref,odocCode,odocCodeBlock,odocVerbatim,odocTargetSpecific,odocTag,odocEscaped,odocEscapedError,odocBraceError,odocTagError
29
+
30
+ syn match odocBraceError " [{}]"
31
+
32
+ syn region odocLinkText transparent matchgroup =odocMarker start =" {\% ({[!:]\)\@ =" end =" }" contains =odocUrl,odocCrossref,@Spell,@odocInline
33
+ syn region odocUrl matchgroup =odocUrlMarker start =" {:\_ s*" end =" \_ s*}"
27
34
28
- syn region odocLink matchgroup =odocLinkMarker start =" {" end =" }" contains =odocCrossref
29
35
syn region odocBold matchgroup =odocMarker start =" {b\> " end =" }" contains =@Spell,@odocInline
30
36
syn region odocEmphasis matchgroup =odocMarker start =" {e\> " end =" }" contains =@Spell,@odocInline
31
37
syn region odocItalic matchgroup =odocMarker start =" {i\> " end =" }" contains =@Spell,@odocInline
32
38
syn region odocMiscInline matchgroup =odocMarker start =" {[CLR^_]" end =" }" contains =@Spell,@odocInline
33
39
syn region odocVerbatim matchgroup =odocMarker start =" {v\> " end =" \< v}"
34
40
41
+ syn region odocTargetSpecific matchgroup =odocUnknownTarget start =" {%.\{ -}:\| {%" end =" %}"
42
+
35
43
if get (g: ,' odoc_html_support' ,0 )
36
44
syn include @odocHtml syntax/html.vim
37
45
unlet b: current_syntax
40
48
syn region odocTargetSpecific matchgroup =odocMarker start =" {%html:" end =" %}" contains =@Spell
41
49
endif
42
50
43
- syn region odocDyckWord contained start =" {" end =" }" contains =odocDyckWord
51
+ syn region odocDyckWord contained transparent start =" {" end =" }" contains =odocDyckWord
44
52
syn region odocTargetSpecific matchgroup =odocMarker start =" {m\% (ath\)\?\> " end =" }" contains =odocDyckWord
45
53
syn region odocTargetSpecific matchgroup =odocMarker start =" {%\% (latex\| texi\| man\) :" end =" %}" contains =@Spell
46
- syn region odocHeading start =" {[0-5]" end =" }" contains =@Spell
47
- syn region odocTable matchgroup =odocMarker start =" {t\> " end =" }" contains =@Spell,@odocInline
48
- syn region odocTable matchgroup =odocMarker start =" {table\> " end =" }" contains =odocTableRow
49
- syn region odocTableRow matchgroup =odocMarker start =" {tr\> " end =" }" contains =odocTableEntry
50
- syn region odocTableEntry matchgroup =odocMarker start =" {t[dh]\> " end =" }" contains =@Spell,@odocInline
51
- syn region odocCode matchgroup =odocMarker start =" \[ " end =" \] "
54
+ syn region odocHeading start =" {[0-5]\% (\s\| $\| :\)\@ =" end =" }" contains =@Spell,odocHeadingLabel
55
+ syn match odocHeadingLabel contained " \% ({[0-5]\)\@ <=:[^ \t :]*"
56
+ syn region odocTable transparent matchgroup =odocMarker start =" {t\> " end =" }" contains =@Spell,@odocInline
57
+ syn region odocTable transparent matchgroup =odocMarker start =" {table\> " end =" }" contains =odocTableRow
58
+ syn region odocTableRow transparent matchgroup =odocMarker start =" {tr\> " end =" }" contains =odocTableEntry
59
+ syn region odocTableEntry transparent matchgroup =odocMarker start =" {t[dh]\> " end =" }" contains =@Spell,@odocInline
60
+ syn match odocEscapedBracket contained " \\ [][]"
61
+ syn region odocBalancedBracket contained transparent start =" \[ " end =" ]"
62
+ syn region odocCode matchgroup =odocMarker start =" \[ " end =" \] " contains =odocBalancedBracket,odocEscapedBracket
52
63
syn region odocCodeBlock matchgroup =odocMarker start =" {@[^\[ ]\+\[ " end =" \] }"
53
64
syn region odocCodeBlock matchgroup =odocMarker start =" {\% (@ocaml\% (\s [^\[ ]*\)\?\)\?\[ " end =" \] }" contains =@odocSyntaxOCaml
54
65
syn match odocListMarker " ^\s *[-+]\s "
55
- syn region odocListItem contained matchgroup =odocListMarker start =" {\% (-\| li\>\) " end =" }" contains =@Spell,@odocInline
56
- syn region odocList matchgroup =odocListMarker start =" {[ou]l\> " end =" }" contains =odocListItem
66
+ syn region odocListItem contained transparent matchgroup =odocListMarker start =" {\% (-\| li\>\) " end =" }" contains =@Spell,@odocInline
67
+ syn region odocList transparent matchgroup =odocListMarker start =" {[ou]l\> " end =" }" contains =odocListItem
57
68
" a bit leniant with ":"
58
69
syn match odocCrossrefKw contained " \<\% (module\% (-type\)\?\| class\% (-type\)\?\| val\| type\| exception\| method\| constructor\| extension\| field\| instance-variable\| section\| page\) [-:]"
59
- syn region odocCrossref start =" {!" end =" }" contains =odocCrossrefKw
60
- 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 " \\ [][{}@\\ ]"
61
76
62
77
" Shamelessly borrowed from HTML syntax
63
78
hi def odocBold term = bold cterm= bold gui = bold
64
79
hi def odocEmphasis term = bold ,underline cterm= bold ,underline gui = bold ,underline
65
80
hi def odocItalic term = italic cterm= italic gui = italic
66
81
67
- hi def link odocCrossref Float
82
+ hi def link odocBraceError Error
83
+ hi def link odocUnknownTarget Error
84
+ hi def link odocTagError Error
85
+ hi def link odocEscapedError Error
86
+ hi def link odocEscaped SpecialChar
87
+ hi def link odocEscapedBracket odocEscaped
88
+ hi def link odocCrossref Label
68
89
hi def link odocCrossrefKw Keyword
69
90
hi def link odocHeading Title
70
- hi def link odocLink Underlined
91
+ hi def link odocHeadingLabel Label
92
+ hi def link odocUrl Underlined
93
+ hi def link odocUrlMarker odocMarker
94
+ hi def link odocCrossrefMarker odocCrossref " or odocMarker
71
95
hi def link odocListMarker Operator
72
96
hi def link odocMarker Delimiter
73
97
hi def link odocTag Keyword
0 commit comments