Peter Kenny | 14dec7b | 2025-03-26 19:52:50 +0100 | [diff] [blame] | 1 | vim9script |
| 2 | # Vim syntax file |
| 3 | # Language: OmniMark |
| 4 | # Maintainer: Peter Kenny <kennypete.t2o3y@aleeas.com> |
| 5 | # Previous Maintainer: Paul Terray <mailto:terray@4dconcept.fr> |
| 6 | # Last Change: 2025-03-23 |
| 7 | # License: Vim (see :help license) |
| 8 | # History: 2000-10-11 Vintage minimal syntax file (Paul Terray) |
| 9 | # |
| 10 | # - Syntax is grouped, generally, by type (action to rule), using the |
| 11 | # version 12 headings. Refer: |
| 12 | # https://developers.stilo.com/docs/html/keyword/type.html |
| 13 | # - Deprecated/legacy syntax back to version 4 is included. |
| 14 | # - OmniMark is largely case insensitive, with handled exceptions (e.g., %g) |
| 15 | # ---------------------------------------------------------------------------- |
| 16 | syntax case ignore |
| 17 | # Current syntax exists: finish {{{ |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 18 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 19 | finish |
| 20 | endif |
Peter Kenny | 14dec7b | 2025-03-26 19:52:50 +0100 | [diff] [blame] | 21 | # }}} |
| 22 | # Keyword characters {{{ |
| 23 | # !#%&*+-/0123456789<=>@ |
| 24 | # ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| 25 | # \_abcdefghijklmnopqrstuvwxyz|~ |
| 26 | setlocal iskeyword=33,35,37-38,42-43,45,47-57,60-62,64-90,92,95,97-122,124,126 |
| 27 | # }}} |
| 28 | # _ action {{{ |
| 29 | syntax keyword omnimarkAction activate |
| 30 | syntax keyword omnimarkAction assert |
| 31 | syntax keyword omnimarkAction clear |
| 32 | syntax keyword omnimarkAction close |
| 33 | syntax keyword omnimarkAction collect-garbage |
| 34 | syntax match omnimarkAction "\v\c<%(copy)%(-clear)?" |
| 35 | syntax keyword omnimarkAction deactivate |
| 36 | syntax keyword omnimarkAction decrement |
| 37 | syntax keyword omnimarkAction discard |
| 38 | syntax keyword omnimarkAction flush |
| 39 | syntax match omnimarkAction "\v\c<%(halt)%(-everything)?" |
| 40 | syntax keyword omnimarkAction increment |
| 41 | syntax keyword omnimarkAction log |
| 42 | syntax keyword omnimarkAction log-message |
| 43 | syntax keyword omnimarkAction match |
| 44 | syntax keyword omnimarkAction new |
| 45 | # new takes before and after (as in new x{"wilma"} after [2]) |
| 46 | syntax keyword omnimarkAction after |
| 47 | syntax keyword omnimarkAction before |
| 48 | # This is the only way 'next' is used (and it cannot be 'isnt'): |
| 49 | syntax match omnimarkAction "\v\c<%(next\s+group\s+is)" |
| 50 | syntax keyword omnimarkAction not-reached |
| 51 | syntax keyword omnimarkAction open |
| 52 | syntax match omnimarkAction "\v\c<%(output)%(-to)?" |
| 53 | syntax keyword omnimarkAction put |
| 54 | # When alone, 'referent' is nearly always 'put...referent,' which is an action |
| 55 | syntax keyword omnimarkAction referent |
| 56 | syntax match omnimarkAction "\v\c<%(remove)%(\s+key\s+of)?" |
| 57 | syntax keyword omnimarkAction reopen |
| 58 | syntax keyword omnimarkAction reset |
| 59 | syntax keyword omnimarkAction return |
| 60 | # 'scan' because it can start a line in a block of 'do *-parse ... done' |
| 61 | syntax keyword omnimarkAction scan |
| 62 | syntax match omnimarkAction "\v\c<%(set)%(\s+%(buffer|creator\s+of|external-function|file|function-library|key\s+of|new|referent|stream))?" |
| 63 | syntax keyword omnimarkAction sgml-in |
| 64 | syntax keyword omnimarkAction sgml-out |
| 65 | syntax keyword omnimarkAction signal |
| 66 | syntax keyword omnimarkAction submit |
| 67 | syntax keyword omnimarkAction suppress |
| 68 | syntax keyword omnimarkAction throw |
| 69 | syntax keyword omnimarkAction void |
| 70 | # }}} |
| 71 | # _ built-in data type {{{ |
| 72 | # attribute-declaration: Every attribute-declaration instance has two |
| 73 | # properties: attribute-default-declaration and |
| 74 | # attribute-value-declaration |
| 75 | # attribute-default-declaration: is the abstract type of declared defaults for |
| 76 | # unspecified attribute values. Its concrete |
| 77 | # instances can be obtained with the following |
| 78 | # four constants: |
| 79 | syntax keyword omnimarkConstant attribute-declared-conref |
| 80 | syntax keyword omnimarkConstant attribute-declared-current |
| 81 | syntax keyword omnimarkConstant attribute-declared-implied |
| 82 | syntax keyword omnimarkConstant attribute-declared-required |
| 83 | # and with two operators which take a string |
| 84 | # default value argument: |
| 85 | syntax match omnimarkOperator "\v\c<%(attribute-declared-defaulted\s+to)" |
| 86 | syntax match omnimarkOperator "\v\c<%(attribute-declared-fixed to)" |
| 87 | # attribute-value-declaration: is the abstract type of values that an |
| 88 | # attribute is declared to accept. Its concrete |
| 89 | # instances can be obtained with the following |
| 90 | # constants: |
| 91 | syntax match omnimarkConstant "\v\c<%(attribute-declared-fixed to)" |
| 92 | syntax keyword omnimarkConstant attribute-declared-id |
| 93 | syntax keyword omnimarkConstant attribute-declared-idref |
| 94 | syntax keyword omnimarkConstant attribute-declared-idrefs |
| 95 | syntax keyword omnimarkConstant attribute-declared-name |
| 96 | syntax keyword omnimarkConstant attribute-declared-names |
| 97 | syntax keyword omnimarkConstant attribute-declared-nmtoken |
| 98 | syntax keyword omnimarkConstant attribute-declared-nmtokens |
| 99 | syntax keyword omnimarkConstant attribute-declared-number |
| 100 | syntax keyword omnimarkConstant attribute-declared-numbers |
| 101 | syntax keyword omnimarkConstant attribute-declared-nutoken |
| 102 | syntax keyword omnimarkConstant attribute-declared-nutokens |
| 103 | # and with one operator that takes a string shelf |
| 104 | # argument listing all the values allowed for the |
| 105 | # attribute: |
| 106 | syntax keyword omnimarkOperator attribute-declared-group |
| 107 | # content-model - the following six constants are the only possible values: |
| 108 | syntax keyword omnimarkConstant any-content-model |
| 109 | syntax keyword omnimarkConstant cdata-content-model |
| 110 | syntax keyword omnimarkConstant element-content-model |
| 111 | syntax keyword omnimarkConstant empty-content-model |
| 112 | syntax keyword omnimarkConstant mixed-content-model |
| 113 | syntax keyword omnimarkConstant rcdata-content-model |
| 114 | # refer also: |
| 115 | # developers.stilo.com/docs/html/keyword/create-element-declaration.html |
| 116 | # |
| 117 | # declared-attribute is and abstract type with subtypes: |
| 118 | # implied-attribute |
| 119 | # specified-attribute |
| 120 | # dtd abstract data type has subtypes: |
| 121 | # sgml-dtd |
| 122 | # xml-dtd |
| 123 | # element-declaration |
| 124 | # entity-declaration |
| 125 | # markup-element-event |
| 126 | # markup-event has subtypes: |
| 127 | # markup-point-event |
| 128 | # markup-region-event |
| 129 | # }}} |
| 130 | # _ built-in entity {{{ |
| 131 | syntax match omnimarkBuiltinEntity "\v\c<%(#capacity)" |
| 132 | syntax match omnimarkBuiltinEntity "\v\c<%(#charset)" |
| 133 | syntax match omnimarkBuiltinEntity "\v\c<%(#document)" |
| 134 | syntax match omnimarkBuiltinEntity "\v\c<%(#dtd)" |
| 135 | syntax match omnimarkBuiltinEntity "\v\c<%(#implied)" |
| 136 | syntax match omnimarkBuiltinEntity "\v\c<%(#schema)" |
| 137 | syntax match omnimarkBuiltinEntity "\v\c<%(#syntax)" |
| 138 | # }}} |
| 139 | # _ built-in shelf {{{ |
| 140 | syntax match omnimarkBuiltinShelf "\v\c<%(#additional-info)" |
| 141 | syntax match omnimarkBuiltinShelf "\v\c<%(#appinfo)" |
| 142 | syntax match omnimarkBuiltinShelf "\v\c<%(#args)" |
| 143 | syntax match omnimarkBuiltinShelf "\v\c<%(#class)" |
| 144 | syntax match omnimarkBuiltinShelf "\v\c<%(#command-line-names)" |
| 145 | syntax match omnimarkBuiltinShelf "\v\c<%(#console)" |
| 146 | syntax match omnimarkBuiltinShelf "\v\c<%(#content)" |
| 147 | syntax match omnimarkBuiltinShelf "\v\c<%(#current-dtd)" |
| 148 | syntax match omnimarkBuiltinShelf "\v\c<%(#current-input)" |
| 149 | syntax match omnimarkBuiltinShelf "\v\c<%(#current-markup-event)" |
| 150 | syntax match omnimarkBuiltinShelf "\v\c<%(#current-output)" |
| 151 | syntax match omnimarkBuiltinShelf "\v\c<%(#doctype)" |
| 152 | syntax match omnimarkBuiltinShelf "\v\c<%(#error)" |
| 153 | syntax match omnimarkBuiltinShelf "\v\c<%(#error-code)" |
| 154 | syntax match omnimarkBuiltinShelf "\v\c<%(#file-name)" |
| 155 | syntax match omnimarkBuiltinShelf "\v\c<%(#language-version)" |
| 156 | syntax match omnimarkBuiltinShelf "\v\c<%(#libpath)" |
| 157 | syntax match omnimarkBuiltinShelf "\v\c<%(#library)" |
| 158 | syntax match omnimarkBuiltinShelf "\v\c<%(#libvalue)" |
| 159 | syntax match omnimarkBuiltinShelf "\v\c<%(#line-number)" |
| 160 | syntax match omnimarkBuiltinShelf "\v\c<%(#log)" |
| 161 | syntax match omnimarkBuiltinShelf "\v\c<%(#main-input)" |
| 162 | syntax match omnimarkBuiltinShelf "\v\c<%(#main-output)" |
| 163 | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-error-count)" |
| 164 | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-error-total)" |
| 165 | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-parser)" |
| 166 | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-warning-count)" |
| 167 | syntax match omnimarkBuiltinShelf "\v\c<%(#markup-warning-total)" |
| 168 | syntax match omnimarkBuiltinShelf "\v\c<%(#message)" |
| 169 | syntax match omnimarkBuiltinShelf "\v\c<%(#output)" |
| 170 | syntax match omnimarkBuiltinShelf "\v\c<%(#platform-info)" |
| 171 | syntax match omnimarkBuiltinShelf "\v\c<%(#process-input)" |
| 172 | syntax match omnimarkBuiltinShelf "\v\c<%(#process-output)" |
| 173 | syntax match omnimarkBuiltinShelf "\v\c<%(#recovery-info)" |
| 174 | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml)" |
| 175 | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-error-count)" |
| 176 | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-error-total)" |
| 177 | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-warning-count)" |
| 178 | syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-warning-total)" |
| 179 | syntax match omnimarkBuiltinShelf "\v\c<%(#suppress)" |
| 180 | syntax match omnimarkBuiltinShelf "\v\c<%(#xmlns-names)" |
| 181 | syntax keyword omnimarkBuiltinShelf attributes |
| 182 | syntax match omnimarkBuiltinShelf "\v\c<%(current)%(\s+%(element%(s)?|dtd|sgml-dtd))" |
| 183 | syntax keyword omnimarkBuiltinShelf data-attributes |
| 184 | syntax keyword omnimarkBuiltinShelf referents |
| 185 | syntax keyword omnimarkBuiltinShelf sgml-dtds |
| 186 | # deprecated synonym for sgml-dtds: |
| 187 | syntax keyword omnimarkBuiltinShelf dtds |
| 188 | syntax keyword omnimarkBuiltinShelf xml-dtds |
| 189 | syntax match omnimarkBuiltinShelf "\v\c<%(specified\s+attributes)" |
| 190 | # }}} |
| 191 | # _ catch name {{{ |
| 192 | syntax match omnimarkCatchName "\v\c<%(#external-exception)" |
| 193 | # external exception parameters |
| 194 | syntax keyword omnimarkCatchName identity |
| 195 | syntax keyword omnimarkCatchName message |
| 196 | syntax keyword omnimarkCatchName location |
| 197 | syntax match omnimarkCatchName "\v\c<%(#markup-end)" |
| 198 | syntax match omnimarkCatchName "\v\c<%(#markup-point)" |
| 199 | syntax match omnimarkCatchName "\v\c<%(#markup-start)" |
| 200 | syntax match omnimarkCatchName "\v\c<%(#program-error)" |
| 201 | # }}} |
| 202 | # _ constant {{{ |
| 203 | syntax keyword omnimarkConstant false |
| 204 | syntax keyword omnimarkConstant true |
| 205 | # Example: local stream u initial {unattached} |
| 206 | syntax keyword omnimarkConstant unattached |
| 207 | # }}} |
| 208 | # _ control structure {{{ |
| 209 | syntax match omnimarkControlStructure "\v\c<%(#first)" |
| 210 | syntax match omnimarkControlStructure "\v\c<%(#group)" |
| 211 | syntax match omnimarkControlStructure "\v\c<%(#item)" |
| 212 | syntax match omnimarkControlStructure "\v\c<%(#last)" |
| 213 | syntax match omnimarkControlStructure "\v%(\s)?%(-\>)%(\s)?" |
| 214 | syntax keyword omnimarkControlStructure again |
| 215 | syntax keyword omnimarkControlStructure always |
| 216 | syntax keyword omnimarkControlStructure as |
| 217 | syntax keyword omnimarkControlStructure case |
| 218 | syntax keyword omnimarkControlStructure catch |
| 219 | syntax match omnimarkControlStructure "\v\c<%(do)>%(%(\s|\n)+%((markup|sgml|xml)-parse|scan|select|select-type|skip%(\s+over)?|unless|when))?" |
| 220 | # with id-checking and with utf-8, example: |
| 221 | # do sgml-parse document with id-checking false scan file "my.sgml" |
| 222 | syntax keyword omnimarkControlStructure id-checking |
| 223 | syntax keyword omnimarkControlStructure utf-8 |
| 224 | syntax keyword omnimarkControlStructure with |
| 225 | syntax keyword omnimarkControlStructure done |
| 226 | syntax keyword omnimarkControlStructure else |
| 227 | syntax keyword omnimarkControlStructure exit |
| 228 | syntax match omnimarkControlStructure "\v\c<%(repeat)>%(\s+%(for|over%(\s+current elements)?|scan|to))?" |
| 229 | # Example: repeat over reversed |
| 230 | syntax keyword omnimarkControlStructure reversed |
| 231 | # Note: repeat over attribute(s) not needed - handled separately |
| 232 | # Note: repeat over data-attribute(s) not needed - handled separately |
| 233 | # Note: repeat over referents not needed - handled separately |
| 234 | syntax keyword omnimarkControlStructure rethrow |
| 235 | syntax keyword omnimarkControlStructure select |
| 236 | syntax keyword omnimarkControlStructure unless |
| 237 | syntax match omnimarkControlStructure "\v\c<%(using)%( %(%(data-)?attribute%(s)?|catch|group|input as|nested-referents|output\s+as|referents))?" |
| 238 | syntax keyword omnimarkControlStructure when |
| 239 | # }}} |
| 240 | # _ data type {{{ |
| 241 | # (not a v12 heading) |
| 242 | syntax keyword omnimarkDataType bcd |
| 243 | syntax keyword omnimarkDataType counter |
| 244 | # db.database data type - refer omdb, below, for library functions |
| 245 | syntax match omnimarkDataType "\v\c<%(db)%([.])?%(database)" |
| 246 | syntax keyword omnimarkDataType document |
| 247 | syntax keyword omnimarkDataType float |
| 248 | syntax keyword omnimarkDataType instance |
| 249 | syntax match omnimarkDataType "\v\c<%(int32)" |
| 250 | syntax keyword omnimarkDataType integer |
| 251 | syntax match omnimarkDataType "\v\c<%(markup\s+sink)" |
| 252 | syntax match omnimarkDataType "\v\c<%(markup\s+source)" |
| 253 | syntax keyword omnimarkDataType pattern |
| 254 | syntax keyword omnimarkDataType string |
| 255 | syntax match omnimarkDataType "\v\c<%(string\s+sink)" |
| 256 | syntax match omnimarkDataType "\v\c<%(string\s+source)" |
| 257 | syntax keyword omnimarkDataType stream |
| 258 | syntax keyword omnimarkDataType string |
| 259 | syntax keyword omnimarkDataType subdocument |
| 260 | syntax keyword omnimarkDataType switch |
| 261 | # }}} |
| 262 | # _ declaration/definition {{{ |
| 263 | syntax keyword omnimarkDeclaration constant |
| 264 | syntax keyword omnimarkDeclaration context-translate |
| 265 | syntax keyword omnimarkDeclaration created by |
| 266 | syntax keyword omnimarkDeclaration cross-translate |
| 267 | syntax keyword omnimarkDeclaration declare |
| 268 | syntax match omnimarkDeclaration "\v\c<%(declare)%(\s+%(data-letters|function-library|heralded-names|markup-identification))?" |
| 269 | # Note: declare #error, #main-input, #main-output, #process-input, |
| 270 | # #process-output, catch, data-letters, function-library, letters, |
| 271 | # name-letters, no-default-io, opaque, record |
| 272 | # - Those are all handed as separate keywords/matches |
| 273 | syntax match omnimarkDeclaration "\v\c<%(define\s+conversion-function)" |
| 274 | syntax match omnimarkDeclaration "\v\c<%(define\s+external)\s+%(source\s+)?%(function)" |
| 275 | # in function-library is part of an external function |
| 276 | syntax match omnimarkDeclaration "\v\c<%(in\s+function-library)" |
| 277 | syntax match omnimarkDeclaration "\v\c<%(define\s+external\s+output)" |
| 278 | syntax match omnimarkDeclaration "\v\c<%(define\s+function)" |
| 279 | syntax match omnimarkDeclaration "\v\c<%(define\s+\w+function)" |
| 280 | # Example: define integer function add (value integer x, value ...) |
| 281 | syntax keyword omnimarkDeclaration value |
| 282 | syntax match omnimarkDeclaration "\v\c<%(define\s+infix-function)" |
| 283 | syntax match omnimarkDeclaration "\v\c<%(define\s+overloaded\s+function)" |
| 284 | syntax match omnimarkDeclaration "\v\c<%(define\s+string\s+sink\s+function)" |
| 285 | syntax match omnimarkDeclaration "\v\c<%(define\s+string\s+source\s+function)" |
| 286 | # Some combinations are missed, so the general, 'define', is needed too: |
| 287 | syntax match omnimarkDeclaration "\v\c<%(define\s+)" |
| 288 | syntax keyword omnimarkDeclaration delimiter |
| 289 | syntax keyword omnimarkDeclaration domain-bound |
| 290 | syntax keyword omnimarkDeclaration down-translate |
| 291 | syntax keyword omnimarkDeclaration dynamic |
| 292 | syntax keyword omnimarkDeclaration elsewhere |
| 293 | syntax keyword omnimarkDeclaration escape |
| 294 | syntax match omnimarkDeclaration "\v\c<%(export\s+as\s+opaque)" |
| 295 | syntax keyword omnimarkDeclaration export |
| 296 | syntax keyword omnimarkDeclaration field |
| 297 | syntax keyword omnimarkDeclaration function |
| 298 | syntax keyword omnimarkDeclaration global |
| 299 | syntax match omnimarkDeclaration "\v\c<%(group)%(s)?" |
| 300 | syntax keyword omnimarkDeclaration import |
| 301 | syntax match omnimarkDeclaration "\v\c<%(include)%(-guard)?" |
| 302 | syntax match omnimarkDeclaration "\v\c<%(initial)%(-size)?" |
| 303 | syntax keyword omnimarkDeclaration letters |
| 304 | syntax keyword omnimarkDeclaration library |
| 305 | syntax keyword omnimarkDeclaration local |
| 306 | syntax match omnimarkDeclaration "\v\c<%(macro)%(-end)?" |
| 307 | # macros can take an arg and/or a token (or args or tokens) |
| 308 | syntax keyword omnimarkDeclaration arg |
| 309 | syntax keyword omnimarkDeclaration token |
| 310 | syntax keyword omnimarkDeclaration modifiable |
| 311 | syntax keyword omnimarkDeclaration module |
| 312 | syntax keyword omnimarkDeclaration name-letters |
| 313 | syntax match omnimarkDeclaration "\v\c<%(namecase\s+entity)" |
| 314 | syntax match omnimarkDeclaration "\v\c<%(namecase\s+general)" |
| 315 | syntax keyword omnimarkDeclaration newline |
| 316 | syntax keyword omnimarkDeclaration no-default-io |
| 317 | syntax keyword omnimarkDeclaration opaque |
| 318 | syntax keyword omnimarkDeclaration optional |
| 319 | syntax keyword omnimarkDeclaration overriding |
| 320 | syntax match omnimarkDeclaration "\v\c<%(prefixed\s+by)" |
| 321 | syntax keyword omnimarkDeclaration read-only |
| 322 | syntax keyword omnimarkDeclaration record |
| 323 | syntax keyword omnimarkDeclaration remainder |
| 324 | syntax keyword omnimarkDeclaration require |
| 325 | syntax keyword omnimarkDeclaration save |
| 326 | syntax keyword omnimarkDeclaration save-clear |
| 327 | syntax keyword omnimarkDeclaration silent-referent |
| 328 | syntax keyword omnimarkDeclaration size |
| 329 | syntax keyword omnimarkDeclaration supply |
| 330 | syntax keyword omnimarkDeclaration symbol |
| 331 | syntax keyword omnimarkDeclaration unprefixed |
| 332 | syntax keyword omnimarkDeclaration up-translate |
| 333 | syntax keyword omnimarkDeclaration use |
| 334 | syntax keyword omnimarkDeclaration variable |
| 335 | syntax keyword omnimarkDeclaration write-only |
| 336 | # }}} |
| 337 | # _ element qualifier {{{ |
| 338 | syntax keyword omnimarkElementQualifier ancestor |
| 339 | syntax keyword omnimarkElementQualifier doctype |
| 340 | syntax keyword omnimarkElementQualifier document-element |
| 341 | syntax match omnimarkElementQualifier "\v\c<%(open\s+element)" |
| 342 | syntax keyword omnimarkElementQualifier parent |
| 343 | syntax keyword omnimarkElementQualifier preparent |
| 344 | syntax keyword omnimarkElementQualifier previous |
| 345 | # }}} |
| 346 | # _ modifier {{{ |
| 347 | syntax match omnimarkModifier "\v\c<%(#base)" |
| 348 | syntax match omnimarkModifier "\v\c<%(#full)" |
| 349 | syntax match omnimarkModifier "\v\c<%(#xmlns)" |
| 350 | syntax keyword omnimarkModifier append |
| 351 | syntax keyword omnimarkModifier binary-input |
| 352 | syntax keyword omnimarkModifier binary-mode |
| 353 | syntax keyword omnimarkModifier binary-output |
| 354 | syntax keyword omnimarkModifier break-width |
| 355 | syntax keyword omnimarkModifier buffered |
| 356 | syntax match omnimarkModifier "\v\c<%(declare\s+#main-output\s+has\s+domain-free)" |
| 357 | syntax keyword omnimarkModifier defaulting |
| 358 | syntax keyword omnimarkModifier domain-free |
| 359 | syntax keyword omnimarkModifier notation |
| 360 | # of may be standalone, e.g., data-attribute colwidth of (attribute name) |
| 361 | syntax match omnimarkModifier "\v\c<%(of)%(\s%(ancestor|doctype|element|open element|%(pre)?parent))?" |
| 362 | syntax keyword omnimarkModifier referents-allowed |
| 363 | syntax keyword omnimarkModifier referents-displayed |
| 364 | syntax keyword omnimarkModifier referents-not-allowed |
| 365 | syntax keyword omnimarkModifier text-mode |
| 366 | syntax keyword omnimarkModifier unbuffered |
| 367 | # : (field selection operator) [not included] |
| 368 | # ` (keyword access character) [not included] |
| 369 | # }}} |
| 370 | # _ operator {{{ |
| 371 | syntax keyword omnimarkOperator ! |
| 372 | syntax keyword omnimarkOperator not |
| 373 | syntax keyword omnimarkOperator != |
| 374 | # 'isnt equal' is handled by separate keywords |
| 375 | syntax keyword omnimarkOperator !== |
| 376 | syntax match omnimarkOperator "\%(#!\)" |
| 377 | syntax match omnimarkOperator "\v\c<%(#empty)" |
| 378 | # Example: usemap is #none: |
| 379 | syntax match omnimarkOperator "\v\c<%(#none)" |
| 380 | syntax keyword omnimarkOperator % |
| 381 | syntax keyword omnimarkOperator format |
| 382 | syntax keyword omnimarkOperator & |
| 383 | syntax keyword omnimarkOperator and |
| 384 | syntax keyword omnimarkOperator * |
| 385 | syntax keyword omnimarkOperator times |
| 386 | syntax keyword omnimarkOperator ** |
| 387 | syntax keyword omnimarkOperator power |
| 388 | syntax keyword omnimarkOperator + |
| 389 | syntax keyword omnimarkOperator plus |
| 390 | syntax keyword omnimarkOperator - |
| 391 | syntax keyword omnimarkOperator minus |
| 392 | syntax keyword omnimarkOperator negate |
| 393 | syntax keyword omnimarkOperator / |
| 394 | syntax keyword omnimarkOperator divide |
| 395 | syntax keyword omnimarkOperator < |
| 396 | syntax keyword omnimarkOperator less-than |
| 397 | syntax keyword omnimarkOperator greater-equal |
| 398 | syntax keyword omnimarkOperator <= |
| 399 | syntax keyword omnimarkOperator less-equal |
| 400 | syntax keyword omnimarkOperator = |
| 401 | syntax keyword omnimarkOperator equal |
| 402 | # 'is equal' is handled by separate keywords |
| 403 | syntax keyword omnimarkOperator == |
| 404 | syntax match omnimarkOperator "\v<[=][>]\s*" |
| 405 | syntax keyword omnimarkOperator > |
| 406 | syntax keyword omnimarkOperator greater-than |
| 407 | syntax keyword omnimarkOperator >= |
| 408 | syntax keyword omnimarkOperator greater-equal |
| 409 | syntax keyword omnimarkOperator abs |
| 410 | syntax keyword omnimarkOperator active |
| 411 | syntax keyword omnimarkOperator attribute |
| 412 | # attribute is defaulted, implied, specified: split to single keywords |
| 413 | # because it can be isnt too. Similarly for ancestor (is/isnt) |
| 414 | # with ancestor being an element qualifier. |
| 415 | # Tests for element attributes, e.g.: |
| 416 | # do when attribute myid is (id | idref | idrefs) |
| 417 | # cdata (already omnimarkPattern) |
| 418 | # name (already omnimarkOperator) |
| 419 | syntax keyword omnimarkAttributeType names |
| 420 | # number: match rather than keyword since "number of" is an operator |
| 421 | syntax match omnimarkAttributeType "\v\c<%(number)" |
| 422 | syntax keyword omnimarkAttributeType numbers |
| 423 | syntax keyword omnimarkAttributeType nmtoken |
| 424 | syntax keyword omnimarkAttributeType nmtokens |
| 425 | syntax keyword omnimarkAttributeType nutoken |
| 426 | syntax keyword omnimarkAttributeType nutokens |
| 427 | syntax keyword omnimarkAttributeType id |
| 428 | syntax keyword omnimarkAttributeType idref |
| 429 | syntax keyword omnimarkAttributeType idrefs |
| 430 | # notation (already omnimarkModifier) |
| 431 | # entity (already omnimarkOperator) |
| 432 | # entities (already omnimarkOperator) |
| 433 | syntax keyword omnimarkOperator base |
| 434 | syntax keyword omnimarkOperator binary |
| 435 | syntax keyword omnimarkOperator cast |
| 436 | syntax keyword omnimarkOperator ceiling |
| 437 | syntax keyword omnimarkOperator children |
| 438 | syntax keyword omnimarkOperator compiled-date |
| 439 | syntax keyword omnimarkOperator complement |
| 440 | syntax match omnimarkOperator "\v\c<%(content\s+of)" |
| 441 | syntax keyword omnimarkOperator create-attribute-declaration |
| 442 | syntax keyword omnimarkOperator create-element-declaration |
| 443 | syntax keyword omnimarkOperator create-element-event |
| 444 | syntax keyword omnimarkOperator create-processing-instruction-event |
| 445 | syntax keyword omnimarkOperator create-specified-attribute |
| 446 | syntax keyword omnimarkOperator create-unspecified-attribute |
| 447 | syntax keyword omnimarkOperator creating |
| 448 | syntax match omnimarkOperator "\v\c<%(creator\s+of)" |
| 449 | syntax keyword omnimarkOperator data-attribute |
| 450 | syntax keyword omnimarkOperator date |
| 451 | syntax match omnimarkOperator "\v\c<%(declaration\s+of)" |
| 452 | syntax keyword omnimarkOperator declared-elements |
| 453 | syntax keyword omnimarkOperator declared-general-entities |
| 454 | syntax keyword omnimarkOperator declared-parameter-entities |
| 455 | syntax keyword omnimarkOperator defaulted |
| 456 | syntax keyword omnimarkOperator difference |
| 457 | syntax match omnimarkOperator "\v\c<%(doctype\s+is)" |
| 458 | syntax keyword omnimarkOperator drop |
| 459 | syntax match omnimarkOperator "\v\c<%(element\s+is)" |
| 460 | syntax match omnimarkOperator "\v\c<%(elements\s+of)" |
| 461 | syntax match omnimarkOperator "\v\c<%(entity\s+is)" |
| 462 | syntax keyword omnimarkOperator except |
| 463 | syntax keyword omnimarkOperator exists |
| 464 | syntax keyword omnimarkOperator exp |
| 465 | syntax keyword omnimarkOperator external-function |
| 466 | syntax keyword omnimarkOperator file |
| 467 | syntax keyword omnimarkOperator floor |
| 468 | syntax match omnimarkOperator "\v\c<%(function-library\s+of)" |
| 469 | syntax keyword omnimarkOperator has |
| 470 | syntax keyword omnimarkOperator hasnt |
| 471 | # 'has'/'hasnt' (before 'key'/'^' or 'item'/'@' (other obscure things too?): |
| 472 | syntax keyword omnimarkOperator key |
| 473 | syntax match omnimarkOperator "\v[\^]" |
| 474 | # 'item' is addressed elsewhere - @ needs to be a match, not keyword |
| 475 | syntax match omnimarkOperator "\v<[@]" |
| 476 | syntax keyword omnimarkOperator implied |
| 477 | syntax keyword omnimarkOperator in-codes |
| 478 | syntax keyword omnimarkOperator is |
| 479 | syntax keyword omnimarkOperator isnt |
| 480 | # 'is'/'isnt' (usually before, or sometime after, e.g., 'content isnt'): |
| 481 | syntax keyword omnimarkOperator attached |
| 482 | syntax keyword omnimarkOperator buffer |
| 483 | syntax keyword omnimarkOperator catchable |
| 484 | syntax keyword omnimarkOperator cdata-entity |
| 485 | syntax keyword omnimarkOperator closed |
| 486 | syntax keyword omnimarkOperator conref |
| 487 | syntax keyword omnimarkOperator content |
| 488 | # 'content is' ... empty, any, cdata, rcdata, mixed, conref |
| 489 | syntax keyword omnimarkOperator default-entity |
| 490 | syntax keyword omnimarkOperator directory |
| 491 | # 'entity'/'entities', e.g., 'attribute x is (entity | entities)' |
| 492 | syntax match omnimarkOperator "\v\c<%(entit)%(y|ies)" |
| 493 | syntax keyword omnimarkOperator external |
| 494 | # E.g., 'open s as external-output-function' (v. buffer, etc.) '-call'? |
| 495 | syntax match omnimarkOperator "\v\c<%(external-output-function)%(-call)?" |
| 496 | syntax keyword omnimarkOperator file |
| 497 | syntax keyword omnimarkOperator general |
| 498 | syntax keyword omnimarkOperator in-library |
| 499 | syntax keyword omnimarkOperator internal |
| 500 | syntax keyword omnimarkOperator keyed |
| 501 | syntax keyword omnimarkOperator markup-parser |
| 502 | syntax keyword omnimarkOperator ndata-entity |
| 503 | # These are not to be confused with the omnimarkAction, 'open' |
| 504 | syntax match omnimarkOperator "\v\c<%(is\s+open)" |
| 505 | syntax match omnimarkOperator "\v\c<%(isnt\s+open)" |
| 506 | syntax keyword omnimarkOperator parameter |
| 507 | syntax keyword omnimarkOperator past |
| 508 | syntax keyword omnimarkOperator public |
| 509 | syntax keyword omnimarkOperator readable |
| 510 | # These are not to be confused with the omnimarkAction, 'referent' |
| 511 | syntax match omnimarkOperator "\v\c<%(is\s+referent)" |
| 512 | syntax match omnimarkOperator "\v\c<%(isnt\s+referent)" |
| 513 | syntax keyword omnimarkOperator sdata-entity |
| 514 | # Deprecated form - markup-parser is recommended |
| 515 | syntax keyword omnimarkOperator sgml-parser |
| 516 | syntax keyword omnimarkOperator subdoc-entity |
| 517 | syntax keyword omnimarkOperator system |
| 518 | syntax keyword omnimarkOperator thrown |
| 519 | syntax match omnimarkOperator "\v\c<%(item)%(\sof)?%(\s%(data-)?attributes)?" |
| 520 | syntax match omnimarkOperator "\v\c<%(key\s+of)" |
| 521 | # 'key of attribute'/s not needed: 'key of' and 'attribute' are separate |
| 522 | # 'key of data-attribute'/s not needed: 'key of' &c. are separate |
| 523 | # 'key of referents' not needed: 'key of' and 'referents' are separate |
| 524 | syntax keyword omnimarkOperator last |
| 525 | syntax keyword omnimarkOperator lastmost |
| 526 | syntax match omnimarkOperator "\v\c<%(length\s*of)" |
| 527 | syntax keyword omnimarkOperator literal |
| 528 | syntax keyword omnimarkOperator ln |
| 529 | syntax keyword omnimarkOperator log10 |
| 530 | syntax keyword omnimarkOperator lookahead |
| 531 | # 'lookahead not' not needed: 'lookahead' and 'not' are separate |
| 532 | syntax keyword omnimarkOperator mask |
| 533 | syntax keyword omnimarkOperator matches |
| 534 | syntax keyword omnimarkOperator modulo |
| 535 | syntax match omnimarkOperator "\v\c<%(name)>%(\s+of)?%(\s+current)?%(\s+element)?" |
| 536 | syntax keyword omnimarkOperator named |
| 537 | syntax match omnimarkOperator "\v\c<%(notation\s+equals)" |
| 538 | syntax match omnimarkOperator "\v\c<%(number\s+of)" |
| 539 | # 'number of attribute'/s not needed: 'number of' and 'attribute' are separate |
| 540 | # 'number of current elements' is not needed: 'number of' &c. are separate |
| 541 | syntax match omnimarkOperator "\v\c<%(number\s+of\s+current\s+subdocuments)" |
| 542 | # 'number of data-attribute'/s not needed: 'number of' &c. are separate |
| 543 | # 'number of referents' not needed: 'number of' and 'referents' are separate |
| 544 | syntax keyword omnimarkOperator occurrence |
| 545 | syntax match omnimarkOperator "\v\c<%(open\s+element\s+is)" |
| 546 | syntax match omnimarkOperator "\v\c<%(parent\s+is)" |
| 547 | syntax match omnimarkOperator "\v\c<%(preparent\s+is)" |
| 548 | syntax match omnimarkOperator "\v\c<%(previous\s+is)" |
| 549 | syntax match omnimarkOperator "\v\c<%(public-identifier\s+of)" |
| 550 | syntax match omnimarkOperator "\v\c<%(referents\s+has\s+key)" |
| 551 | syntax match omnimarkOperator "\v\c<%(referents\s+is\s+attached)" |
| 552 | syntax keyword omnimarkOperator round |
| 553 | syntax keyword omnimarkOperator shift |
| 554 | syntax keyword omnimarkOperator specified |
| 555 | syntax keyword omnimarkOperator sqrt |
| 556 | # E.g., last proper? subelement _element-qualifier_ is/isnt |
| 557 | syntax keyword omnimarkOperator subelement |
| 558 | syntax keyword omnimarkOperator system-call |
| 559 | syntax match omnimarkOperator "\v\c<%(system-identifier\s+of)" |
| 560 | syntax keyword omnimarkOperator status |
| 561 | # E.g., 'status ... is (proper | inclusion)' |
| 562 | syntax keyword omnimarkOperator inclusion |
| 563 | syntax keyword omnimarkOperator proper |
| 564 | # E.g., 'last content {element-qualifier} is #DATA' |
| 565 | syntax match omnimarkOperator "\v\c<%(#data)" |
| 566 | syntax keyword omnimarkOperator take |
| 567 | # 'this' only appears before 'referent', so requires no standalone 'this' |
| 568 | syntax match omnimarkOperator "\v\c<%(this\s*referent)" |
| 569 | syntax keyword omnimarkOperator to |
| 570 | syntax keyword omnimarkOperator truncate |
| 571 | syntax keyword omnimarkOperator ul |
| 572 | syntax keyword omnimarkOperator union |
| 573 | syntax keyword omnimarkOperator usemap |
| 574 | syntax keyword omnimarkOperator valued |
| 575 | syntax keyword omnimarkOperator writable |
| 576 | syntax keyword omnimarkOperator xmlns-name |
| 577 | syntax match omnimarkOperator "\v%(\s)%([\\])%(\s)" |
| 578 | syntax match omnimarkOperator "\v%(\s)([_])%(\s)" |
| 579 | syntax match omnimarkOperator "\v%(\s)([\|])%(\s)" |
| 580 | syntax keyword omnimarkOperator or |
| 581 | syntax match omnimarkOperator "\v%(\s)([\|][\|])%(\s)" |
| 582 | syntax keyword omnimarkOperator join |
| 583 | syntax match omnimarkOperator "\v%(\s)([\|][\|][\*])%(\s)" |
| 584 | syntax keyword omnimarkOperator repeated |
| 585 | syntax match omnimarkOperator "\v%(\s)([~])" |
| 586 | # }}} |
| 587 | # _ pattern {{{ |
| 588 | syntax match omnimarkPattern "\v%(\s)%(\=\|)" |
| 589 | syntax match omnimarkPattern "\v\c<%(any)%(\+%(\+)?|*%(*)?|\?)?" |
| 590 | syntax match omnimarkPattern "\v\c<%(any-text)%(\+|*|\?)?" |
| 591 | syntax match omnimarkPattern "\v\c<%(blank)%(\+|*|\?)?" |
| 592 | syntax keyword omnimarkPattern cdata |
| 593 | syntax keyword omnimarkPattern content-end |
| 594 | syntax keyword omnimarkPattern content-start |
| 595 | syntax match omnimarkPattern "\v\c<%(digit)%(\+|*|\?)?" |
| 596 | syntax keyword omnimarkPattern empty |
| 597 | syntax match omnimarkPattern "\v\c<%(lc)%(\+|*|\?)?" |
| 598 | syntax match omnimarkPattern "\v\c<%(letter)%(\+|*|\?)?" |
| 599 | syntax keyword omnimarkPattern line-end |
| 600 | syntax keyword omnimarkPattern line-start |
| 601 | syntax keyword omnimarkPattern mixed |
| 602 | syntax keyword omnimarkPattern non-cdata |
| 603 | syntax keyword omnimarkPattern non-sdata |
| 604 | syntax keyword omnimarkPattern null |
| 605 | syntax keyword omnimarkPattern pcdata |
| 606 | syntax keyword omnimarkPattern rcdata |
| 607 | syntax keyword omnimarkPattern sdata |
| 608 | syntax match omnimarkPattern "\v\c<%(space)%(\+|*|\?)?" |
| 609 | syntax match omnimarkPattern "\v\c<%(text)%([[:space:]\n])" |
| 610 | syntax match omnimarkPattern "\v\c<%(uc)%(\+|*|\?)?" |
| 611 | syntax keyword omnimarkPattern unanchored |
| 612 | syntax keyword omnimarkPattern value-end |
| 613 | syntax keyword omnimarkPattern value-start |
| 614 | syntax match omnimarkPattern "\v\c<%(white-space)%(\+|*|\?)?" |
| 615 | syntax keyword omnimarkPattern word-end |
| 616 | syntax keyword omnimarkPattern word-start |
| 617 | syntax match omnimarkPattern "\v%(\s)%(\|\=)" |
| 618 | # }}} |
| 619 | # _ rule {{{ |
| 620 | syntax keyword omnimarkRule data-content |
| 621 | syntax keyword omnimarkRule document-end |
| 622 | syntax keyword omnimarkRule document-start |
| 623 | syntax keyword omnimarkRule document-type-declaration |
| 624 | syntax keyword omnimarkRule dtd-end |
| 625 | syntax keyword omnimarkRule dtd-start |
| 626 | syntax keyword omnimarkRule element |
| 627 | syntax keyword omnimarkRule epilog-start |
| 628 | syntax keyword omnimarkRule external-entity |
| 629 | syntax keyword omnimarkRule external-data-entity |
| 630 | syntax keyword omnimarkRule external-text-entity |
| 631 | syntax match omnimarkRule "\v\c<%(external-text-entity\s+#document)" |
| 632 | syntax keyword omnimarkRule find |
| 633 | syntax keyword omnimarkRule find-end |
| 634 | syntax keyword omnimarkRule find-start |
| 635 | syntax keyword omnimarkRule insertion-break |
| 636 | syntax keyword omnimarkRule invalid-data |
| 637 | syntax match omnimarkRule "\v\c<%(marked-section)%(\s+%(cdata|ignore|include-%(end|start)|rcdata))?" |
| 638 | syntax keyword omnimarkRule markup-comment |
| 639 | syntax keyword omnimarkRule markup-error |
| 640 | syntax keyword omnimarkRule process |
| 641 | syntax keyword omnimarkRule process-end |
| 642 | syntax keyword omnimarkRule processing-instruction |
| 643 | syntax keyword omnimarkRule process-start |
| 644 | syntax keyword omnimarkRule prolog-end |
| 645 | syntax keyword omnimarkRule prolog-in-error |
| 646 | syntax keyword omnimarkRule replacement-break |
| 647 | syntax keyword omnimarkRule sgml-comment |
| 648 | syntax keyword omnimarkRule sgml-declaration-end |
| 649 | syntax keyword omnimarkRule sgml-error |
| 650 | syntax keyword omnimarkRule translate |
| 651 | syntax keyword omnimarkRule xmlns-change |
| 652 | # }}} |
| 653 | # Libraries {{{ |
| 654 | # ombase64 |
| 655 | syntax match omnimarkLibrary "\v\c<%(base64[.])%([orw])%([[:print:]])+" |
| 656 | # ombcd |
| 657 | # (NB: abs, ceiling, exp, floor, ln, log10, round, sqrt, and truncate |
| 658 | # are all operators) |
| 659 | syntax match omnimarkLibrary "\v\c<%(ombcd-version)" |
| 660 | # ombessel |
| 661 | syntax match omnimarkLibrary "\v\c<%(j0|j1|jn|y0|y1|yn)" |
| 662 | # ombig5 |
| 663 | syntax match omnimarkLibrary "\v\c<%(big5[.])%([orw])%([[:print:]])+" |
| 664 | # omblowfish and omffblowfish |
| 665 | syntax match omnimarkLibrary "\v\c<%(blowfish[.])%([deorsw])%(\a|-)+" |
| 666 | # omcgi |
| 667 | syntax match omnimarkLibrary "\v\c<%(cgiGet)%([EQ])\a+" |
| 668 | # omff8859 |
| 669 | syntax match omnimarkLibrary "\v\c<%(iso8859[.])%([iorw])%([[:print:]])+" |
| 670 | # omfloat |
| 671 | # (NB: uses same operator names as ombcd except for the following) |
| 672 | syntax match omnimarkLibrary "\v\c<%(is-nan)" |
| 673 | syntax match omnimarkLibrary "\v\c<%(omfloat-version)" |
| 674 | # omdate |
| 675 | syntax match omnimarkLibrary "\v\c<%(add-to-ymdhms)" |
| 676 | syntax match omnimarkLibrary "\v\c<%(arpadate-to-ymdhms)" |
| 677 | syntax match omnimarkLibrary "\v\c<%(format-ymdhms)" |
| 678 | syntax match omnimarkLibrary "\v\c<%(now-as-ymdhms)" |
| 679 | syntax match omnimarkLibrary "\v\c<%(round-down-ymdhms)" |
| 680 | syntax match omnimarkLibrary "\v\c<%(round-up-ymdhms)" |
| 681 | syntax match omnimarkLibrary "\v\c<%(ymdhms-)%([adjmst])%(\a|-)+" |
| 682 | syntax match omnimarkLibrary "\v\c<%(ymd-weekday)" |
| 683 | # omdb |
| 684 | syntax match omnimarkLibrary "\v\c<%(db[.])%([acdefimopqrstuw])%(\a|-|1)+" |
| 685 | # omffeuc |
| 686 | syntax match omnimarkLibrary "\v\c<%(euc[.])%([orw])%(\a|-)+" |
| 687 | # omffjis |
| 688 | syntax match omnimarkLibrary "\v\c<%(jis[.])%([orw])%(\a|-)+" |
| 689 | # omffutf16 and omffutf32 |
| 690 | syntax match omnimarklibrary "\v\c<%(utf)%(16|32)%([.])%([orw])%(\a|-)+" |
| 691 | # omfloat |
| 692 | syntax match omnimarklibrary "\v\C<%(FP_)%([a-z])+\d?" |
| 693 | # omfsys |
| 694 | syntax match omnimarkLibrary "\v\C<%(FS_)%([CDGLMR])\a+" |
| 695 | # omftp |
| 696 | syntax match omnimarkLibrary "\v\c<%(FTP)%([CIL])\a+" |
| 697 | # omhttp |
| 698 | syntax match omnimarkLibrary "\v\c<%(Http)%([CORS])\a+" |
| 699 | # omiobuf |
| 700 | syntax match omnimarkLibrary "\v\c<%(iobuf[.])%([brw])\a+" |
| 701 | # omldap |
| 702 | syntax match omnimarkLibrary "\v\c<%(ldap[.])%([acdemnors])%(\a|-)+" |
| 703 | # omprocess |
| 704 | syntax match omnimarkLibrary "\v\c<%(command-line)" |
| 705 | syntax match omnimarkLibrary "\v\c<%(executable-name)" |
| 706 | syntax match omnimarkLibrary "\v\c<%(execute)" |
| 707 | syntax match omnimarkLibrary "\v\c<%(glob)" |
| 708 | syntax match omnimarkLibrary "\v\c<%(omprocess-version)" |
| 709 | # omrandom |
| 710 | syntax match omnimarkLibrary "\v\c<%(random[.])%([eosu])%(\a|-)+" |
| 711 | # omunicode |
| 712 | syntax match omnimarkLibrary "\v\c<%(unicode[.])%([bgo])%(\a|-)+" |
| 713 | # omutf8 |
| 714 | syntax match omnimarkLibrary "\v\c<%(utf8[.])%([bceilmos])%(\a|8|-)+" |
| 715 | # omioe/omfio |
| 716 | syntax match omnimarkLibrary "\v\c<%(get-exception-status)" |
| 717 | syntax match omnimarkLibrary "\v\c<%(io-exception-text)" |
| 718 | syntax match omnimarkLibrary "\v\c<%(new-io-exception)" |
| 719 | syntax match omnimarkLibrary "\v\c<%(set-voluntary-end-exception)" |
| 720 | syntax match omnimarkLibrary "\v\c<%(%(Big5|euc|jis|sjis|utf16)%(-))?%(%(in|out)put-file)" |
| 721 | # omioprotocol |
| 722 | syntax match omnimarkLibrary "\v\c<%(IOProtocol)%([EILMS])\a+" |
| 723 | # ommail |
| 724 | syntax match omnimarkLibrary "\v\c<%(Mail)%([ILO]\a+)" |
| 725 | # omtrig |
| 726 | syntax match omnimarkLibrary "\v\c<%(a)?%(cos%(h)?|sin%(h)?|tan%(h|2)?|hypot)" |
| 727 | # omnetutl |
| 728 | syntax match omnimarkLibrary "\v\c<%(from-net-long)" |
| 729 | syntax match omnimarkLibrary "\v\c<%(net-long)" |
| 730 | syntax match omnimarkLibrary "\v\c<%(NET)%([GIL]\a+)" |
| 731 | syntax match omnimarkLibrary "\v\c<%(to-net-long)" |
| 732 | # omnetutil |
| 733 | syntax match omnimarkLibrary "\v\c<%(netutil[.])%([fhnot]%(\a|3|2|-)+)" |
| 734 | # omoci |
| 735 | syntax match omnimarkLibrary "\v\c<%(OCI_)%([GLoS]\a+)" |
| 736 | # omodbc |
| 737 | syntax match omnimarkLibrary "\v\c<%(SQL)%([_])?%([ABCDEFGLMNPRST][[:alpha:]]+)" |
| 738 | # omsocat |
| 739 | syntax match omnimarkLibrary "\v\c<%(socat-[clr-])%([[:alpha:]]+)" |
| 740 | # omsort |
| 741 | syntax match omnimarkLibrary "\v\c<%(sort[.][os])%(\a|-)+" |
| 742 | # omutil |
| 743 | syntax match omnimarkLibrary "\v\c<%(UTIL[_.][EGLmopRSU])%(\a|-)+" |
| 744 | # omvfs |
| 745 | syntax match omnimarkLibrary "\v\c<%(vfs[.][cdflmorstuw])%(\a|-)+" |
| 746 | # tcp |
| 747 | syntax match omnimarkLibrary "\v\c<%(TCP)%([.])?%([acdegilmoprstw][[:alpha:]-]+)" |
| 748 | # uri |
| 749 | syntax match omnimarkLibrary "\v\c<%(uri[.])%([ceopr])%(\a|-)+" |
| 750 | # wsb |
| 751 | syntax match omnimarkLibrary "\v\c<%(wsb[.])%([acdfhrsw])%(\a|-)+" |
| 752 | # }}} |
| 753 | # Comments {{{ |
| 754 | # ------- |
| 755 | syntax region omnimarkComment start=";" end="$" |
| 756 | # }}} |
| 757 | # Strings and format-modifiers {{{ |
| 758 | syntax region omnimarkString matchgroup=Normal start=+'+ end=+'+ skip=+%'+ contains=omnimarkEscape |
| 759 | syntax region omnimarkString matchgroup=Normal start=+"+ end=+"+ skip=+%"+ contains=omnimarkEscape |
| 760 | # This handles format items inside strings: |
| 761 | # NB: escape _quoted-character_ allows a new character to be used to |
| 762 | # indicate a special character or a format item, rather than the normal %. |
| 763 | # The use of escape is deprecated in general, because it leads to |
| 764 | # non-standard OmniMark code that can be difficult to understand. It has |
| 765 | # not be handled here as it would be almost impossible to do so. |
| 766 | # dynamic: %a %b %d %g %i %p %q %v %x %w %y |
| 767 | # a - integer data type formatting |
| 768 | # b - integer data type formatting |
| 769 | # c - parsed data formatting |
| 770 | # d - integer data type formatting, BCD data type formatting |
| 771 | # g - string data formatting |
| 772 | # i - integer data type formatting |
| 773 | # p - parsed data formatting |
| 774 | # q - parsed data formatting |
| 775 | # v - parsed data formatting |
| 776 | # x - deprecated format command used instead of g |
| 777 | # y - symbol declaration |
| 778 | # @ - macro arguments |
| 779 | # static: %% %_ %n %t %# %) %" %' %/ %[ %] %@%% |
| 780 | # %% - insert an explicit percent sign |
| 781 | # %_ - insert an explicit space character |
| 782 | # %n - insert an explicit newline character |
| 783 | # %t - insert an explicit tab character |
| 784 | # %0# through to %255# - insert an explicit byte with given value |
| 785 | # %{...}—a sequence of characters, e.g., %16r{0d, 0a} |
| 786 | # %#—insert an explicit octothorpe character (#) |
| 787 | # %)—insert an explicit closing parenthesis |
| 788 | # %"—insert an explicit double quote character |
| 789 | # %'—insert an explicit single quote character |
| 790 | # %/—indicates a point where line breaking can occur |
| 791 | # %[ and %]—protect the delimited text from line breaking |
| 792 | # %@%—insert an explicit percent sign inside a macro expansion |
| 793 | # % format-modifier a |
| 794 | syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f))?%(j|k|l|u|w)*)?a)= |
| 795 | # % format-modifier b |
| 796 | syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f))?%(\d)?)?b)= |
| 797 | # % format-modifier c |
| 798 | syntax match omnimarkEscape contained =\v\C%(%(\%%(h|l|u|s|z)*c))= |
| 799 | # % format-modifier d |
| 800 | syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f|r|s)?)*%(j|k|l|u|z)*)?d)= |
| 801 | # % format-modifier g |
| 802 | syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f|r|s)?)*%(j|k|l|u|z)*)?g)= |
| 803 | # % format-modifier |
| 804 | syntax match omnimarkEscape contained =\v\C%(%(\%[abdgipqvxwy%_nt#)"'/\[\]])|%(\%\@\%)|%(\%\d+#)|\%%(\d+r[{]%([0-9A-z, ]+)}))+= |
| 805 | # }}} |
| 806 | # Number {{{ |
| 807 | syntax match omnimarkNumber "\v([[:alpha:]]+)@<![-]?\d+([.]\d+)?" |
| 808 | # }}} |
| 809 | # Define default highlighting {{{ |
| 810 | highlight default link omnimarkAction Statement |
| 811 | highlight default link omnimarkAttributeType Structure |
| 812 | highlight default link omnimarkDataType Type |
| 813 | highlight default link omnimarkBuiltinEntity Identifier |
| 814 | highlight default link omnimarkBuiltinShelf Identifier |
| 815 | highlight default link omnimarkCatchName Exception |
| 816 | highlight default link omnimarkConstant Constant |
| 817 | highlight default link omnimarkControlStructure Conditional |
| 818 | highlight default link omnimarkDeclaration Keyword |
| 819 | highlight default link omnimarkElementQualifier Type |
| 820 | highlight default link omnimarkLibrary Function |
| 821 | highlight default link omnimarkModifier Keyword |
| 822 | highlight default link omnimarkOperator Operator |
| 823 | highlight default link omnimarkPattern Label |
| 824 | highlight default link omnimarkRule Keyword |
| 825 | highlight default link omnimarkString String |
| 826 | highlight default link omnimarkNumber Number |
| 827 | highlight default link omnimarkComment Comment |
| 828 | highlight default link omnimarkEscape Special |
| 829 | highlight default link omnimarkNormal Statement |
| 830 | # }}} |
| 831 | syntax sync fromstart |
| 832 | b:current_syntax = "omnimark" |
| 833 | # vim: cc=+1 et fdm=marker ft=vim sta sw=2 ts=8 tw=79 |