#
# TypeScript syntax highlighting
# for MC Editor/CoolEdit
#
# Author: Oleksandr Sidko <mortiy@gmail.com>
# Based on js.syntax
#
context default
#=========================
# Keywords
keyword whole abstract color19
keyword whole arguments color19
keyword whole as color19
keyword whole break color19
keyword whole caller color19
keyword whole case color19
keyword whole catch color19
keyword whole class color19
keyword whole const color19
keyword whole constructor color19
keyword whole continue color19
keyword whole declare color19
keyword whole else color19
keyword whole enum color19
keyword whole extends color19
keyword whole export color19
keyword whole default color19
keyword whole delete color19
keyword whole for color19
keyword whole from color19
keyword whole function color19
keyword whole get color19
keyword whole if color19
keyword whole import color19
keyword whole implements color19
keyword whole in color19
keyword whole instanceof color19
keyword whole interface color19
keyword whole let color19
keyword whole module color19
keyword whole namespace color19
keyword whole new color19
keyword whole of color19
keyword whole private color19
keyword whole protected color19
keyword whole prototype color19
keyword whole public color19
keyword whole readonly color19
keyword whole return color19
keyword whole set color19
keyword whole static color19
keyword whole switch color19
keyword whole this color19
keyword whole throw color19
keyword whole try color19
keyword whole typeof color19
keyword whole var color19
keyword whole while color19
keyword whole with color19
keyword whole yield color19
#=========================
# Basic Types
keyword whole string color26
keyword whole number color26
keyword whole boolean color26
keyword whole any color26
keyword whole void color26
keyword whole T color26
#=========================
# Objects
keyword whole ActiveXObject color19
keyword whole Array color19
keyword whole Boolean color19
keyword whole Date color19
keyword whole Dictionary color19
keyword whole Enumerator color19
keyword whole FileSystemObject color19
keyword whole Function color19
keyword whole Global color19
keyword whole Image color19
keyword whole Math color19
keyword whole Map color19
keyword whole Number color19
keyword whole Object color19
keyword whole Promise color19
keyword whole Proxy color19
keyword whole Reflect color19
keyword whole Set color19
keyword whole String color19
keyword whole Symbol color19
keyword whole TextStream color19
keyword whole RegExp color19
keyword whole VBArray color19
keyword whole WeakMap color19
keyword whole WeakSet color19
#=========================
# Most common functions
keyword whole alert color19
keyword whole escape color19
keyword whole eval color19
keyword whole indexOf color19
keyword whole isNaN color19
keyword whole toString color19
keyword whole unescape color19
keyword whole valueOf color19
#=========================
# Constants
keyword whole false color88
keyword whole null color88
keyword whole true color88
keyword whole undefined color19
#=========================
# Comments
keyword /\* color30
keyword \*/ color30
keyword // color30
#=========================
# Numbers
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.
keyword whole 0\{xX\}\{0123456789abcdefABCDEF\}\[0123456789abcdefABCDEF\] color88
keyword whole \{0123456789\}\[0123456789\] color88
keyword whole \[0123456789\]\.\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\.\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\{eE\}\{\-\+\}\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\.\{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\.\{0123456789\}\[0123456789\]\{eE\}\{\-\+\}\{0123456789\}\[0123456789\] color88
#=========================
# Special symbols
keyword <+> color26
keyword => color17
keyword \. color19
keyword \* color19
keyword \+ color19
keyword - color19
keyword / color19
keyword % color19
keyword = color19
keyword ! color19
keyword & color19
keyword | color19
keyword ^ color19
keyword ~ color19
keyword > color19
keyword < color19
keyword wholeright @+ color26
#=========================
# Separators
keyword { color17
keyword } color17
keyword ( color17
keyword ) color17
keyword [ color17
keyword ] color17
keyword , color17
keyword ? color17
keyword : color17
keyword ; color90
# Function return type
context exclusive wholeright ): \n color26
keyword ; color90
keyword { color17
#=============================
# Comments
context exclusive /\* \*/ color30
spellcheck
keyword whole BUG color196
keyword whole FixMe color196
keyword whole FIXME color196
keyword whole Note color196
keyword whole NOTE color196
keyword whole ToDo color196
keyword whole TODO color196
keyword !!\[!\] color196
keyword ??\[?\] color196
context exclusive // \n color30
spellcheck
keyword whole BUG color196
keyword whole FixMe color196
keyword whole FIXME color196
keyword whole Note color196
keyword whole NOTE color196
keyword whole ToDo color196
keyword whole TODO color196
keyword !!\[!\] color196
keyword ??\[?\] color196
#=============================
# Strings
context " " color28
spellcheck
keyword \\\{\\'"abtnvfr\} color88
keyword \\\{0123\}\{01234567\}\{01234567\} color88
keyword ' color88
context ' ' color28
spellcheck
keyword \\\{\\'"abtnvfr\} color88
keyword \\\{0123\}\{01234567\}\{01234567\} color88
keyword " color88
context ` ` color28
spellcheck
keyword \\\{\\'"abtnvfr\} color88
keyword \\\{0123\}\{01234567\}\{01234567\} color88
keyword ${*} color19