# YAML syntax highlighting

# Reference:
#   https://en.wikipedia.org/wiki/YAML
#   http://yaml.org/refcard.html

context default
    spellcheck
    keyword #*\n brown
    keyword {{*}} brightred
    keyword linestart --- brightcyan
    keyword linestart \[\s\]-\s brightcyan
    # "YAML requires that colons and commas used as list separators be followed by a space [...]"
    keyword ,\{\s\n\} brightcyan
    keyword , red
    # Below, we can get by with just "*:\{\s\n\}", but we prefer to restrict the
    # key names in order not to grab too much (e.g., "{one: 1, two: 2}", "one: 1  # possibilities: 1 or 2").
    keyword \{0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\}\[\s-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]:\{\s\n\} yellow
    keyword [ brightcyan
    keyword ] brightcyan
    keyword { brightcyan
    keyword } brightcyan
    keyword whole true brightmagenta
    keyword whole false brightmagenta
    keyword whole null brightmagenta

context " " green
    spellcheck
    keyword {{*}} brightred
    keyword \\" brightgreen
    keyword \\\\ brightgreen
    keyword \\\{xuU\}\[0123456789\] brightgreen
    keyword \\\{0abfnrtve_NLP\} brightgreen

context ' ' green
    spellcheck
    keyword {{*}} brightred

# The last word below may be: "\n*:\{\s\n\}", but used strict version suitable for more cases
context exclusive |\[123456789\+\-\s\t\]\n \n\n\[\s-\]\[-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]:\{\s\n\} brown
context exclusive >\[123456789\+\-\s\t\]\n \n\n\[\s-\]\[-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]:\{\s\n\} brown
