Update runtime files
[MacVim.git] / runtime / syntax / sisu.vim
blobc7cdf2df1d7e167eb6b0bf13020d62067e009b12
1 "SiSU Vim syntax file
2 "SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
3 "SiSU Markup:     SiSU (sisu-0.69.0, 2008-09-16)
4 "(originally looked at Ruby Vim by Mirko Nasato)
6 if version < 600
7   syntax clear
8 elseif exists("b:current_syntax")
9   finish
10 else
11 endif
13 " Errors:
14 syn match sisu_error contains=sisu_link,sisu_error_wspace "<![^ei]\S\+!>"
16 " Markers Identifiers:
17 if !exists("sisu_no_identifiers")
18   syn match   sisu_mark_endnote                                           "\~^"
19   syn match   sisu_contain             contains=@NoSpell                  "</\?sub>"
20   syn match   sisu_break               contains=@NoSpell                  "<br>\|<br />"
21   syn match   sisu_control             contains=@NoSpell                  "<p>\|</p>\|<p />\|<:p[bn]>"
22   syn match   sisu_html                                                   "<center>\|</center>"
23   syn match   sisu_marktail                                               "[~-]#"
24   syn match   sisu_html                contains=@NoSpell                  "<td>\|<td \|<tr>\|</td>\|</tr>\|<table>\|<table \|</table>"
25   syn match   sisu_control                                                "\""
26   syn match   sisu_underline                                              "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"
27   syn match   sisu_number              contains=@NoSpell                  "[0-9a-f]\{32\}\|[0-9a-f]\{64\}"
28   syn match   sisu_link                contains=@NoSpell                  "\(_\?https\?://\|\.\.\/\)\S\+"
29   "metaverse specific
30   syn match   sisu_ocn                 contains=@NoSpell                  "<\~\d\+;\w\d\+;\w\d\+>"
31   syn match   sisu_marktail                                               "<\~#>"
32   syn match   sisu_markpara            contains=@NoSpell                  "<:i[1-9]>"
33   syn match   sisu_link                                                   " \*\~\S\+"
34   syn match   sisu_action                                                 "^<:insert\d\+>"
35   syn match   sisu_require             contains=@NoSpell                  "^<<\s*[a-zA-Z0-9^._-]\+\.ss[it]$"
36   syn match   sisu_require             contains=@NoSpell                  "^<<{[a-zA-Z0-9^._-]\+\.ss[it]}$"
37   syn match   sisu_contain                                                "<:e>"
38   syn match   sisu_sem_marker                                             ";{\|};[a-z._]*[a-z]"
39   syn match   sisu_sem_marker_block                                       "\([a-z][a-z._]*\|\):{\|}:[a-z._]*[a-z]"
40   syn match   sisu_sem_ex_marker                                          ";\[\|\];[a-z._]*[a-z]"
41   syn match   sisu_sem_ex_marker_block                                    "\([a-z][a-z._]*\|\):\[\|\]:[a-z._]*[a-z]"
42   syn match   sisu_sem_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):{[^}].\{-}}:\1"
43   syn match   sisu_sem_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";{[^}].\{-}};[a-z]\+"
44   syn match   sisu_sem_ex_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):\[[^}].\{-}\]:\1"
45   syn match   sisu_sem_ex_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";\[[^}].\{-}\];[a-z]\+"
46 endif
48 "URLs Numbers And ASCII Codes:
49 syn match   sisu_number                              "\<\(0x\x\+\|0b[01]\+\|0\o\+\|0\.\d\+\|0\|[1-9][\.0-9_]*\)\>"
50 syn match   sisu_number                              "?\(\\M-\\C-\|\\c\|\\C-\|\\M-\)\=\(\\\o\{3}\|\\x\x\{2}\|\\\=\w\)"
52 "Tuned Error: (is error if not already matched)
53 syn match sisu_error             contains=sisu_error "[\~/\*!_]{\|}[\~/\*!_]"
54 syn match sisu_error             contains=sisu_error "<a href\|</a>]"
56 "Simple Paired Enclosed Markup:
57 "url/link
58 syn region sisu_link contains=sisu_error,sisu_error_wspace matchgroup=sisu_action start="^<<\s*|[a-zA-Z0-9^._-]\+|@|[a-zA-Z0-9^._-]\+|"rs=s+2 end="$"
59 "header
60 syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^0\~\(\S\+\|[^-]\)" end="\n$"
61 syn region sisu_header_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break matchgroup=sisu_header start="^[@%]\S\+:[+-]\?\s"rs=e-1 end="\n$"
62 "headings
63 syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_ocn,sisu_error,sisu_error_wspace matchgroup=sisu_structure start="^\([1-8]\|:\?[A-C]\)\~\(\S\+\|[^-]\)" end="$"
64 "grouped text
65 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^table{.\+" end="}table"
66 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^{\(t\|table\)\(\~h\)\?\(\sc[0-9]\+;\)\?[0-9; ]*}" end="\n\n"
67 syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\(alt\|group\|poem\){" end="^}\(alt\|group\|poem\)"
68 syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="^code{" end="^}code"
69 "endnotes
70 syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n"
71 syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n"
72 syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n\n"
73 "links and images
74 syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|\.\./\)\S\+" oneline
75 syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="\[[1-5][sS]*\]}\S\+\.ss[tm]" oneline
76 syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}image" oneline
77 "some line operations
78 syn region sisu_control contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace matchgroup=sisu_control start="\(\(^\| \)!_ \|<:b>\)" end="$"
79 syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\) " end="$"
80 syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^\(#[ 1]\|_# \)" end="$"
81 syn region sisu_comment matchgroup=sisu_comment start="^%\{1,2\} " end="$"
82 "font face curly brackets
83 "syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline
84 syn region sisu_index matchgroup=sisu_index_block start="^={" end="}"
85 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
86 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
87 syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
88 syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="/{" end="}/"
89 syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="+{" end="}+"
90 syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\^{" end="}\^"
91 syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start=",{" end="},"
92 syn region sisu_strikeout contains=sisu_error matchgroup=sisu_fontface start="-{" end="}-"
93 syn region sisu_html contains=sisu_error contains=sisu_strikeout matchgroup=sisu_contain start="<a href=\".\{-}\">" end="</a>" oneline
94 "single words bold italicise etc. "workon
95 syn region sisu_control contains=sisu_error matchgroup=sisu_control start="\([ (]\|^\)\*[^\|{\n\~\\]"hs=e-1 end="\*"he=e-0 skip="[a-zA-Z0-9']" oneline
96 syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="\([ ]\|^\)/[^{ \|\n\\]"hs=e-1 end="/\[ \.\]" skip="[a-zA-Z0-9']" oneline
97 "misc
98 syn region sisu_identifier contains=sisu_error matchgroup=sisu_fontface start="\^[^ {\|\n\\]"rs=s+1 end="\^[ ,.;:'})\\\n]" skip="[a-zA-Z0-9']" oneline
99 "metaverse html (flagged as errors for filetype sisu)
100 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<b>" end="</b>" skip="\n" oneline
101 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<em>" end="</em>" skip="\n" oneline
102 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<i>" end="</i>" skip="\n" oneline
103 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<u>" end="</u>" skip="\n" oneline
104 syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_mark matchgroup=sisu_html start="<ins>" end="</ins>" skip="\\\\\|\\'" oneline
105 syn region sisu_identifier contains=sisu_error matchgroup=sisu_html start="<del>" end="</del>" oneline
106 "metaverse
107 syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="<:Table.\{-}>" end="<:Table[-_]end>"
108 syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="<:code>" end="<:code[-_]end>"
109 syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="<:alt>" end="<:alt[-_]end>"
110 syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="<:poem>" end="<:poem[-_]end>"
112 "Expensive Mode:
113 if !exists("sisu_no_expensive")
114 else " not Expensive
115   syn region  sisu_content_alt  matchgroup=sisu_control start="^\s*def\s" matchgroup=NONE end="[?!]\|\>" skip="\.\|\(::\)" oneline
116 endif " Expensive?
118 "Headers And Headings: (Document Instructions)
119 syn match sisu_control contains=sisu_error,sisu_error_wspace "4\~! \S\+"
120 syn region  sisu_markpara contains=sisu_error,sisu_error_wspace start="^=begin" end="^=end.*$"
122 "Errors:
123 syn match sisu_error_wspace contains=sisu_error_wspace "^\s\+"
124 syn match sisu_error_wspace contains=sisu_error_wspace "\s\s\+"
125 syn match sisu_error_wspace contains=sisu_error_wspace  " \s*$"
126 syn match sisu_error contains=sisu_error_wspace "\t\+"
127 syn match sisu_error contains=sisu_error,sisu_error_wspace "\([^ (][_\\]\||[^ (}]\)https\?:\S\+"
128 syn match sisu_error contains=sisu_error "_\?https\?:\S\+[}><]"
129 syn match sisu_error contains=sisu_error "\([!*/_\+,^]\){\([^(\}\1)]\)\{-}\n\n"
130 syn match sisu_error contains=sisu_error "^[\~]{[^{]\{-}\n\n"
131 syn match sisu_error contains=sisu_error "\s\+.{{"
132 syn match sisu_error contains=sisu_error "^\~\s*$"
133 syn match sisu_error contains=sisu_error "^[0-9]\~\s*$"
134 syn match sisu_error contains=sisu_error "^[0-9]\~\S\+\s*$"
135 syn match sisu_error contains=sisu_error "[^{]\~\^[^ \)]"
136 syn match sisu_error contains=sisu_error "\~\^\s\+\.\s*"
137 syn match sisu_error contains=sisu_error "{\~^\S\+"
138 syn match sisu_error contains=sisu_error "[_/\*!^]{[ .,:;?><]*}[_/\*!^]"
139 syn match sisu_error contains=sisu_error "[^ (\"'(\[][_/\*!]{\|}[_/\*!][a-zA-Z0-9)\]\"']"
140 syn match sisu_error contains=sisu_error "<dir>"
141 "errors for filetype sisu, though not error in 'metaverse':
142 syn match sisu_error contains=sisu_error,sisu_match,sisu_strikeout,sisu_contain,sisu_content_alt,sisu_mark,sisu_break,sisu_number "<[a-zA-Z\/]\+>"
143 syn match sisu_error  "/\?<\([biu]\)>[^(</\1>)]\{-}\n\n"
145 "Error Exceptions:
146 syn match sisu_control "\n\n" "contains=ALL
147 syn match sisu_control " //"
148 syn match sisu_error  "%{"
149 syn match sisu_error "<br>_\?https\?:\S\+\|_\?https\?:\S\+<br>"
150 syn match sisu_error "[><]_\?https\?:\S\+\|_\?https\?:\S\+[><]"
152 "Definitions Default Highlighting:
153 hi def link sisu_normal           Normal
154 hi def link sisu_header           PreProc
155 hi def link sisu_header_content   Statement
156 hi def link sisu_heading          Title
157 hi def link sisu_structure        Operator
158 hi def link sisu_contain          Include
159 hi def link sisu_mark_endnote     Include
160 hi def link sisu_require          NonText
161 hi def link sisu_link             NonText
162 hi def link sisu_linked           String
163 hi def link sisu_fontface         Include
164 hi def link sisu_strikeout        DiffDelete
165 hi def link sisu_content_alt      Special
166 hi def link sisu_sem_content      SpecialKey
167 hi def link sisu_sem_block        Special
168 hi def link sisu_sem_marker       Visual
169 "hi def link sisu_sem_marker       Structure
170 hi def link sisu_sem_marker_block MatchParen
171 hi def link sisu_sem_ex_marker    FoldColumn
172 hi def link sisu_sem_ex_marker_block Folded
173 hi def link sisu_sem_ex_content   Comment
174 "hi def link sisu_sem_ex_content   SpecialKey
175 hi def link sisu_sem_ex_block     Comment
176 hi def link sisu_index            SpecialKey
177 hi def link sisu_index_block      Visual
178 hi def link sisu_content_endnote  Special
179 hi def link sisu_control          Define
180 hi def link sisu_ocn              Include
181 hi def link sisu_number           Number
182 hi def link sisu_identifier       Function
183 hi def link sisu_underline        Underlined
184 hi def link sisu_markpara         Include
185 hi def link sisu_marktail         Include
186 hi def link sisu_mark             Identifier
187 hi def link sisu_break            Structure
188 hi def link sisu_html             Type
189 hi def link sisu_action           Identifier
190 hi def link sisu_comment          Comment
191 hi def link sisu_error_sem_marker Error
192 hi def link sisu_error_wspace     Error
193 hi def link sisu_error            Error
194 let b:current_syntax = "sisu"