mirror of
https://github.com/vim/vim
synced 2025-04-30 05:17:45 +02:00
Note: this commit rewrites the omnimark syntax script in Vim9 script and is therefore probably incompatible with Neovim closes: #16979 Signed-off-by: Peter Kenny <github.com@k1w1.cyou> Signed-off-by: Christian Brabandt <cb@256bit.org>
833 lines
39 KiB
VimL
833 lines
39 KiB
VimL
vim9script
|
|
# Vim syntax file
|
|
# Language: OmniMark
|
|
# Maintainer: Peter Kenny <kennypete.t2o3y@aleeas.com>
|
|
# Previous Maintainer: Paul Terray <mailto:terray@4dconcept.fr>
|
|
# Last Change: 2025-03-23
|
|
# License: Vim (see :help license)
|
|
# History: 2000-10-11 Vintage minimal syntax file (Paul Terray)
|
|
#
|
|
# - Syntax is grouped, generally, by type (action to rule), using the
|
|
# version 12 headings. Refer:
|
|
# https://developers.stilo.com/docs/html/keyword/type.html
|
|
# - Deprecated/legacy syntax back to version 4 is included.
|
|
# - OmniMark is largely case insensitive, with handled exceptions (e.g., %g)
|
|
# ----------------------------------------------------------------------------
|
|
syntax case ignore
|
|
# Current syntax exists: finish {{{
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
# }}}
|
|
# Keyword characters {{{
|
|
# !#%&*+-/0123456789<=>@
|
|
# ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
|
# \_abcdefghijklmnopqrstuvwxyz|~
|
|
setlocal iskeyword=33,35,37-38,42-43,45,47-57,60-62,64-90,92,95,97-122,124,126
|
|
# }}}
|
|
# _ action {{{
|
|
syntax keyword omnimarkAction activate
|
|
syntax keyword omnimarkAction assert
|
|
syntax keyword omnimarkAction clear
|
|
syntax keyword omnimarkAction close
|
|
syntax keyword omnimarkAction collect-garbage
|
|
syntax match omnimarkAction "\v\c<%(copy)%(-clear)?"
|
|
syntax keyword omnimarkAction deactivate
|
|
syntax keyword omnimarkAction decrement
|
|
syntax keyword omnimarkAction discard
|
|
syntax keyword omnimarkAction flush
|
|
syntax match omnimarkAction "\v\c<%(halt)%(-everything)?"
|
|
syntax keyword omnimarkAction increment
|
|
syntax keyword omnimarkAction log
|
|
syntax keyword omnimarkAction log-message
|
|
syntax keyword omnimarkAction match
|
|
syntax keyword omnimarkAction new
|
|
# new takes before and after (as in new x{"wilma"} after [2])
|
|
syntax keyword omnimarkAction after
|
|
syntax keyword omnimarkAction before
|
|
# This is the only way 'next' is used (and it cannot be 'isnt'):
|
|
syntax match omnimarkAction "\v\c<%(next\s+group\s+is)"
|
|
syntax keyword omnimarkAction not-reached
|
|
syntax keyword omnimarkAction open
|
|
syntax match omnimarkAction "\v\c<%(output)%(-to)?"
|
|
syntax keyword omnimarkAction put
|
|
# When alone, 'referent' is nearly always 'put...referent,' which is an action
|
|
syntax keyword omnimarkAction referent
|
|
syntax match omnimarkAction "\v\c<%(remove)%(\s+key\s+of)?"
|
|
syntax keyword omnimarkAction reopen
|
|
syntax keyword omnimarkAction reset
|
|
syntax keyword omnimarkAction return
|
|
# 'scan' because it can start a line in a block of 'do *-parse ... done'
|
|
syntax keyword omnimarkAction scan
|
|
syntax match omnimarkAction "\v\c<%(set)%(\s+%(buffer|creator\s+of|external-function|file|function-library|key\s+of|new|referent|stream))?"
|
|
syntax keyword omnimarkAction sgml-in
|
|
syntax keyword omnimarkAction sgml-out
|
|
syntax keyword omnimarkAction signal
|
|
syntax keyword omnimarkAction submit
|
|
syntax keyword omnimarkAction suppress
|
|
syntax keyword omnimarkAction throw
|
|
syntax keyword omnimarkAction void
|
|
# }}}
|
|
# _ built-in data type {{{
|
|
# attribute-declaration: Every attribute-declaration instance has two
|
|
# properties: attribute-default-declaration and
|
|
# attribute-value-declaration
|
|
# attribute-default-declaration: is the abstract type of declared defaults for
|
|
# unspecified attribute values. Its concrete
|
|
# instances can be obtained with the following
|
|
# four constants:
|
|
syntax keyword omnimarkConstant attribute-declared-conref
|
|
syntax keyword omnimarkConstant attribute-declared-current
|
|
syntax keyword omnimarkConstant attribute-declared-implied
|
|
syntax keyword omnimarkConstant attribute-declared-required
|
|
# and with two operators which take a string
|
|
# default value argument:
|
|
syntax match omnimarkOperator "\v\c<%(attribute-declared-defaulted\s+to)"
|
|
syntax match omnimarkOperator "\v\c<%(attribute-declared-fixed to)"
|
|
# attribute-value-declaration: is the abstract type of values that an
|
|
# attribute is declared to accept. Its concrete
|
|
# instances can be obtained with the following
|
|
# constants:
|
|
syntax match omnimarkConstant "\v\c<%(attribute-declared-fixed to)"
|
|
syntax keyword omnimarkConstant attribute-declared-id
|
|
syntax keyword omnimarkConstant attribute-declared-idref
|
|
syntax keyword omnimarkConstant attribute-declared-idrefs
|
|
syntax keyword omnimarkConstant attribute-declared-name
|
|
syntax keyword omnimarkConstant attribute-declared-names
|
|
syntax keyword omnimarkConstant attribute-declared-nmtoken
|
|
syntax keyword omnimarkConstant attribute-declared-nmtokens
|
|
syntax keyword omnimarkConstant attribute-declared-number
|
|
syntax keyword omnimarkConstant attribute-declared-numbers
|
|
syntax keyword omnimarkConstant attribute-declared-nutoken
|
|
syntax keyword omnimarkConstant attribute-declared-nutokens
|
|
# and with one operator that takes a string shelf
|
|
# argument listing all the values allowed for the
|
|
# attribute:
|
|
syntax keyword omnimarkOperator attribute-declared-group
|
|
# content-model - the following six constants are the only possible values:
|
|
syntax keyword omnimarkConstant any-content-model
|
|
syntax keyword omnimarkConstant cdata-content-model
|
|
syntax keyword omnimarkConstant element-content-model
|
|
syntax keyword omnimarkConstant empty-content-model
|
|
syntax keyword omnimarkConstant mixed-content-model
|
|
syntax keyword omnimarkConstant rcdata-content-model
|
|
# refer also:
|
|
# developers.stilo.com/docs/html/keyword/create-element-declaration.html
|
|
#
|
|
# declared-attribute is and abstract type with subtypes:
|
|
# implied-attribute
|
|
# specified-attribute
|
|
# dtd abstract data type has subtypes:
|
|
# sgml-dtd
|
|
# xml-dtd
|
|
# element-declaration
|
|
# entity-declaration
|
|
# markup-element-event
|
|
# markup-event has subtypes:
|
|
# markup-point-event
|
|
# markup-region-event
|
|
# }}}
|
|
# _ built-in entity {{{
|
|
syntax match omnimarkBuiltinEntity "\v\c<%(#capacity)"
|
|
syntax match omnimarkBuiltinEntity "\v\c<%(#charset)"
|
|
syntax match omnimarkBuiltinEntity "\v\c<%(#document)"
|
|
syntax match omnimarkBuiltinEntity "\v\c<%(#dtd)"
|
|
syntax match omnimarkBuiltinEntity "\v\c<%(#implied)"
|
|
syntax match omnimarkBuiltinEntity "\v\c<%(#schema)"
|
|
syntax match omnimarkBuiltinEntity "\v\c<%(#syntax)"
|
|
# }}}
|
|
# _ built-in shelf {{{
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#additional-info)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#appinfo)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#args)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#class)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#command-line-names)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#console)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#content)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#current-dtd)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#current-input)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#current-markup-event)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#current-output)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#doctype)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#error)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#error-code)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#file-name)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#language-version)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#libpath)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#library)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#libvalue)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#line-number)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#log)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#main-input)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#main-output)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#markup-error-count)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#markup-error-total)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#markup-parser)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#markup-warning-count)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#markup-warning-total)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#message)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#output)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#platform-info)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#process-input)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#process-output)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#recovery-info)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#sgml)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-error-count)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-error-total)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-warning-count)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#sgml-warning-total)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#suppress)"
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(#xmlns-names)"
|
|
syntax keyword omnimarkBuiltinShelf attributes
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(current)%(\s+%(element%(s)?|dtd|sgml-dtd))"
|
|
syntax keyword omnimarkBuiltinShelf data-attributes
|
|
syntax keyword omnimarkBuiltinShelf referents
|
|
syntax keyword omnimarkBuiltinShelf sgml-dtds
|
|
# deprecated synonym for sgml-dtds:
|
|
syntax keyword omnimarkBuiltinShelf dtds
|
|
syntax keyword omnimarkBuiltinShelf xml-dtds
|
|
syntax match omnimarkBuiltinShelf "\v\c<%(specified\s+attributes)"
|
|
# }}}
|
|
# _ catch name {{{
|
|
syntax match omnimarkCatchName "\v\c<%(#external-exception)"
|
|
# external exception parameters
|
|
syntax keyword omnimarkCatchName identity
|
|
syntax keyword omnimarkCatchName message
|
|
syntax keyword omnimarkCatchName location
|
|
syntax match omnimarkCatchName "\v\c<%(#markup-end)"
|
|
syntax match omnimarkCatchName "\v\c<%(#markup-point)"
|
|
syntax match omnimarkCatchName "\v\c<%(#markup-start)"
|
|
syntax match omnimarkCatchName "\v\c<%(#program-error)"
|
|
# }}}
|
|
# _ constant {{{
|
|
syntax keyword omnimarkConstant false
|
|
syntax keyword omnimarkConstant true
|
|
# Example: local stream u initial {unattached}
|
|
syntax keyword omnimarkConstant unattached
|
|
# }}}
|
|
# _ control structure {{{
|
|
syntax match omnimarkControlStructure "\v\c<%(#first)"
|
|
syntax match omnimarkControlStructure "\v\c<%(#group)"
|
|
syntax match omnimarkControlStructure "\v\c<%(#item)"
|
|
syntax match omnimarkControlStructure "\v\c<%(#last)"
|
|
syntax match omnimarkControlStructure "\v%(\s)?%(-\>)%(\s)?"
|
|
syntax keyword omnimarkControlStructure again
|
|
syntax keyword omnimarkControlStructure always
|
|
syntax keyword omnimarkControlStructure as
|
|
syntax keyword omnimarkControlStructure case
|
|
syntax keyword omnimarkControlStructure catch
|
|
syntax match omnimarkControlStructure "\v\c<%(do)>%(%(\s|\n)+%((markup|sgml|xml)-parse|scan|select|select-type|skip%(\s+over)?|unless|when))?"
|
|
# with id-checking and with utf-8, example:
|
|
# do sgml-parse document with id-checking false scan file "my.sgml"
|
|
syntax keyword omnimarkControlStructure id-checking
|
|
syntax keyword omnimarkControlStructure utf-8
|
|
syntax keyword omnimarkControlStructure with
|
|
syntax keyword omnimarkControlStructure done
|
|
syntax keyword omnimarkControlStructure else
|
|
syntax keyword omnimarkControlStructure exit
|
|
syntax match omnimarkControlStructure "\v\c<%(repeat)>%(\s+%(for|over%(\s+current elements)?|scan|to))?"
|
|
# Example: repeat over reversed
|
|
syntax keyword omnimarkControlStructure reversed
|
|
# Note: repeat over attribute(s) not needed - handled separately
|
|
# Note: repeat over data-attribute(s) not needed - handled separately
|
|
# Note: repeat over referents not needed - handled separately
|
|
syntax keyword omnimarkControlStructure rethrow
|
|
syntax keyword omnimarkControlStructure select
|
|
syntax keyword omnimarkControlStructure unless
|
|
syntax match omnimarkControlStructure "\v\c<%(using)%( %(%(data-)?attribute%(s)?|catch|group|input as|nested-referents|output\s+as|referents))?"
|
|
syntax keyword omnimarkControlStructure when
|
|
# }}}
|
|
# _ data type {{{
|
|
# (not a v12 heading)
|
|
syntax keyword omnimarkDataType bcd
|
|
syntax keyword omnimarkDataType counter
|
|
# db.database data type - refer omdb, below, for library functions
|
|
syntax match omnimarkDataType "\v\c<%(db)%([.])?%(database)"
|
|
syntax keyword omnimarkDataType document
|
|
syntax keyword omnimarkDataType float
|
|
syntax keyword omnimarkDataType instance
|
|
syntax match omnimarkDataType "\v\c<%(int32)"
|
|
syntax keyword omnimarkDataType integer
|
|
syntax match omnimarkDataType "\v\c<%(markup\s+sink)"
|
|
syntax match omnimarkDataType "\v\c<%(markup\s+source)"
|
|
syntax keyword omnimarkDataType pattern
|
|
syntax keyword omnimarkDataType string
|
|
syntax match omnimarkDataType "\v\c<%(string\s+sink)"
|
|
syntax match omnimarkDataType "\v\c<%(string\s+source)"
|
|
syntax keyword omnimarkDataType stream
|
|
syntax keyword omnimarkDataType string
|
|
syntax keyword omnimarkDataType subdocument
|
|
syntax keyword omnimarkDataType switch
|
|
# }}}
|
|
# _ declaration/definition {{{
|
|
syntax keyword omnimarkDeclaration constant
|
|
syntax keyword omnimarkDeclaration context-translate
|
|
syntax keyword omnimarkDeclaration created by
|
|
syntax keyword omnimarkDeclaration cross-translate
|
|
syntax keyword omnimarkDeclaration declare
|
|
syntax match omnimarkDeclaration "\v\c<%(declare)%(\s+%(data-letters|function-library|heralded-names|markup-identification))?"
|
|
# Note: declare #error, #main-input, #main-output, #process-input,
|
|
# #process-output, catch, data-letters, function-library, letters,
|
|
# name-letters, no-default-io, opaque, record
|
|
# - Those are all handed as separate keywords/matches
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+conversion-function)"
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+external)\s+%(source\s+)?%(function)"
|
|
# in function-library is part of an external function
|
|
syntax match omnimarkDeclaration "\v\c<%(in\s+function-library)"
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+external\s+output)"
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+function)"
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+\w+function)"
|
|
# Example: define integer function add (value integer x, value ...)
|
|
syntax keyword omnimarkDeclaration value
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+infix-function)"
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+overloaded\s+function)"
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+string\s+sink\s+function)"
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+string\s+source\s+function)"
|
|
# Some combinations are missed, so the general, 'define', is needed too:
|
|
syntax match omnimarkDeclaration "\v\c<%(define\s+)"
|
|
syntax keyword omnimarkDeclaration delimiter
|
|
syntax keyword omnimarkDeclaration domain-bound
|
|
syntax keyword omnimarkDeclaration down-translate
|
|
syntax keyword omnimarkDeclaration dynamic
|
|
syntax keyword omnimarkDeclaration elsewhere
|
|
syntax keyword omnimarkDeclaration escape
|
|
syntax match omnimarkDeclaration "\v\c<%(export\s+as\s+opaque)"
|
|
syntax keyword omnimarkDeclaration export
|
|
syntax keyword omnimarkDeclaration field
|
|
syntax keyword omnimarkDeclaration function
|
|
syntax keyword omnimarkDeclaration global
|
|
syntax match omnimarkDeclaration "\v\c<%(group)%(s)?"
|
|
syntax keyword omnimarkDeclaration import
|
|
syntax match omnimarkDeclaration "\v\c<%(include)%(-guard)?"
|
|
syntax match omnimarkDeclaration "\v\c<%(initial)%(-size)?"
|
|
syntax keyword omnimarkDeclaration letters
|
|
syntax keyword omnimarkDeclaration library
|
|
syntax keyword omnimarkDeclaration local
|
|
syntax match omnimarkDeclaration "\v\c<%(macro)%(-end)?"
|
|
# macros can take an arg and/or a token (or args or tokens)
|
|
syntax keyword omnimarkDeclaration arg
|
|
syntax keyword omnimarkDeclaration token
|
|
syntax keyword omnimarkDeclaration modifiable
|
|
syntax keyword omnimarkDeclaration module
|
|
syntax keyword omnimarkDeclaration name-letters
|
|
syntax match omnimarkDeclaration "\v\c<%(namecase\s+entity)"
|
|
syntax match omnimarkDeclaration "\v\c<%(namecase\s+general)"
|
|
syntax keyword omnimarkDeclaration newline
|
|
syntax keyword omnimarkDeclaration no-default-io
|
|
syntax keyword omnimarkDeclaration opaque
|
|
syntax keyword omnimarkDeclaration optional
|
|
syntax keyword omnimarkDeclaration overriding
|
|
syntax match omnimarkDeclaration "\v\c<%(prefixed\s+by)"
|
|
syntax keyword omnimarkDeclaration read-only
|
|
syntax keyword omnimarkDeclaration record
|
|
syntax keyword omnimarkDeclaration remainder
|
|
syntax keyword omnimarkDeclaration require
|
|
syntax keyword omnimarkDeclaration save
|
|
syntax keyword omnimarkDeclaration save-clear
|
|
syntax keyword omnimarkDeclaration silent-referent
|
|
syntax keyword omnimarkDeclaration size
|
|
syntax keyword omnimarkDeclaration supply
|
|
syntax keyword omnimarkDeclaration symbol
|
|
syntax keyword omnimarkDeclaration unprefixed
|
|
syntax keyword omnimarkDeclaration up-translate
|
|
syntax keyword omnimarkDeclaration use
|
|
syntax keyword omnimarkDeclaration variable
|
|
syntax keyword omnimarkDeclaration write-only
|
|
# }}}
|
|
# _ element qualifier {{{
|
|
syntax keyword omnimarkElementQualifier ancestor
|
|
syntax keyword omnimarkElementQualifier doctype
|
|
syntax keyword omnimarkElementQualifier document-element
|
|
syntax match omnimarkElementQualifier "\v\c<%(open\s+element)"
|
|
syntax keyword omnimarkElementQualifier parent
|
|
syntax keyword omnimarkElementQualifier preparent
|
|
syntax keyword omnimarkElementQualifier previous
|
|
# }}}
|
|
# _ modifier {{{
|
|
syntax match omnimarkModifier "\v\c<%(#base)"
|
|
syntax match omnimarkModifier "\v\c<%(#full)"
|
|
syntax match omnimarkModifier "\v\c<%(#xmlns)"
|
|
syntax keyword omnimarkModifier append
|
|
syntax keyword omnimarkModifier binary-input
|
|
syntax keyword omnimarkModifier binary-mode
|
|
syntax keyword omnimarkModifier binary-output
|
|
syntax keyword omnimarkModifier break-width
|
|
syntax keyword omnimarkModifier buffered
|
|
syntax match omnimarkModifier "\v\c<%(declare\s+#main-output\s+has\s+domain-free)"
|
|
syntax keyword omnimarkModifier defaulting
|
|
syntax keyword omnimarkModifier domain-free
|
|
syntax keyword omnimarkModifier notation
|
|
# of may be standalone, e.g., data-attribute colwidth of (attribute name)
|
|
syntax match omnimarkModifier "\v\c<%(of)%(\s%(ancestor|doctype|element|open element|%(pre)?parent))?"
|
|
syntax keyword omnimarkModifier referents-allowed
|
|
syntax keyword omnimarkModifier referents-displayed
|
|
syntax keyword omnimarkModifier referents-not-allowed
|
|
syntax keyword omnimarkModifier text-mode
|
|
syntax keyword omnimarkModifier unbuffered
|
|
# : (field selection operator) [not included]
|
|
# ` (keyword access character) [not included]
|
|
# }}}
|
|
# _ operator {{{
|
|
syntax keyword omnimarkOperator !
|
|
syntax keyword omnimarkOperator not
|
|
syntax keyword omnimarkOperator !=
|
|
# 'isnt equal' is handled by separate keywords
|
|
syntax keyword omnimarkOperator !==
|
|
syntax match omnimarkOperator "\%(#!\)"
|
|
syntax match omnimarkOperator "\v\c<%(#empty)"
|
|
# Example: usemap is #none:
|
|
syntax match omnimarkOperator "\v\c<%(#none)"
|
|
syntax keyword omnimarkOperator %
|
|
syntax keyword omnimarkOperator format
|
|
syntax keyword omnimarkOperator &
|
|
syntax keyword omnimarkOperator and
|
|
syntax keyword omnimarkOperator *
|
|
syntax keyword omnimarkOperator times
|
|
syntax keyword omnimarkOperator **
|
|
syntax keyword omnimarkOperator power
|
|
syntax keyword omnimarkOperator +
|
|
syntax keyword omnimarkOperator plus
|
|
syntax keyword omnimarkOperator -
|
|
syntax keyword omnimarkOperator minus
|
|
syntax keyword omnimarkOperator negate
|
|
syntax keyword omnimarkOperator /
|
|
syntax keyword omnimarkOperator divide
|
|
syntax keyword omnimarkOperator <
|
|
syntax keyword omnimarkOperator less-than
|
|
syntax keyword omnimarkOperator greater-equal
|
|
syntax keyword omnimarkOperator <=
|
|
syntax keyword omnimarkOperator less-equal
|
|
syntax keyword omnimarkOperator =
|
|
syntax keyword omnimarkOperator equal
|
|
# 'is equal' is handled by separate keywords
|
|
syntax keyword omnimarkOperator ==
|
|
syntax match omnimarkOperator "\v<[=][>]\s*"
|
|
syntax keyword omnimarkOperator >
|
|
syntax keyword omnimarkOperator greater-than
|
|
syntax keyword omnimarkOperator >=
|
|
syntax keyword omnimarkOperator greater-equal
|
|
syntax keyword omnimarkOperator abs
|
|
syntax keyword omnimarkOperator active
|
|
syntax keyword omnimarkOperator attribute
|
|
# attribute is defaulted, implied, specified: split to single keywords
|
|
# because it can be isnt too. Similarly for ancestor (is/isnt)
|
|
# with ancestor being an element qualifier.
|
|
# Tests for element attributes, e.g.:
|
|
# do when attribute myid is (id | idref | idrefs)
|
|
# cdata (already omnimarkPattern)
|
|
# name (already omnimarkOperator)
|
|
syntax keyword omnimarkAttributeType names
|
|
# number: match rather than keyword since "number of" is an operator
|
|
syntax match omnimarkAttributeType "\v\c<%(number)"
|
|
syntax keyword omnimarkAttributeType numbers
|
|
syntax keyword omnimarkAttributeType nmtoken
|
|
syntax keyword omnimarkAttributeType nmtokens
|
|
syntax keyword omnimarkAttributeType nutoken
|
|
syntax keyword omnimarkAttributeType nutokens
|
|
syntax keyword omnimarkAttributeType id
|
|
syntax keyword omnimarkAttributeType idref
|
|
syntax keyword omnimarkAttributeType idrefs
|
|
# notation (already omnimarkModifier)
|
|
# entity (already omnimarkOperator)
|
|
# entities (already omnimarkOperator)
|
|
syntax keyword omnimarkOperator base
|
|
syntax keyword omnimarkOperator binary
|
|
syntax keyword omnimarkOperator cast
|
|
syntax keyword omnimarkOperator ceiling
|
|
syntax keyword omnimarkOperator children
|
|
syntax keyword omnimarkOperator compiled-date
|
|
syntax keyword omnimarkOperator complement
|
|
syntax match omnimarkOperator "\v\c<%(content\s+of)"
|
|
syntax keyword omnimarkOperator create-attribute-declaration
|
|
syntax keyword omnimarkOperator create-element-declaration
|
|
syntax keyword omnimarkOperator create-element-event
|
|
syntax keyword omnimarkOperator create-processing-instruction-event
|
|
syntax keyword omnimarkOperator create-specified-attribute
|
|
syntax keyword omnimarkOperator create-unspecified-attribute
|
|
syntax keyword omnimarkOperator creating
|
|
syntax match omnimarkOperator "\v\c<%(creator\s+of)"
|
|
syntax keyword omnimarkOperator data-attribute
|
|
syntax keyword omnimarkOperator date
|
|
syntax match omnimarkOperator "\v\c<%(declaration\s+of)"
|
|
syntax keyword omnimarkOperator declared-elements
|
|
syntax keyword omnimarkOperator declared-general-entities
|
|
syntax keyword omnimarkOperator declared-parameter-entities
|
|
syntax keyword omnimarkOperator defaulted
|
|
syntax keyword omnimarkOperator difference
|
|
syntax match omnimarkOperator "\v\c<%(doctype\s+is)"
|
|
syntax keyword omnimarkOperator drop
|
|
syntax match omnimarkOperator "\v\c<%(element\s+is)"
|
|
syntax match omnimarkOperator "\v\c<%(elements\s+of)"
|
|
syntax match omnimarkOperator "\v\c<%(entity\s+is)"
|
|
syntax keyword omnimarkOperator except
|
|
syntax keyword omnimarkOperator exists
|
|
syntax keyword omnimarkOperator exp
|
|
syntax keyword omnimarkOperator external-function
|
|
syntax keyword omnimarkOperator file
|
|
syntax keyword omnimarkOperator floor
|
|
syntax match omnimarkOperator "\v\c<%(function-library\s+of)"
|
|
syntax keyword omnimarkOperator has
|
|
syntax keyword omnimarkOperator hasnt
|
|
# 'has'/'hasnt' (before 'key'/'^' or 'item'/'@' (other obscure things too?):
|
|
syntax keyword omnimarkOperator key
|
|
syntax match omnimarkOperator "\v[\^]"
|
|
# 'item' is addressed elsewhere - @ needs to be a match, not keyword
|
|
syntax match omnimarkOperator "\v<[@]"
|
|
syntax keyword omnimarkOperator implied
|
|
syntax keyword omnimarkOperator in-codes
|
|
syntax keyword omnimarkOperator is
|
|
syntax keyword omnimarkOperator isnt
|
|
# 'is'/'isnt' (usually before, or sometime after, e.g., 'content isnt'):
|
|
syntax keyword omnimarkOperator attached
|
|
syntax keyword omnimarkOperator buffer
|
|
syntax keyword omnimarkOperator catchable
|
|
syntax keyword omnimarkOperator cdata-entity
|
|
syntax keyword omnimarkOperator closed
|
|
syntax keyword omnimarkOperator conref
|
|
syntax keyword omnimarkOperator content
|
|
# 'content is' ... empty, any, cdata, rcdata, mixed, conref
|
|
syntax keyword omnimarkOperator default-entity
|
|
syntax keyword omnimarkOperator directory
|
|
# 'entity'/'entities', e.g., 'attribute x is (entity | entities)'
|
|
syntax match omnimarkOperator "\v\c<%(entit)%(y|ies)"
|
|
syntax keyword omnimarkOperator external
|
|
# E.g., 'open s as external-output-function' (v. buffer, etc.) '-call'?
|
|
syntax match omnimarkOperator "\v\c<%(external-output-function)%(-call)?"
|
|
syntax keyword omnimarkOperator file
|
|
syntax keyword omnimarkOperator general
|
|
syntax keyword omnimarkOperator in-library
|
|
syntax keyword omnimarkOperator internal
|
|
syntax keyword omnimarkOperator keyed
|
|
syntax keyword omnimarkOperator markup-parser
|
|
syntax keyword omnimarkOperator ndata-entity
|
|
# These are not to be confused with the omnimarkAction, 'open'
|
|
syntax match omnimarkOperator "\v\c<%(is\s+open)"
|
|
syntax match omnimarkOperator "\v\c<%(isnt\s+open)"
|
|
syntax keyword omnimarkOperator parameter
|
|
syntax keyword omnimarkOperator past
|
|
syntax keyword omnimarkOperator public
|
|
syntax keyword omnimarkOperator readable
|
|
# These are not to be confused with the omnimarkAction, 'referent'
|
|
syntax match omnimarkOperator "\v\c<%(is\s+referent)"
|
|
syntax match omnimarkOperator "\v\c<%(isnt\s+referent)"
|
|
syntax keyword omnimarkOperator sdata-entity
|
|
# Deprecated form - markup-parser is recommended
|
|
syntax keyword omnimarkOperator sgml-parser
|
|
syntax keyword omnimarkOperator subdoc-entity
|
|
syntax keyword omnimarkOperator system
|
|
syntax keyword omnimarkOperator thrown
|
|
syntax match omnimarkOperator "\v\c<%(item)%(\sof)?%(\s%(data-)?attributes)?"
|
|
syntax match omnimarkOperator "\v\c<%(key\s+of)"
|
|
# 'key of attribute'/s not needed: 'key of' and 'attribute' are separate
|
|
# 'key of data-attribute'/s not needed: 'key of' &c. are separate
|
|
# 'key of referents' not needed: 'key of' and 'referents' are separate
|
|
syntax keyword omnimarkOperator last
|
|
syntax keyword omnimarkOperator lastmost
|
|
syntax match omnimarkOperator "\v\c<%(length\s*of)"
|
|
syntax keyword omnimarkOperator literal
|
|
syntax keyword omnimarkOperator ln
|
|
syntax keyword omnimarkOperator log10
|
|
syntax keyword omnimarkOperator lookahead
|
|
# 'lookahead not' not needed: 'lookahead' and 'not' are separate
|
|
syntax keyword omnimarkOperator mask
|
|
syntax keyword omnimarkOperator matches
|
|
syntax keyword omnimarkOperator modulo
|
|
syntax match omnimarkOperator "\v\c<%(name)>%(\s+of)?%(\s+current)?%(\s+element)?"
|
|
syntax keyword omnimarkOperator named
|
|
syntax match omnimarkOperator "\v\c<%(notation\s+equals)"
|
|
syntax match omnimarkOperator "\v\c<%(number\s+of)"
|
|
# 'number of attribute'/s not needed: 'number of' and 'attribute' are separate
|
|
# 'number of current elements' is not needed: 'number of' &c. are separate
|
|
syntax match omnimarkOperator "\v\c<%(number\s+of\s+current\s+subdocuments)"
|
|
# 'number of data-attribute'/s not needed: 'number of' &c. are separate
|
|
# 'number of referents' not needed: 'number of' and 'referents' are separate
|
|
syntax keyword omnimarkOperator occurrence
|
|
syntax match omnimarkOperator "\v\c<%(open\s+element\s+is)"
|
|
syntax match omnimarkOperator "\v\c<%(parent\s+is)"
|
|
syntax match omnimarkOperator "\v\c<%(preparent\s+is)"
|
|
syntax match omnimarkOperator "\v\c<%(previous\s+is)"
|
|
syntax match omnimarkOperator "\v\c<%(public-identifier\s+of)"
|
|
syntax match omnimarkOperator "\v\c<%(referents\s+has\s+key)"
|
|
syntax match omnimarkOperator "\v\c<%(referents\s+is\s+attached)"
|
|
syntax keyword omnimarkOperator round
|
|
syntax keyword omnimarkOperator shift
|
|
syntax keyword omnimarkOperator specified
|
|
syntax keyword omnimarkOperator sqrt
|
|
# E.g., last proper? subelement _element-qualifier_ is/isnt
|
|
syntax keyword omnimarkOperator subelement
|
|
syntax keyword omnimarkOperator system-call
|
|
syntax match omnimarkOperator "\v\c<%(system-identifier\s+of)"
|
|
syntax keyword omnimarkOperator status
|
|
# E.g., 'status ... is (proper | inclusion)'
|
|
syntax keyword omnimarkOperator inclusion
|
|
syntax keyword omnimarkOperator proper
|
|
# E.g., 'last content {element-qualifier} is #DATA'
|
|
syntax match omnimarkOperator "\v\c<%(#data)"
|
|
syntax keyword omnimarkOperator take
|
|
# 'this' only appears before 'referent', so requires no standalone 'this'
|
|
syntax match omnimarkOperator "\v\c<%(this\s*referent)"
|
|
syntax keyword omnimarkOperator to
|
|
syntax keyword omnimarkOperator truncate
|
|
syntax keyword omnimarkOperator ul
|
|
syntax keyword omnimarkOperator union
|
|
syntax keyword omnimarkOperator usemap
|
|
syntax keyword omnimarkOperator valued
|
|
syntax keyword omnimarkOperator writable
|
|
syntax keyword omnimarkOperator xmlns-name
|
|
syntax match omnimarkOperator "\v%(\s)%([\\])%(\s)"
|
|
syntax match omnimarkOperator "\v%(\s)([_])%(\s)"
|
|
syntax match omnimarkOperator "\v%(\s)([\|])%(\s)"
|
|
syntax keyword omnimarkOperator or
|
|
syntax match omnimarkOperator "\v%(\s)([\|][\|])%(\s)"
|
|
syntax keyword omnimarkOperator join
|
|
syntax match omnimarkOperator "\v%(\s)([\|][\|][\*])%(\s)"
|
|
syntax keyword omnimarkOperator repeated
|
|
syntax match omnimarkOperator "\v%(\s)([~])"
|
|
# }}}
|
|
# _ pattern {{{
|
|
syntax match omnimarkPattern "\v%(\s)%(\=\|)"
|
|
syntax match omnimarkPattern "\v\c<%(any)%(\+%(\+)?|*%(*)?|\?)?"
|
|
syntax match omnimarkPattern "\v\c<%(any-text)%(\+|*|\?)?"
|
|
syntax match omnimarkPattern "\v\c<%(blank)%(\+|*|\?)?"
|
|
syntax keyword omnimarkPattern cdata
|
|
syntax keyword omnimarkPattern content-end
|
|
syntax keyword omnimarkPattern content-start
|
|
syntax match omnimarkPattern "\v\c<%(digit)%(\+|*|\?)?"
|
|
syntax keyword omnimarkPattern empty
|
|
syntax match omnimarkPattern "\v\c<%(lc)%(\+|*|\?)?"
|
|
syntax match omnimarkPattern "\v\c<%(letter)%(\+|*|\?)?"
|
|
syntax keyword omnimarkPattern line-end
|
|
syntax keyword omnimarkPattern line-start
|
|
syntax keyword omnimarkPattern mixed
|
|
syntax keyword omnimarkPattern non-cdata
|
|
syntax keyword omnimarkPattern non-sdata
|
|
syntax keyword omnimarkPattern null
|
|
syntax keyword omnimarkPattern pcdata
|
|
syntax keyword omnimarkPattern rcdata
|
|
syntax keyword omnimarkPattern sdata
|
|
syntax match omnimarkPattern "\v\c<%(space)%(\+|*|\?)?"
|
|
syntax match omnimarkPattern "\v\c<%(text)%([[:space:]\n])"
|
|
syntax match omnimarkPattern "\v\c<%(uc)%(\+|*|\?)?"
|
|
syntax keyword omnimarkPattern unanchored
|
|
syntax keyword omnimarkPattern value-end
|
|
syntax keyword omnimarkPattern value-start
|
|
syntax match omnimarkPattern "\v\c<%(white-space)%(\+|*|\?)?"
|
|
syntax keyword omnimarkPattern word-end
|
|
syntax keyword omnimarkPattern word-start
|
|
syntax match omnimarkPattern "\v%(\s)%(\|\=)"
|
|
# }}}
|
|
# _ rule {{{
|
|
syntax keyword omnimarkRule data-content
|
|
syntax keyword omnimarkRule document-end
|
|
syntax keyword omnimarkRule document-start
|
|
syntax keyword omnimarkRule document-type-declaration
|
|
syntax keyword omnimarkRule dtd-end
|
|
syntax keyword omnimarkRule dtd-start
|
|
syntax keyword omnimarkRule element
|
|
syntax keyword omnimarkRule epilog-start
|
|
syntax keyword omnimarkRule external-entity
|
|
syntax keyword omnimarkRule external-data-entity
|
|
syntax keyword omnimarkRule external-text-entity
|
|
syntax match omnimarkRule "\v\c<%(external-text-entity\s+#document)"
|
|
syntax keyword omnimarkRule find
|
|
syntax keyword omnimarkRule find-end
|
|
syntax keyword omnimarkRule find-start
|
|
syntax keyword omnimarkRule insertion-break
|
|
syntax keyword omnimarkRule invalid-data
|
|
syntax match omnimarkRule "\v\c<%(marked-section)%(\s+%(cdata|ignore|include-%(end|start)|rcdata))?"
|
|
syntax keyword omnimarkRule markup-comment
|
|
syntax keyword omnimarkRule markup-error
|
|
syntax keyword omnimarkRule process
|
|
syntax keyword omnimarkRule process-end
|
|
syntax keyword omnimarkRule processing-instruction
|
|
syntax keyword omnimarkRule process-start
|
|
syntax keyword omnimarkRule prolog-end
|
|
syntax keyword omnimarkRule prolog-in-error
|
|
syntax keyword omnimarkRule replacement-break
|
|
syntax keyword omnimarkRule sgml-comment
|
|
syntax keyword omnimarkRule sgml-declaration-end
|
|
syntax keyword omnimarkRule sgml-error
|
|
syntax keyword omnimarkRule translate
|
|
syntax keyword omnimarkRule xmlns-change
|
|
# }}}
|
|
# Libraries {{{
|
|
# ombase64
|
|
syntax match omnimarkLibrary "\v\c<%(base64[.])%([orw])%([[:print:]])+"
|
|
# ombcd
|
|
# (NB: abs, ceiling, exp, floor, ln, log10, round, sqrt, and truncate
|
|
# are all operators)
|
|
syntax match omnimarkLibrary "\v\c<%(ombcd-version)"
|
|
# ombessel
|
|
syntax match omnimarkLibrary "\v\c<%(j0|j1|jn|y0|y1|yn)"
|
|
# ombig5
|
|
syntax match omnimarkLibrary "\v\c<%(big5[.])%([orw])%([[:print:]])+"
|
|
# omblowfish and omffblowfish
|
|
syntax match omnimarkLibrary "\v\c<%(blowfish[.])%([deorsw])%(\a|-)+"
|
|
# omcgi
|
|
syntax match omnimarkLibrary "\v\c<%(cgiGet)%([EQ])\a+"
|
|
# omff8859
|
|
syntax match omnimarkLibrary "\v\c<%(iso8859[.])%([iorw])%([[:print:]])+"
|
|
# omfloat
|
|
# (NB: uses same operator names as ombcd except for the following)
|
|
syntax match omnimarkLibrary "\v\c<%(is-nan)"
|
|
syntax match omnimarkLibrary "\v\c<%(omfloat-version)"
|
|
# omdate
|
|
syntax match omnimarkLibrary "\v\c<%(add-to-ymdhms)"
|
|
syntax match omnimarkLibrary "\v\c<%(arpadate-to-ymdhms)"
|
|
syntax match omnimarkLibrary "\v\c<%(format-ymdhms)"
|
|
syntax match omnimarkLibrary "\v\c<%(now-as-ymdhms)"
|
|
syntax match omnimarkLibrary "\v\c<%(round-down-ymdhms)"
|
|
syntax match omnimarkLibrary "\v\c<%(round-up-ymdhms)"
|
|
syntax match omnimarkLibrary "\v\c<%(ymdhms-)%([adjmst])%(\a|-)+"
|
|
syntax match omnimarkLibrary "\v\c<%(ymd-weekday)"
|
|
# omdb
|
|
syntax match omnimarkLibrary "\v\c<%(db[.])%([acdefimopqrstuw])%(\a|-|1)+"
|
|
# omffeuc
|
|
syntax match omnimarkLibrary "\v\c<%(euc[.])%([orw])%(\a|-)+"
|
|
# omffjis
|
|
syntax match omnimarkLibrary "\v\c<%(jis[.])%([orw])%(\a|-)+"
|
|
# omffutf16 and omffutf32
|
|
syntax match omnimarklibrary "\v\c<%(utf)%(16|32)%([.])%([orw])%(\a|-)+"
|
|
# omfloat
|
|
syntax match omnimarklibrary "\v\C<%(FP_)%([a-z])+\d?"
|
|
# omfsys
|
|
syntax match omnimarkLibrary "\v\C<%(FS_)%([CDGLMR])\a+"
|
|
# omftp
|
|
syntax match omnimarkLibrary "\v\c<%(FTP)%([CIL])\a+"
|
|
# omhttp
|
|
syntax match omnimarkLibrary "\v\c<%(Http)%([CORS])\a+"
|
|
# omiobuf
|
|
syntax match omnimarkLibrary "\v\c<%(iobuf[.])%([brw])\a+"
|
|
# omldap
|
|
syntax match omnimarkLibrary "\v\c<%(ldap[.])%([acdemnors])%(\a|-)+"
|
|
# omprocess
|
|
syntax match omnimarkLibrary "\v\c<%(command-line)"
|
|
syntax match omnimarkLibrary "\v\c<%(executable-name)"
|
|
syntax match omnimarkLibrary "\v\c<%(execute)"
|
|
syntax match omnimarkLibrary "\v\c<%(glob)"
|
|
syntax match omnimarkLibrary "\v\c<%(omprocess-version)"
|
|
# omrandom
|
|
syntax match omnimarkLibrary "\v\c<%(random[.])%([eosu])%(\a|-)+"
|
|
# omunicode
|
|
syntax match omnimarkLibrary "\v\c<%(unicode[.])%([bgo])%(\a|-)+"
|
|
# omutf8
|
|
syntax match omnimarkLibrary "\v\c<%(utf8[.])%([bceilmos])%(\a|8|-)+"
|
|
# omioe/omfio
|
|
syntax match omnimarkLibrary "\v\c<%(get-exception-status)"
|
|
syntax match omnimarkLibrary "\v\c<%(io-exception-text)"
|
|
syntax match omnimarkLibrary "\v\c<%(new-io-exception)"
|
|
syntax match omnimarkLibrary "\v\c<%(set-voluntary-end-exception)"
|
|
syntax match omnimarkLibrary "\v\c<%(%(Big5|euc|jis|sjis|utf16)%(-))?%(%(in|out)put-file)"
|
|
# omioprotocol
|
|
syntax match omnimarkLibrary "\v\c<%(IOProtocol)%([EILMS])\a+"
|
|
# ommail
|
|
syntax match omnimarkLibrary "\v\c<%(Mail)%([ILO]\a+)"
|
|
# omtrig
|
|
syntax match omnimarkLibrary "\v\c<%(a)?%(cos%(h)?|sin%(h)?|tan%(h|2)?|hypot)"
|
|
# omnetutl
|
|
syntax match omnimarkLibrary "\v\c<%(from-net-long)"
|
|
syntax match omnimarkLibrary "\v\c<%(net-long)"
|
|
syntax match omnimarkLibrary "\v\c<%(NET)%([GIL]\a+)"
|
|
syntax match omnimarkLibrary "\v\c<%(to-net-long)"
|
|
# omnetutil
|
|
syntax match omnimarkLibrary "\v\c<%(netutil[.])%([fhnot]%(\a|3|2|-)+)"
|
|
# omoci
|
|
syntax match omnimarkLibrary "\v\c<%(OCI_)%([GLoS]\a+)"
|
|
# omodbc
|
|
syntax match omnimarkLibrary "\v\c<%(SQL)%([_])?%([ABCDEFGLMNPRST][[:alpha:]]+)"
|
|
# omsocat
|
|
syntax match omnimarkLibrary "\v\c<%(socat-[clr-])%([[:alpha:]]+)"
|
|
# omsort
|
|
syntax match omnimarkLibrary "\v\c<%(sort[.][os])%(\a|-)+"
|
|
# omutil
|
|
syntax match omnimarkLibrary "\v\c<%(UTIL[_.][EGLmopRSU])%(\a|-)+"
|
|
# omvfs
|
|
syntax match omnimarkLibrary "\v\c<%(vfs[.][cdflmorstuw])%(\a|-)+"
|
|
# tcp
|
|
syntax match omnimarkLibrary "\v\c<%(TCP)%([.])?%([acdegilmoprstw][[:alpha:]-]+)"
|
|
# uri
|
|
syntax match omnimarkLibrary "\v\c<%(uri[.])%([ceopr])%(\a|-)+"
|
|
# wsb
|
|
syntax match omnimarkLibrary "\v\c<%(wsb[.])%([acdfhrsw])%(\a|-)+"
|
|
# }}}
|
|
# Comments {{{
|
|
# -------
|
|
syntax region omnimarkComment start=";" end="$"
|
|
# }}}
|
|
# Strings and format-modifiers {{{
|
|
syntax region omnimarkString matchgroup=Normal start=+'+ end=+'+ skip=+%'+ contains=omnimarkEscape
|
|
syntax region omnimarkString matchgroup=Normal start=+"+ end=+"+ skip=+%"+ contains=omnimarkEscape
|
|
# This handles format items inside strings:
|
|
# NB: escape _quoted-character_ allows a new character to be used to
|
|
# indicate a special character or a format item, rather than the normal %.
|
|
# The use of escape is deprecated in general, because it leads to
|
|
# non-standard OmniMark code that can be difficult to understand. It has
|
|
# not be handled here as it would be almost impossible to do so.
|
|
# dynamic: %a %b %d %g %i %p %q %v %x %w %y
|
|
# a - integer data type formatting
|
|
# b - integer data type formatting
|
|
# c - parsed data formatting
|
|
# d - integer data type formatting, BCD data type formatting
|
|
# g - string data formatting
|
|
# i - integer data type formatting
|
|
# p - parsed data formatting
|
|
# q - parsed data formatting
|
|
# v - parsed data formatting
|
|
# x - deprecated format command used instead of g
|
|
# y - symbol declaration
|
|
# @ - macro arguments
|
|
# static: %% %_ %n %t %# %) %" %' %/ %[ %] %@%%
|
|
# %% - insert an explicit percent sign
|
|
# %_ - insert an explicit space character
|
|
# %n - insert an explicit newline character
|
|
# %t - insert an explicit tab character
|
|
# %0# through to %255# - insert an explicit byte with given value
|
|
# %{...}—a sequence of characters, e.g., %16r{0d, 0a}
|
|
# %#—insert an explicit octothorpe character (#)
|
|
# %)—insert an explicit closing parenthesis
|
|
# %"—insert an explicit double quote character
|
|
# %'—insert an explicit single quote character
|
|
# %/—indicates a point where line breaking can occur
|
|
# %[ and %]—protect the delimited text from line breaking
|
|
# %@%—insert an explicit percent sign inside a macro expansion
|
|
# % format-modifier a
|
|
syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f))?%(j|k|l|u|w)*)?a)=
|
|
# % format-modifier b
|
|
syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f))?%(\d)?)?b)=
|
|
# % format-modifier c
|
|
syntax match omnimarkEscape contained =\v\C%(%(\%%(h|l|u|s|z)*c))=
|
|
# % format-modifier d
|
|
syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f|r|s)?)*%(j|k|l|u|z)*)?d)=
|
|
# % format-modifier g
|
|
syntax match omnimarkEscape contained =\v\C%(\%%(%(%(\d)*%(f|r|s)?)*%(j|k|l|u|z)*)?g)=
|
|
# % format-modifier
|
|
syntax match omnimarkEscape contained =\v\C%(%(\%[abdgipqvxwy%_nt#)"'/\[\]])|%(\%\@\%)|%(\%\d+#)|\%%(\d+r[{]%([0-9A-z, ]+)}))+=
|
|
# }}}
|
|
# Number {{{
|
|
syntax match omnimarkNumber "\v([[:alpha:]]+)@<![-]?\d+([.]\d+)?"
|
|
# }}}
|
|
# Define default highlighting {{{
|
|
highlight default link omnimarkAction Statement
|
|
highlight default link omnimarkAttributeType Structure
|
|
highlight default link omnimarkDataType Type
|
|
highlight default link omnimarkBuiltinEntity Identifier
|
|
highlight default link omnimarkBuiltinShelf Identifier
|
|
highlight default link omnimarkCatchName Exception
|
|
highlight default link omnimarkConstant Constant
|
|
highlight default link omnimarkControlStructure Conditional
|
|
highlight default link omnimarkDeclaration Keyword
|
|
highlight default link omnimarkElementQualifier Type
|
|
highlight default link omnimarkLibrary Function
|
|
highlight default link omnimarkModifier Keyword
|
|
highlight default link omnimarkOperator Operator
|
|
highlight default link omnimarkPattern Label
|
|
highlight default link omnimarkRule Keyword
|
|
highlight default link omnimarkString String
|
|
highlight default link omnimarkNumber Number
|
|
highlight default link omnimarkComment Comment
|
|
highlight default link omnimarkEscape Special
|
|
highlight default link omnimarkNormal Statement
|
|
# }}}
|
|
syntax sync fromstart
|
|
b:current_syntax = "omnimark"
|
|
# vim: cc=+1 et fdm=marker ft=vim sta sw=2 ts=8 tw=79
|