109c6f265SBram Moolenaar" Vim syntax file
209c6f265SBram Moolenaar" Language:     TypeScript and TypeScriptReact
391359014SBram Moolenaar" Maintainer:   Bram Moolenaar, Herrington Darkholme
4*6e649224SBram Moolenaar" Last Change:	2021 Sep 22
509c6f265SBram Moolenaar" Based On:     Herrington Darkholme's yats.vim
609c6f265SBram Moolenaar" Changes:      See https:github.com/HerringtonDarkholme/yats.vim
709c6f265SBram Moolenaar" Credits:      See yats.vim on github
809c6f265SBram Moolenaar
909c6f265SBram Moolenaarif &cpo =~ 'C'
1009c6f265SBram Moolenaar  let s:cpo_save = &cpo
1109c6f265SBram Moolenaar  set cpo&vim
1209c6f265SBram Moolenaarendif
1309c6f265SBram Moolenaar
1409c6f265SBram Moolenaar
1509c6f265SBram Moolenaar" NOTE: this results in accurate highlighting, but can be slow.
1609c6f265SBram Moolenaarsyntax sync fromstart
1709c6f265SBram Moolenaar
1809c6f265SBram Moolenaar"Dollar sign is permitted anywhere in an identifier
1909c6f265SBram Moolenaarsetlocal iskeyword-=$
2091359014SBram Moolenaarif main_syntax == 'typescript' || main_syntax == 'typescriptreact'
2109c6f265SBram Moolenaar  setlocal iskeyword+=$
2209c6f265SBram Moolenaar  " syntax cluster htmlJavaScript                 contains=TOP
2309c6f265SBram Moolenaarendif
243132cdddSBram Moolenaar" For private field added from TypeScript 3.8
253132cdddSBram Moolenaarsetlocal iskeyword+=#
2609c6f265SBram Moolenaar
2709c6f265SBram Moolenaar" lowest priority on least used feature
2809c6f265SBram Moolenaarsyntax match   typescriptLabel                /[a-zA-Z_$]\k*:/he=e-1 contains=typescriptReserved nextgroup=@typescriptStatement skipwhite skipempty
2909c6f265SBram Moolenaar
3009c6f265SBram Moolenaar" other keywords like return,case,yield uses containedin
3109c6f265SBram Moolenaarsyntax region  typescriptBlock                 matchgroup=typescriptBraces start=/{/ end=/}/ contains=@typescriptStatement,@typescriptComments fold
3209c6f265SBram Moolenaarsyntax cluster afterIdentifier contains=
3309c6f265SBram Moolenaar  \ typescriptDotNotation,
3409c6f265SBram Moolenaar  \ typescriptFuncCallArg,
3509c6f265SBram Moolenaar  \ typescriptTemplate,
3609c6f265SBram Moolenaar  \ typescriptIndexExpr,
3709c6f265SBram Moolenaar  \ @typescriptSymbols,
3809c6f265SBram Moolenaar  \ typescriptTypeArguments
3909c6f265SBram Moolenaar
4009c6f265SBram Moolenaarsyntax match   typescriptIdentifierName        /\<\K\k*/
4109c6f265SBram Moolenaar  \ nextgroup=@afterIdentifier
4209c6f265SBram Moolenaar  \ transparent
4309c6f265SBram Moolenaar  \ contains=@_semantic
4409c6f265SBram Moolenaar  \ skipnl skipwhite
4509c6f265SBram Moolenaar
4609c6f265SBram Moolenaarsyntax match   typescriptProp contained /\K\k*!\?/
4709c6f265SBram Moolenaar  \ transparent
4809c6f265SBram Moolenaar  \ contains=@props
4909c6f265SBram Moolenaar  \ nextgroup=@afterIdentifier
5009c6f265SBram Moolenaar  \ skipwhite skipempty
5109c6f265SBram Moolenaar
5209c6f265SBram Moolenaarsyntax region  typescriptIndexExpr      contained matchgroup=typescriptProperty start=/\[/rs=s+1 end=/]/he=e-1 contains=@typescriptValue nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty
5309c6f265SBram Moolenaar
5491359014SBram Moolenaarsyntax match   typescriptDotNotation           /\.\|?\.\|!\./ nextgroup=typescriptProp skipnl
5509c6f265SBram Moolenaarsyntax match   typescriptDotStyleNotation      /\.style\./ nextgroup=typescriptDOMStyle transparent
5609c6f265SBram Moolenaar" syntax match   typescriptFuncCall              contained /[a-zA-Z]\k*\ze(/ nextgroup=typescriptFuncCallArg
5709c6f265SBram Moolenaarsyntax region  typescriptParenExp              matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptComments,@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols skipwhite skipempty
5809c6f265SBram Moolenaarsyntax region  typescriptFuncCallArg           contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptValue,@typescriptComments nextgroup=@typescriptSymbols,typescriptDotNotation skipwhite skipempty skipnl
5909c6f265SBram Moolenaarsyntax region  typescriptEventFuncCallArg      contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptEventExpression
6009c6f265SBram Moolenaarsyntax region  typescriptEventString           contained start=/\z(["']\)/  skip=/\\\\\|\\\z1\|\\\n/  end=/\z1\|$/ contains=typescriptASCII,@events
6109c6f265SBram Moolenaar
623132cdddSBram Moolenaarsyntax region  typescriptDestructureString
633132cdddSBram Moolenaar  \ start=/\z(["']\)/  skip=/\\\\\|\\\z1\|\\\n/  end=/\z1\|$/
643132cdddSBram Moolenaar  \ contains=typescriptASCII
653132cdddSBram Moolenaar  \ nextgroup=typescriptDestructureAs
663132cdddSBram Moolenaar  \ contained skipwhite skipempty
673132cdddSBram Moolenaar
683132cdddSBram Moolenaarsyntax cluster typescriptVariableDeclarations
693132cdddSBram Moolenaar  \ contains=typescriptVariableDeclaration,@typescriptDestructures
703132cdddSBram Moolenaar
713132cdddSBram Moolenaarsyntax match typescriptVariableDeclaration /[A-Za-z_$]\k*/
723132cdddSBram Moolenaar  \ nextgroup=typescriptTypeAnnotation,typescriptAssign
733132cdddSBram Moolenaar  \ contained skipwhite skipempty
743132cdddSBram Moolenaar
753132cdddSBram Moolenaarsyntax cluster typescriptDestructureVariables contains=
763132cdddSBram Moolenaar  \ typescriptRestOrSpread,
773132cdddSBram Moolenaar  \ typescriptDestructureComma,
783132cdddSBram Moolenaar  \ typescriptDestructureLabel,
793132cdddSBram Moolenaar  \ typescriptDestructureVariable,
803132cdddSBram Moolenaar  \ @typescriptDestructures
813132cdddSBram Moolenaar
823132cdddSBram Moolenaarsyntax match typescriptDestructureVariable    /[A-Za-z_$]\k*/ contained
833132cdddSBram Moolenaar  \ nextgroup=typescriptDefaultParam
843132cdddSBram Moolenaar  \ contained skipwhite skipempty
853132cdddSBram Moolenaar
863132cdddSBram Moolenaarsyntax match typescriptDestructureLabel       /[A-Za-z_$]\k*\ze\_s*:/
873132cdddSBram Moolenaar  \ nextgroup=typescriptDestructureAs
883132cdddSBram Moolenaar  \ contained skipwhite skipempty
893132cdddSBram Moolenaar
903132cdddSBram Moolenaarsyntax match typescriptDestructureAs /:/
913132cdddSBram Moolenaar  \ nextgroup=typescriptDestructureVariable,@typescriptDestructures
923132cdddSBram Moolenaar  \ contained skipwhite skipempty
933132cdddSBram Moolenaar
943132cdddSBram Moolenaarsyntax match typescriptDestructureComma /,/ contained
953132cdddSBram Moolenaar
963132cdddSBram Moolenaarsyntax cluster typescriptDestructures contains=
973132cdddSBram Moolenaar  \ typescriptArrayDestructure,
983132cdddSBram Moolenaar  \ typescriptObjectDestructure
993132cdddSBram Moolenaar
1003132cdddSBram Moolenaarsyntax region typescriptArrayDestructure matchgroup=typescriptBraces
1013132cdddSBram Moolenaar  \ start=/\[/ end=/]/
1023132cdddSBram Moolenaar  \ contains=@typescriptDestructureVariables,@typescriptComments
1033132cdddSBram Moolenaar  \ nextgroup=typescriptTypeAnnotation,typescriptAssign
1043132cdddSBram Moolenaar  \ transparent contained skipwhite skipempty fold
1053132cdddSBram Moolenaar
1063132cdddSBram Moolenaarsyntax region typescriptObjectDestructure matchgroup=typescriptBraces
1073132cdddSBram Moolenaar  \ start=/{/ end=/}/
1083132cdddSBram Moolenaar  \ contains=typescriptDestructureString,@typescriptDestructureVariables,@typescriptComments
1093132cdddSBram Moolenaar  \ nextgroup=typescriptTypeAnnotation,typescriptAssign
1103132cdddSBram Moolenaar  \ transparent contained skipwhite skipempty fold
1113132cdddSBram Moolenaar
11209c6f265SBram Moolenaar"Syntax in the JavaScript code
11309c6f265SBram Moolenaar
11409c6f265SBram Moolenaar" String
11509c6f265SBram Moolenaarsyntax match   typescriptASCII                 contained /\\\d\d\d/
11609c6f265SBram Moolenaar
11709c6f265SBram Moolenaarsyntax region  typescriptTemplateSubstitution matchgroup=typescriptTemplateSB
11809c6f265SBram Moolenaar  \ start=/\${/ end=/}/
11909c6f265SBram Moolenaar  \ contains=@typescriptValue
12009c6f265SBram Moolenaar  \ contained
12109c6f265SBram Moolenaar
12209c6f265SBram Moolenaar
12309c6f265SBram Moolenaarsyntax region  typescriptString
12409c6f265SBram Moolenaar  \ start=+\z(["']\)+  skip=+\\\%(\z1\|$\)+  end=+\z1+ end=+$+
12509c6f265SBram Moolenaar  \ contains=typescriptSpecial,@Spell
12609c6f265SBram Moolenaar  \ extend
12709c6f265SBram Moolenaar
1283132cdddSBram Moolenaarsyntax match   typescriptSpecial            contained "\v\\%(x\x\x|u%(\x{4}|\{\x{1,6}})|c\u|.)"
12909c6f265SBram Moolenaar
13009c6f265SBram Moolenaar" From vim runtime
13109c6f265SBram Moolenaar" <https://github.com/vim/vim/blob/master/runtime/syntax/javascript.vim#L48>
1323132cdddSBram Moolenaarsyntax region  typescriptRegexpString          start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuy]\{0,5\}\s*$+ end=+/[gimuy]\{0,5\}\s*[;.,)\]}:]+me=e-1 nextgroup=typescriptDotNotation oneline
13309c6f265SBram Moolenaar
13409c6f265SBram Moolenaarsyntax region  typescriptTemplate
13509c6f265SBram Moolenaar  \ start=/`/  skip=/\\\\\|\\`\|\n/  end=/`\|$/
1363132cdddSBram Moolenaar  \ contains=typescriptTemplateSubstitution,typescriptSpecial,@Spell
13709c6f265SBram Moolenaar  \ nextgroup=@typescriptSymbols
13809c6f265SBram Moolenaar  \ skipwhite skipempty
13909c6f265SBram Moolenaar
14009c6f265SBram Moolenaar"Array
14109c6f265SBram Moolenaarsyntax region  typescriptArray matchgroup=typescriptBraces
14209c6f265SBram Moolenaar  \ start=/\[/ end=/]/
14309c6f265SBram Moolenaar  \ contains=@typescriptValue,@typescriptComments
14409c6f265SBram Moolenaar  \ nextgroup=@typescriptSymbols,typescriptDotNotation
14509c6f265SBram Moolenaar  \ skipwhite skipempty fold
14609c6f265SBram Moolenaar
14709c6f265SBram Moolenaar" Number
14809c6f265SBram Moolenaarsyntax match typescriptNumber /\<0[bB][01][01_]*\>/        nextgroup=@typescriptSymbols skipwhite skipempty
14909c6f265SBram Moolenaarsyntax match typescriptNumber /\<0[oO][0-7][0-7_]*\>/       nextgroup=@typescriptSymbols skipwhite skipempty
15009c6f265SBram Moolenaarsyntax match typescriptNumber /\<0[xX][0-9a-fA-F][0-9a-fA-F_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
1513132cdddSBram Moolenaarsyntax match typescriptNumber /\<\%(\d[0-9_]*\%(\.\d[0-9_]*\)\=\|\.\d[0-9_]*\)\%([eE][+-]\=\d[0-9_]*\)\=\>/
1523132cdddSBram Moolenaar  \ nextgroup=typescriptSymbols skipwhite skipempty
15309c6f265SBram Moolenaar
15409c6f265SBram Moolenaarsyntax region  typescriptObjectLiteral         matchgroup=typescriptBraces
15509c6f265SBram Moolenaar  \ start=/{/ end=/}/
1563132cdddSBram Moolenaar  \ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName,typescriptObjectAsyncKeyword
15709c6f265SBram Moolenaar  \ fold contained
15809c6f265SBram Moolenaar
1593132cdddSBram Moolenaarsyntax keyword typescriptObjectAsyncKeyword async contained
1603132cdddSBram Moolenaar
16109c6f265SBram Moolenaarsyntax match   typescriptObjectLabel  contained /\k\+\_s*/
16209c6f265SBram Moolenaar  \ nextgroup=typescriptObjectColon,@typescriptCallImpl
16309c6f265SBram Moolenaar  \ skipwhite skipempty
16409c6f265SBram Moolenaar
16509c6f265SBram Moolenaarsyntax region  typescriptStringProperty   contained
16609c6f265SBram Moolenaar  \ start=/\z(["']\)/  skip=/\\\\\|\\\z1\|\\\n/  end=/\z1/
16709c6f265SBram Moolenaar  \ nextgroup=typescriptObjectColon,@typescriptCallImpl
16809c6f265SBram Moolenaar  \ skipwhite skipempty
16909c6f265SBram Moolenaar
17009c6f265SBram Moolenaar" syntax region  typescriptPropertyName    contained start=/\z(["']\)/  skip=/\\\\\|\\\z1\|\\\n/  end=/\z1(/me=e-1 nextgroup=@typescriptCallSignature skipwhite skipempty oneline
17109c6f265SBram Moolenaarsyntax region  typescriptComputedPropertyName  contained matchgroup=typescriptBraces
17209c6f265SBram Moolenaar  \ start=/\[/rs=s+1 end=/]/
17309c6f265SBram Moolenaar  \ contains=@typescriptValue
17409c6f265SBram Moolenaar  \ nextgroup=typescriptObjectColon,@typescriptCallImpl
17509c6f265SBram Moolenaar  \ skipwhite skipempty
17609c6f265SBram Moolenaar
17709c6f265SBram Moolenaar" syntax region  typescriptComputedPropertyName  contained matchgroup=typescriptPropertyName start=/\[/rs=s+1 end=/]\_s*:/he=e-1 contains=@typescriptValue nextgroup=@typescriptValue skipwhite skipempty
17809c6f265SBram Moolenaar" syntax region  typescriptComputedPropertyName  contained matchgroup=typescriptPropertyName start=/\[/rs=s+1 end=/]\_s*(/me=e-1 contains=@typescriptValue nextgroup=@typescriptCallSignature skipwhite skipempty
17909c6f265SBram Moolenaar" Value for object, statement for label statement
18009c6f265SBram Moolenaarsyntax match typescriptRestOrSpread /\.\.\./ contained
18109c6f265SBram Moolenaarsyntax match typescriptObjectSpread /\.\.\./ contained containedin=typescriptObjectLiteral,typescriptArray nextgroup=@typescriptValue
18209c6f265SBram Moolenaar
18309c6f265SBram Moolenaarsyntax match typescriptObjectColon contained /:/ nextgroup=@typescriptValue skipwhite skipempty
18409c6f265SBram Moolenaar
18509c6f265SBram Moolenaar" + - ^ ~
18609c6f265SBram Moolenaarsyntax match typescriptUnaryOp /[+\-~!]/
18709c6f265SBram Moolenaar \ nextgroup=@typescriptValue
18809c6f265SBram Moolenaar \ skipwhite
18909c6f265SBram Moolenaar
19091359014SBram Moolenaarsyntax region typescriptTernary matchgroup=typescriptTernaryOp start=/?[.?]\@!/ end=/:/ contained contains=@typescriptValue,@typescriptComments nextgroup=@typescriptValue skipwhite skipempty
19109c6f265SBram Moolenaar
19209c6f265SBram Moolenaarsyntax match   typescriptAssign  /=/ nextgroup=@typescriptValue
19309c6f265SBram Moolenaar  \ skipwhite skipempty
19409c6f265SBram Moolenaar
19509c6f265SBram Moolenaar" 2: ==, ===
19609c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained /===\?/ nextgroup=@typescriptValue skipwhite skipempty
19709c6f265SBram Moolenaar" 6: >>>=, >>>, >>=, >>, >=, >
19809c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained />\(>>=\|>>\|>=\|>\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
19909c6f265SBram Moolenaar" 4: <<=, <<, <=, <
20009c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained /<\(<=\|<\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
2013132cdddSBram Moolenaar" 3: ||, |=, |, ||=
2023132cdddSBram Moolenaarsyntax match   typescriptBinaryOp contained /||\?=\?/ nextgroup=@typescriptValue skipwhite skipempty
2033132cdddSBram Moolenaar" 4: &&, &=, &, &&=
2043132cdddSBram Moolenaarsyntax match   typescriptBinaryOp contained /&&\?=\?/ nextgroup=@typescriptValue skipwhite skipempty
2053132cdddSBram Moolenaar" 2: ??, ??=
2063132cdddSBram Moolenaarsyntax match   typescriptBinaryOp contained /??=\?/ nextgroup=@typescriptValue skipwhite skipempty
20709c6f265SBram Moolenaar" 2: *=, *
20809c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained /\*=\?/ nextgroup=@typescriptValue skipwhite skipempty
20909c6f265SBram Moolenaar" 2: %=, %
21009c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained /%=\?/ nextgroup=@typescriptValue skipwhite skipempty
21109c6f265SBram Moolenaar" 2: /=, /
21209c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained +/\(=\|[^\*/]\@=\)+ nextgroup=@typescriptValue skipwhite skipempty
21309c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained /!==\?/ nextgroup=@typescriptValue skipwhite skipempty
21409c6f265SBram Moolenaar" 2: !=, !==
21509c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained /+\(+\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
21609c6f265SBram Moolenaar" 3: +, ++, +=
21709c6f265SBram Moolenaarsyntax match   typescriptBinaryOp contained /-\(-\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
21809c6f265SBram Moolenaar" 3: -, --, -=
21909c6f265SBram Moolenaar
22009c6f265SBram Moolenaar" exponentiation operator
22109c6f265SBram Moolenaar" 2: **, **=
22209c6f265SBram Moolenaarsyntax match typescriptBinaryOp contained /\*\*=\?/ nextgroup=@typescriptValue
22309c6f265SBram Moolenaar
22409c6f265SBram Moolenaarsyntax cluster typescriptSymbols               contains=typescriptBinaryOp,typescriptKeywordOp,typescriptTernary,typescriptAssign,typescriptCastKeyword
22509c6f265SBram Moolenaar
22691359014SBram Moolenaar" runtime syntax/basic/reserved.vim
22709c6f265SBram Moolenaar"Import
2283132cdddSBram Moolenaarsyntax keyword typescriptImport                from as
2293132cdddSBram Moolenaarsyntax keyword typescriptImport                import
2303132cdddSBram Moolenaar  \ nextgroup=typescriptImportType
2313132cdddSBram Moolenaar  \ skipwhite
2323132cdddSBram Moolenaarsyntax keyword typescriptImportType            type
2333132cdddSBram Moolenaar  \ contained
23409c6f265SBram Moolenaarsyntax keyword typescriptExport                export
2353132cdddSBram Moolenaar  \ nextgroup=typescriptExportType
2363132cdddSBram Moolenaar  \ skipwhite
2373132cdddSBram Moolenaarsyntax match typescriptExportType              /\<type\s*{\@=/
2383132cdddSBram Moolenaar  \ contained skipwhite skipempty skipnl
23909c6f265SBram Moolenaarsyntax keyword typescriptModule                namespace module
24009c6f265SBram Moolenaar
24109c6f265SBram Moolenaar"this
24209c6f265SBram Moolenaar
24309c6f265SBram Moolenaar"JavaScript Prototype
24409c6f265SBram Moolenaarsyntax keyword typescriptPrototype             prototype
24509c6f265SBram Moolenaar  \ nextgroup=@afterIdentifier
24609c6f265SBram Moolenaar
24709c6f265SBram Moolenaarsyntax keyword typescriptCastKeyword           as
24809c6f265SBram Moolenaar  \ nextgroup=@typescriptType
24909c6f265SBram Moolenaar  \ skipwhite
25009c6f265SBram Moolenaar
25109c6f265SBram Moolenaar"Program Keywords
25209c6f265SBram Moolenaarsyntax keyword typescriptIdentifier            arguments this super
25309c6f265SBram Moolenaar  \ nextgroup=@afterIdentifier
25409c6f265SBram Moolenaar
25509c6f265SBram Moolenaarsyntax keyword typescriptVariable              let var
2563132cdddSBram Moolenaar  \ nextgroup=@typescriptVariableDeclarations
2573132cdddSBram Moolenaar  \ skipwhite skipempty
25809c6f265SBram Moolenaar
25909c6f265SBram Moolenaarsyntax keyword typescriptVariable const
2603132cdddSBram Moolenaar  \ nextgroup=typescriptEnum,@typescriptVariableDeclarations
2613132cdddSBram Moolenaar  \ skipwhite skipempty
26209c6f265SBram Moolenaar
26309c6f265SBram Moolenaarsyntax region typescriptEnum matchgroup=typescriptEnumKeyword start=/enum / end=/\ze{/
26409c6f265SBram Moolenaar  \ nextgroup=typescriptBlock
26509c6f265SBram Moolenaar  \ skipwhite
26609c6f265SBram Moolenaar
26709c6f265SBram Moolenaarsyntax keyword typescriptKeywordOp
26809c6f265SBram Moolenaar  \ contained in instanceof nextgroup=@typescriptValue
26909c6f265SBram Moolenaarsyntax keyword typescriptOperator              delete new typeof void
27009c6f265SBram Moolenaar  \ nextgroup=@typescriptValue
27109c6f265SBram Moolenaar  \ skipwhite skipempty
27209c6f265SBram Moolenaar
27309c6f265SBram Moolenaarsyntax keyword typescriptForOperator           contained in of
27409c6f265SBram Moolenaarsyntax keyword typescriptBoolean               true false nextgroup=@typescriptSymbols skipwhite skipempty
27509c6f265SBram Moolenaarsyntax keyword typescriptNull                  null undefined nextgroup=@typescriptSymbols skipwhite skipempty
27609c6f265SBram Moolenaarsyntax keyword typescriptMessage               alert confirm prompt status
27709c6f265SBram Moolenaar  \ nextgroup=typescriptDotNotation,typescriptFuncCallArg
27809c6f265SBram Moolenaarsyntax keyword typescriptGlobal                self top parent
27909c6f265SBram Moolenaar  \ nextgroup=@afterIdentifier
28009c6f265SBram Moolenaar
28109c6f265SBram Moolenaar"Statement Keywords
28209c6f265SBram Moolenaarsyntax keyword typescriptConditional           if else switch
28309c6f265SBram Moolenaar  \ nextgroup=typescriptConditionalParen
28409c6f265SBram Moolenaar  \ skipwhite skipempty skipnl
28509c6f265SBram Moolenaarsyntax keyword typescriptConditionalElse       else
28609c6f265SBram Moolenaarsyntax keyword typescriptRepeat                do while for nextgroup=typescriptLoopParen skipwhite skipempty
28709c6f265SBram Moolenaarsyntax keyword typescriptRepeat                for nextgroup=typescriptLoopParen,typescriptAsyncFor skipwhite skipempty
28809c6f265SBram Moolenaarsyntax keyword typescriptBranch                break continue containedin=typescriptBlock
28909c6f265SBram Moolenaarsyntax keyword typescriptCase                  case nextgroup=@typescriptPrimitive skipwhite containedin=typescriptBlock
29009c6f265SBram Moolenaarsyntax keyword typescriptDefault               default containedin=typescriptBlock nextgroup=@typescriptValue,typescriptClassKeyword,typescriptInterfaceKeyword skipwhite oneline
29109c6f265SBram Moolenaarsyntax keyword typescriptStatementKeyword      with
29209c6f265SBram Moolenaarsyntax keyword typescriptStatementKeyword      yield skipwhite nextgroup=@typescriptValue containedin=typescriptBlock
29309c6f265SBram Moolenaarsyntax keyword typescriptStatementKeyword      return skipwhite contained nextgroup=@typescriptValue containedin=typescriptBlock
29409c6f265SBram Moolenaar
29509c6f265SBram Moolenaarsyntax keyword typescriptTry                   try
29609c6f265SBram Moolenaarsyntax keyword typescriptExceptions            catch throw finally
29709c6f265SBram Moolenaarsyntax keyword typescriptDebugger              debugger
29809c6f265SBram Moolenaar
29909c6f265SBram Moolenaarsyntax keyword typescriptAsyncFor              await nextgroup=typescriptLoopParen skipwhite skipempty contained
30009c6f265SBram Moolenaar
30109c6f265SBram Moolenaarsyntax region  typescriptLoopParen             contained matchgroup=typescriptParens
30209c6f265SBram Moolenaar  \ start=/(/ end=/)/
30309c6f265SBram Moolenaar  \ contains=typescriptVariable,typescriptForOperator,typescriptEndColons,@typescriptValue,@typescriptComments
30409c6f265SBram Moolenaar  \ nextgroup=typescriptBlock
30509c6f265SBram Moolenaar  \ skipwhite skipempty
30609c6f265SBram Moolenaarsyntax region  typescriptConditionalParen             contained matchgroup=typescriptParens
30709c6f265SBram Moolenaar  \ start=/(/ end=/)/
30809c6f265SBram Moolenaar  \ contains=@typescriptValue,@typescriptComments
30909c6f265SBram Moolenaar  \ nextgroup=typescriptBlock
31009c6f265SBram Moolenaar  \ skipwhite skipempty
31109c6f265SBram Moolenaarsyntax match   typescriptEndColons             /[;,]/ contained
31209c6f265SBram Moolenaar
31309c6f265SBram Moolenaarsyntax keyword typescriptAmbientDeclaration declare nextgroup=@typescriptAmbients
31409c6f265SBram Moolenaar  \ skipwhite skipempty
31509c6f265SBram Moolenaar
31609c6f265SBram Moolenaarsyntax cluster typescriptAmbients contains=
31709c6f265SBram Moolenaar  \ typescriptVariable,
31809c6f265SBram Moolenaar  \ typescriptFuncKeyword,
31909c6f265SBram Moolenaar  \ typescriptClassKeyword,
32009c6f265SBram Moolenaar  \ typescriptAbstract,
32109c6f265SBram Moolenaar  \ typescriptEnumKeyword,typescriptEnum,
32209c6f265SBram Moolenaar  \ typescriptModule
32309c6f265SBram Moolenaar
32409c6f265SBram Moolenaar"Syntax coloring for Node.js shebang line
32509c6f265SBram Moolenaarsyntax match   shellbang "^#!.*node\>"
32609c6f265SBram Moolenaarsyntax match   shellbang "^#!.*iojs\>"
32709c6f265SBram Moolenaar
32809c6f265SBram Moolenaar
32909c6f265SBram Moolenaar"JavaScript comments
33009c6f265SBram Moolenaarsyntax keyword typescriptCommentTodo TODO FIXME XXX TBD
3313132cdddSBram Moolenaarsyntax match typescriptMagicComment "@ts-\%(ignore\|expect-error\)\>"
33209c6f265SBram Moolenaarsyntax match   typescriptLineComment "//.*"
3333132cdddSBram Moolenaar  \ contains=@Spell,typescriptCommentTodo,typescriptRef,typescriptMagicComment
33409c6f265SBram Moolenaarsyntax region  typescriptComment
33509c6f265SBram Moolenaar  \ start="/\*"  end="\*/"
33609c6f265SBram Moolenaar  \ contains=@Spell,typescriptCommentTodo extend
33709c6f265SBram Moolenaarsyntax cluster typescriptComments
33809c6f265SBram Moolenaar  \ contains=typescriptDocComment,typescriptComment,typescriptLineComment
33909c6f265SBram Moolenaar
34009c6f265SBram Moolenaarsyntax match   typescriptRef  +///\s*<reference\s\+.*\/>$+
34109c6f265SBram Moolenaar  \ contains=typescriptString
34209c6f265SBram Moolenaarsyntax match   typescriptRef  +///\s*<amd-dependency\s\+.*\/>$+
34309c6f265SBram Moolenaar  \ contains=typescriptString
34409c6f265SBram Moolenaarsyntax match   typescriptRef  +///\s*<amd-module\s\+.*\/>$+
34509c6f265SBram Moolenaar  \ contains=typescriptString
34609c6f265SBram Moolenaar
34709c6f265SBram Moolenaar"JSDoc
34809c6f265SBram Moolenaarsyntax case ignore
34909c6f265SBram Moolenaar
35009c6f265SBram Moolenaarsyntax region  typescriptDocComment            matchgroup=typescriptComment
35109c6f265SBram Moolenaar  \ start="/\*\*"  end="\*/"
35209c6f265SBram Moolenaar  \ contains=typescriptDocNotation,typescriptCommentTodo,@Spell
35309c6f265SBram Moolenaar  \ fold keepend
35409c6f265SBram Moolenaarsyntax match   typescriptDocNotation           contained /@/ nextgroup=typescriptDocTags
35509c6f265SBram Moolenaar
35609c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained constant constructor constructs function ignore inner private public readonly static
35709c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained const dict expose inheritDoc interface nosideeffects override protected struct internal
35809c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained example global
35991359014SBram Moolenaarsyntax keyword typescriptDocTags               contained alpha beta defaultValue eventProperty experimental label
36091359014SBram Moolenaarsyntax keyword typescriptDocTags               contained packageDocumentation privateRemarks remarks sealed typeParam
36109c6f265SBram Moolenaar
36209c6f265SBram Moolenaar" syntax keyword typescriptDocTags               contained ngdoc nextgroup=typescriptDocNGDirective
36309c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained ngdoc scope priority animations
36409c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained ngdoc restrict methodOf propertyOf eventOf eventType nextgroup=typescriptDocParam skipwhite
36509c6f265SBram Moolenaarsyntax keyword typescriptDocNGDirective        contained overview service object function method property event directive filter inputType error
36609c6f265SBram Moolenaar
36709c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained abstract virtual access augments
36809c6f265SBram Moolenaar
36909c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained arguments callback lends memberOf name type kind link mixes mixin tutorial nextgroup=typescriptDocParam skipwhite
37009c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained variation nextgroup=typescriptDocNumParam skipwhite
37109c6f265SBram Moolenaar
37209c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained author class classdesc copyright default defaultvalue nextgroup=typescriptDocDesc skipwhite
37309c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained deprecated description external host nextgroup=typescriptDocDesc skipwhite
37409c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained file fileOverview overview namespace requires since version nextgroup=typescriptDocDesc skipwhite
37509c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained summary todo license preserve nextgroup=typescriptDocDesc skipwhite
37609c6f265SBram Moolenaar
37709c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained borrows exports nextgroup=typescriptDocA skipwhite
37809c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained param arg argument property prop module nextgroup=typescriptDocNamedParamType,typescriptDocParamName skipwhite
37909c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained define enum extends implements this typedef nextgroup=typescriptDocParamType skipwhite
38009c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained return returns throws exception nextgroup=typescriptDocParamType,typescriptDocParamName skipwhite
38109c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained see nextgroup=typescriptDocRef skipwhite
38209c6f265SBram Moolenaar
38309c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained function func method nextgroup=typescriptDocName skipwhite
38409c6f265SBram Moolenaarsyntax match   typescriptDocName               contained /\h\w*/
38509c6f265SBram Moolenaar
38609c6f265SBram Moolenaarsyntax keyword typescriptDocTags               contained fires event nextgroup=typescriptDocEventRef skipwhite
38709c6f265SBram Moolenaarsyntax match   typescriptDocEventRef           contained /\h\w*#\(\h\w*\:\)\?\h\w*/
38809c6f265SBram Moolenaar
38909c6f265SBram Moolenaarsyntax match   typescriptDocNamedParamType     contained /{.\+}/ nextgroup=typescriptDocParamName skipwhite
39009c6f265SBram Moolenaarsyntax match   typescriptDocParamName          contained /\[\?0-9a-zA-Z_\.]\+\]\?/ nextgroup=typescriptDocDesc skipwhite
39109c6f265SBram Moolenaarsyntax match   typescriptDocParamType          contained /{.\+}/ nextgroup=typescriptDocDesc skipwhite
39209c6f265SBram Moolenaarsyntax match   typescriptDocA                  contained /\%(#\|\w\|\.\|:\|\/\)\+/ nextgroup=typescriptDocAs skipwhite
39309c6f265SBram Moolenaarsyntax match   typescriptDocAs                 contained /\s*as\s*/ nextgroup=typescriptDocB skipwhite
39409c6f265SBram Moolenaarsyntax match   typescriptDocB                  contained /\%(#\|\w\|\.\|:\|\/\)\+/
39509c6f265SBram Moolenaarsyntax match   typescriptDocParam              contained /\%(#\|\w\|\.\|:\|\/\|-\)\+/
39609c6f265SBram Moolenaarsyntax match   typescriptDocNumParam           contained /\d\+/
39709c6f265SBram Moolenaarsyntax match   typescriptDocRef                contained /\%(#\|\w\|\.\|:\|\/\)\+/
39809c6f265SBram Moolenaarsyntax region  typescriptDocLinkTag            contained matchgroup=typescriptDocLinkTag start=/{/ end=/}/ contains=typescriptDocTags
39909c6f265SBram Moolenaar
40009c6f265SBram Moolenaarsyntax cluster typescriptDocs                  contains=typescriptDocParamType,typescriptDocNamedParamType,typescriptDocParam
40109c6f265SBram Moolenaar
4023132cdddSBram Moolenaarif exists("main_syntax") && main_syntax == "typescript"
40309c6f265SBram Moolenaar  syntax sync clear
40409c6f265SBram Moolenaar  syntax sync ccomment typescriptComment minlines=200
40509c6f265SBram Moolenaarendif
40609c6f265SBram Moolenaar
40709c6f265SBram Moolenaarsyntax case match
40809c6f265SBram Moolenaar
40909c6f265SBram Moolenaar" Types
41009c6f265SBram Moolenaarsyntax match typescriptOptionalMark /?/ contained
41109c6f265SBram Moolenaar
4123132cdddSBram Moolenaarsyntax cluster typescriptTypeParameterCluster contains=
4133132cdddSBram Moolenaar  \ typescriptTypeParameter,
4143132cdddSBram Moolenaar  \ typescriptGenericDefault
4153132cdddSBram Moolenaar
41609c6f265SBram Moolenaarsyntax region typescriptTypeParameters matchgroup=typescriptTypeBrackets
41709c6f265SBram Moolenaar  \ start=/</ end=/>/
4183132cdddSBram Moolenaar  \ contains=@typescriptTypeParameterCluster
41909c6f265SBram Moolenaar  \ contained
42009c6f265SBram Moolenaar
42109c6f265SBram Moolenaarsyntax match typescriptTypeParameter /\K\k*/
4223132cdddSBram Moolenaar  \ nextgroup=typescriptConstraint
42309c6f265SBram Moolenaar  \ contained skipwhite skipnl
42409c6f265SBram Moolenaar
42509c6f265SBram Moolenaarsyntax keyword typescriptConstraint extends
42609c6f265SBram Moolenaar  \ nextgroup=@typescriptType
42709c6f265SBram Moolenaar  \ contained skipwhite skipnl
42809c6f265SBram Moolenaar
42909c6f265SBram Moolenaarsyntax match typescriptGenericDefault /=/
43009c6f265SBram Moolenaar  \ nextgroup=@typescriptType
43109c6f265SBram Moolenaar  \ contained skipwhite
43209c6f265SBram Moolenaar
43309c6f265SBram Moolenaar"><
43409c6f265SBram Moolenaar" class A extend B<T> {} // ClassBlock
43509c6f265SBram Moolenaar" func<T>() // FuncCallArg
43609c6f265SBram Moolenaarsyntax region typescriptTypeArguments matchgroup=typescriptTypeBrackets
43709c6f265SBram Moolenaar  \ start=/\></ end=/>/
43809c6f265SBram Moolenaar  \ contains=@typescriptType
43909c6f265SBram Moolenaar  \ nextgroup=typescriptFuncCallArg,@typescriptTypeOperator
44009c6f265SBram Moolenaar  \ contained skipwhite
44109c6f265SBram Moolenaar
44209c6f265SBram Moolenaar
44309c6f265SBram Moolenaarsyntax cluster typescriptType contains=
44409c6f265SBram Moolenaar  \ @typescriptPrimaryType,
44509c6f265SBram Moolenaar  \ typescriptUnion,
44609c6f265SBram Moolenaar  \ @typescriptFunctionType,
44709c6f265SBram Moolenaar  \ typescriptConstructorType
44809c6f265SBram Moolenaar
44909c6f265SBram Moolenaar" array type: A[]
45009c6f265SBram Moolenaar" type indexing A['key']
45109c6f265SBram Moolenaarsyntax region typescriptTypeBracket contained
45209c6f265SBram Moolenaar  \ start=/\[/ end=/\]/
45309c6f265SBram Moolenaar  \ contains=typescriptString,typescriptNumber
45409c6f265SBram Moolenaar  \ nextgroup=@typescriptTypeOperator
45509c6f265SBram Moolenaar  \ skipwhite skipempty
45609c6f265SBram Moolenaar
45709c6f265SBram Moolenaarsyntax cluster typescriptPrimaryType contains=
45809c6f265SBram Moolenaar  \ typescriptParenthesizedType,
45909c6f265SBram Moolenaar  \ typescriptPredefinedType,
46009c6f265SBram Moolenaar  \ typescriptTypeReference,
46109c6f265SBram Moolenaar  \ typescriptObjectType,
46209c6f265SBram Moolenaar  \ typescriptTupleType,
46309c6f265SBram Moolenaar  \ typescriptTypeQuery,
46409c6f265SBram Moolenaar  \ typescriptStringLiteralType,
4653132cdddSBram Moolenaar  \ typescriptTemplateLiteralType,
46691359014SBram Moolenaar  \ typescriptReadonlyArrayKeyword,
46791359014SBram Moolenaar  \ typescriptAssertType
46809c6f265SBram Moolenaar
46909c6f265SBram Moolenaarsyntax region  typescriptStringLiteralType contained
47009c6f265SBram Moolenaar  \ start=/\z(["']\)/  skip=/\\\\\|\\\z1\|\\\n/  end=/\z1\|$/
47109c6f265SBram Moolenaar  \ nextgroup=typescriptUnion
47209c6f265SBram Moolenaar  \ skipwhite skipempty
47309c6f265SBram Moolenaar
4743132cdddSBram Moolenaarsyntax region  typescriptTemplateLiteralType contained
4753132cdddSBram Moolenaar  \ start=/`/  skip=/\\\\\|\\`\|\n/  end=/`\|$/
4763132cdddSBram Moolenaar  \ contains=typescriptTemplateSubstitutionType
4773132cdddSBram Moolenaar  \ nextgroup=typescriptTypeOperator
4783132cdddSBram Moolenaar  \ skipwhite skipempty
4793132cdddSBram Moolenaar
4803132cdddSBram Moolenaarsyntax region  typescriptTemplateSubstitutionType matchgroup=typescriptTemplateSB
4813132cdddSBram Moolenaar  \ start=/\${/ end=/}/
4823132cdddSBram Moolenaar  \ contains=@typescriptType
4833132cdddSBram Moolenaar  \ contained
4843132cdddSBram Moolenaar
48509c6f265SBram Moolenaarsyntax region typescriptParenthesizedType matchgroup=typescriptParens
48609c6f265SBram Moolenaar  \ start=/(/ end=/)/
48709c6f265SBram Moolenaar  \ contains=@typescriptType
48809c6f265SBram Moolenaar  \ nextgroup=@typescriptTypeOperator
48909c6f265SBram Moolenaar  \ contained skipwhite skipempty fold
49009c6f265SBram Moolenaar
49109c6f265SBram Moolenaarsyntax match typescriptTypeReference /\K\k*\(\.\K\k*\)*/
49209c6f265SBram Moolenaar  \ nextgroup=typescriptTypeArguments,@typescriptTypeOperator,typescriptUserDefinedType
49309c6f265SBram Moolenaar  \ skipwhite contained skipempty
49409c6f265SBram Moolenaar
49509c6f265SBram Moolenaarsyntax keyword typescriptPredefinedType any number boolean string void never undefined null object unknown
49609c6f265SBram Moolenaar  \ nextgroup=@typescriptTypeOperator
49709c6f265SBram Moolenaar  \ contained skipwhite skipempty
49809c6f265SBram Moolenaar
49909c6f265SBram Moolenaarsyntax match typescriptPredefinedType /unique symbol/
50009c6f265SBram Moolenaar  \ nextgroup=@typescriptTypeOperator
50109c6f265SBram Moolenaar  \ contained skipwhite skipempty
50209c6f265SBram Moolenaar
50309c6f265SBram Moolenaarsyntax region typescriptObjectType matchgroup=typescriptBraces
50409c6f265SBram Moolenaar  \ start=/{/ end=/}/
50509c6f265SBram Moolenaar  \ contains=@typescriptTypeMember,typescriptEndColons,@typescriptComments,typescriptAccessibilityModifier,typescriptReadonlyModifier
50609c6f265SBram Moolenaar  \ nextgroup=@typescriptTypeOperator
5073132cdddSBram Moolenaar  \ contained skipwhite skipnl fold
50809c6f265SBram Moolenaar
50909c6f265SBram Moolenaarsyntax cluster typescriptTypeMember contains=
51009c6f265SBram Moolenaar  \ @typescriptCallSignature,
51109c6f265SBram Moolenaar  \ typescriptConstructSignature,
51209c6f265SBram Moolenaar  \ typescriptIndexSignature,
51309c6f265SBram Moolenaar  \ @typescriptMembers
51409c6f265SBram Moolenaar
5153132cdddSBram Moolenaarsyntax match typescriptTupleLable /\K\k*?\?:/
5163132cdddSBram Moolenaar    \ contained
5173132cdddSBram Moolenaar
51809c6f265SBram Moolenaarsyntax region typescriptTupleType matchgroup=typescriptBraces
51909c6f265SBram Moolenaar  \ start=/\[/ end=/\]/
5203132cdddSBram Moolenaar  \ contains=@typescriptType,@typescriptComments,typescriptRestOrSpread,typescriptTupleLable
52191359014SBram Moolenaar  \ contained skipwhite
52209c6f265SBram Moolenaar
52309c6f265SBram Moolenaarsyntax cluster typescriptTypeOperator
5243132cdddSBram Moolenaar  \ contains=typescriptUnion,typescriptTypeBracket,typescriptConstraint,typescriptConditionalType
52509c6f265SBram Moolenaar
52609c6f265SBram Moolenaarsyntax match typescriptUnion /|\|&/ contained nextgroup=@typescriptPrimaryType skipwhite skipempty
52709c6f265SBram Moolenaar
5283132cdddSBram Moolenaarsyntax match typescriptConditionalType /?\|:/ contained nextgroup=@typescriptPrimaryType skipwhite skipempty
5293132cdddSBram Moolenaar
53009c6f265SBram Moolenaarsyntax cluster typescriptFunctionType contains=typescriptGenericFunc,typescriptFuncType
53109c6f265SBram Moolenaarsyntax region typescriptGenericFunc matchgroup=typescriptTypeBrackets
53209c6f265SBram Moolenaar  \ start=/</ end=/>/
53309c6f265SBram Moolenaar  \ contains=typescriptTypeParameter
53409c6f265SBram Moolenaar  \ nextgroup=typescriptFuncType
53509c6f265SBram Moolenaar  \ containedin=typescriptFunctionType
53609c6f265SBram Moolenaar  \ contained skipwhite skipnl
53709c6f265SBram Moolenaar
53809c6f265SBram Moolenaarsyntax region typescriptFuncType matchgroup=typescriptParens
53909c6f265SBram Moolenaar  \ start=/(/ end=/)\s*=>/me=e-2
54009c6f265SBram Moolenaar  \ contains=@typescriptParameterList
54109c6f265SBram Moolenaar  \ nextgroup=typescriptFuncTypeArrow
54209c6f265SBram Moolenaar  \ contained skipwhite skipnl oneline
54309c6f265SBram Moolenaar
54409c6f265SBram Moolenaarsyntax match typescriptFuncTypeArrow /=>/
54509c6f265SBram Moolenaar  \ nextgroup=@typescriptType
54609c6f265SBram Moolenaar  \ containedin=typescriptFuncType
54709c6f265SBram Moolenaar  \ contained skipwhite skipnl
54809c6f265SBram Moolenaar
54909c6f265SBram Moolenaar
55009c6f265SBram Moolenaarsyntax keyword typescriptConstructorType new
55109c6f265SBram Moolenaar  \ nextgroup=@typescriptFunctionType
55209c6f265SBram Moolenaar  \ contained skipwhite skipnl
55309c6f265SBram Moolenaar
55409c6f265SBram Moolenaarsyntax keyword typescriptUserDefinedType is
55509c6f265SBram Moolenaar  \ contained nextgroup=@typescriptType skipwhite skipempty
55609c6f265SBram Moolenaar
55709c6f265SBram Moolenaarsyntax keyword typescriptTypeQuery typeof keyof
55809c6f265SBram Moolenaar  \ nextgroup=typescriptTypeReference
55909c6f265SBram Moolenaar  \ contained skipwhite skipnl
56009c6f265SBram Moolenaar
56191359014SBram Moolenaarsyntax keyword typescriptAssertType asserts
56291359014SBram Moolenaar  \ nextgroup=typescriptTypeReference
56391359014SBram Moolenaar  \ contained skipwhite skipnl
56491359014SBram Moolenaar
56509c6f265SBram Moolenaarsyntax cluster typescriptCallSignature contains=typescriptGenericCall,typescriptCall
56609c6f265SBram Moolenaarsyntax region typescriptGenericCall matchgroup=typescriptTypeBrackets
56709c6f265SBram Moolenaar  \ start=/</ end=/>/
56809c6f265SBram Moolenaar  \ contains=typescriptTypeParameter
56909c6f265SBram Moolenaar  \ nextgroup=typescriptCall
57009c6f265SBram Moolenaar  \ contained skipwhite skipnl
57109c6f265SBram Moolenaarsyntax region typescriptCall matchgroup=typescriptParens
57209c6f265SBram Moolenaar  \ start=/(/ end=/)/
57309c6f265SBram Moolenaar  \ contains=typescriptDecorator,@typescriptParameterList,@typescriptComments
57409c6f265SBram Moolenaar  \ nextgroup=typescriptTypeAnnotation,typescriptBlock
57509c6f265SBram Moolenaar  \ contained skipwhite skipnl
57609c6f265SBram Moolenaar
57709c6f265SBram Moolenaarsyntax match typescriptTypeAnnotation /:/
57809c6f265SBram Moolenaar  \ nextgroup=@typescriptType
57909c6f265SBram Moolenaar  \ contained skipwhite skipnl
58009c6f265SBram Moolenaar
58109c6f265SBram Moolenaarsyntax cluster typescriptParameterList contains=
58209c6f265SBram Moolenaar  \ typescriptTypeAnnotation,
58309c6f265SBram Moolenaar  \ typescriptAccessibilityModifier,
5843132cdddSBram Moolenaar  \ typescriptReadonlyModifier,
58509c6f265SBram Moolenaar  \ typescriptOptionalMark,
58609c6f265SBram Moolenaar  \ typescriptRestOrSpread,
58709c6f265SBram Moolenaar  \ typescriptFuncComma,
58809c6f265SBram Moolenaar  \ typescriptDefaultParam
58909c6f265SBram Moolenaar
59009c6f265SBram Moolenaarsyntax match typescriptFuncComma /,/ contained
59109c6f265SBram Moolenaar
59209c6f265SBram Moolenaarsyntax match typescriptDefaultParam /=/
59309c6f265SBram Moolenaar  \ nextgroup=@typescriptValue
59409c6f265SBram Moolenaar  \ contained skipwhite
59509c6f265SBram Moolenaar
59609c6f265SBram Moolenaarsyntax keyword typescriptConstructSignature new
59709c6f265SBram Moolenaar  \ nextgroup=@typescriptCallSignature
59809c6f265SBram Moolenaar  \ contained skipwhite
59909c6f265SBram Moolenaar
60009c6f265SBram Moolenaarsyntax region typescriptIndexSignature matchgroup=typescriptBraces
60109c6f265SBram Moolenaar  \ start=/\[/ end=/\]/
60209c6f265SBram Moolenaar  \ contains=typescriptPredefinedType,typescriptMappedIn,typescriptString
60309c6f265SBram Moolenaar  \ nextgroup=typescriptTypeAnnotation
60409c6f265SBram Moolenaar  \ contained skipwhite oneline
60509c6f265SBram Moolenaar
60609c6f265SBram Moolenaarsyntax keyword typescriptMappedIn in
60709c6f265SBram Moolenaar  \ nextgroup=@typescriptType
60809c6f265SBram Moolenaar  \ contained skipwhite skipnl skipempty
60909c6f265SBram Moolenaar
61009c6f265SBram Moolenaarsyntax keyword typescriptAliasKeyword type
61109c6f265SBram Moolenaar  \ nextgroup=typescriptAliasDeclaration
61209c6f265SBram Moolenaar  \ skipwhite skipnl skipempty
61309c6f265SBram Moolenaar
61409c6f265SBram Moolenaarsyntax region typescriptAliasDeclaration matchgroup=typescriptUnion
61509c6f265SBram Moolenaar  \ start=/ / end=/=/
61609c6f265SBram Moolenaar  \ nextgroup=@typescriptType
61709c6f265SBram Moolenaar  \ contains=typescriptConstraint,typescriptTypeParameters
61809c6f265SBram Moolenaar  \ contained skipwhite skipempty
61909c6f265SBram Moolenaar
62009c6f265SBram Moolenaarsyntax keyword typescriptReadonlyArrayKeyword readonly
62109c6f265SBram Moolenaar  \ nextgroup=@typescriptPrimaryType
62209c6f265SBram Moolenaar  \ skipwhite
62309c6f265SBram Moolenaar
6243132cdddSBram Moolenaar
62509c6f265SBram Moolenaar" extension
62609c6f265SBram Moolenaarif get(g:, 'yats_host_keyword', 1)
62709c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function Boolean
628*6e649224SBram Moolenaar  " use of nextgroup Suggested by Doug Kearns
629*6e649224SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Error EvalError nextgroup=typescriptFuncCallArg
63009c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName InternalError
63109c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName RangeError ReferenceError
63209c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName StopIteration
63309c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName SyntaxError TypeError
63409c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName URIError Date
63509c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float32Array
63609c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float64Array
63709c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int16Array Int32Array
63809c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int8Array Uint16Array
63909c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint32Array Uint8Array
64009c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint8ClampedArray
64109c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName ParallelArray
64209c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName ArrayBuffer DataView
64309c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Iterator Generator
64409c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Reflect Proxy
64509c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName arguments
64609c6f265SBram Moolenaar  hi def link typescriptGlobal Structure
64709c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName eval uneval nextgroup=typescriptFuncCallArg
64809c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName isFinite nextgroup=typescriptFuncCallArg
64909c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName isNaN parseFloat nextgroup=typescriptFuncCallArg
65009c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName parseInt nextgroup=typescriptFuncCallArg
65109c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName decodeURI nextgroup=typescriptFuncCallArg
65209c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName decodeURIComponent nextgroup=typescriptFuncCallArg
65309c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName encodeURI nextgroup=typescriptFuncCallArg
65409c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName encodeURIComponent nextgroup=typescriptFuncCallArg
65509c6f265SBram Moolenaar  syntax cluster props add=typescriptGlobalMethod
65609c6f265SBram Moolenaar  hi def link typescriptGlobalMethod Structure
65709c6f265SBram Moolenaar
65809c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Number nextgroup=typescriptGlobalNumberDot,typescriptFuncCallArg
65909c6f265SBram Moolenaar  syntax match   typescriptGlobalNumberDot /\./ contained nextgroup=typescriptNumberStaticProp,typescriptNumberStaticMethod,typescriptProp
66009c6f265SBram Moolenaar  syntax keyword typescriptNumberStaticProp contained EPSILON MAX_SAFE_INTEGER MAX_VALUE
66109c6f265SBram Moolenaar  syntax keyword typescriptNumberStaticProp contained MIN_SAFE_INTEGER MIN_VALUE NEGATIVE_INFINITY
66209c6f265SBram Moolenaar  syntax keyword typescriptNumberStaticProp contained NaN POSITIVE_INFINITY
66309c6f265SBram Moolenaar  hi def link typescriptNumberStaticProp Keyword
66409c6f265SBram Moolenaar  syntax keyword typescriptNumberStaticMethod contained isFinite isInteger isNaN isSafeInteger nextgroup=typescriptFuncCallArg
66509c6f265SBram Moolenaar  syntax keyword typescriptNumberStaticMethod contained parseFloat parseInt nextgroup=typescriptFuncCallArg
66609c6f265SBram Moolenaar  hi def link typescriptNumberStaticMethod Keyword
66709c6f265SBram Moolenaar  syntax keyword typescriptNumberMethod contained toExponential toFixed toLocaleString nextgroup=typescriptFuncCallArg
66809c6f265SBram Moolenaar  syntax keyword typescriptNumberMethod contained toPrecision toSource toString valueOf nextgroup=typescriptFuncCallArg
66909c6f265SBram Moolenaar  syntax cluster props add=typescriptNumberMethod
67009c6f265SBram Moolenaar  hi def link typescriptNumberMethod Keyword
67109c6f265SBram Moolenaar
67209c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName String nextgroup=typescriptGlobalStringDot,typescriptFuncCallArg
67309c6f265SBram Moolenaar  syntax match   typescriptGlobalStringDot /\./ contained nextgroup=typescriptStringStaticMethod,typescriptProp
67409c6f265SBram Moolenaar  syntax keyword typescriptStringStaticMethod contained fromCharCode fromCodePoint raw nextgroup=typescriptFuncCallArg
67509c6f265SBram Moolenaar  hi def link typescriptStringStaticMethod Keyword
67609c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained anchor charAt charCodeAt codePointAt nextgroup=typescriptFuncCallArg
67709c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained concat endsWith includes indexOf lastIndexOf nextgroup=typescriptFuncCallArg
67809c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained link localeCompare match normalize nextgroup=typescriptFuncCallArg
67909c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained padStart padEnd repeat replace search nextgroup=typescriptFuncCallArg
68009c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained slice split startsWith substr substring nextgroup=typescriptFuncCallArg
68109c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained toLocaleLowerCase toLocaleUpperCase nextgroup=typescriptFuncCallArg
68209c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained toLowerCase toString toUpperCase trim nextgroup=typescriptFuncCallArg
68309c6f265SBram Moolenaar  syntax keyword typescriptStringMethod contained valueOf nextgroup=typescriptFuncCallArg
68409c6f265SBram Moolenaar  syntax cluster props add=typescriptStringMethod
68509c6f265SBram Moolenaar  hi def link typescriptStringMethod Keyword
68609c6f265SBram Moolenaar
68709c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Array nextgroup=typescriptGlobalArrayDot,typescriptFuncCallArg
68809c6f265SBram Moolenaar  syntax match   typescriptGlobalArrayDot /\./ contained nextgroup=typescriptArrayStaticMethod,typescriptProp
68909c6f265SBram Moolenaar  syntax keyword typescriptArrayStaticMethod contained from isArray of nextgroup=typescriptFuncCallArg
69009c6f265SBram Moolenaar  hi def link typescriptArrayStaticMethod Keyword
69109c6f265SBram Moolenaar  syntax keyword typescriptArrayMethod contained concat copyWithin entries every fill nextgroup=typescriptFuncCallArg
69209c6f265SBram Moolenaar  syntax keyword typescriptArrayMethod contained filter find findIndex forEach indexOf nextgroup=typescriptFuncCallArg
69309c6f265SBram Moolenaar  syntax keyword typescriptArrayMethod contained includes join keys lastIndexOf map nextgroup=typescriptFuncCallArg
69409c6f265SBram Moolenaar  syntax keyword typescriptArrayMethod contained pop push reduce reduceRight reverse nextgroup=typescriptFuncCallArg
69509c6f265SBram Moolenaar  syntax keyword typescriptArrayMethod contained shift slice some sort splice toLocaleString nextgroup=typescriptFuncCallArg
69609c6f265SBram Moolenaar  syntax keyword typescriptArrayMethod contained toSource toString unshift nextgroup=typescriptFuncCallArg
69709c6f265SBram Moolenaar  syntax cluster props add=typescriptArrayMethod
69809c6f265SBram Moolenaar  hi def link typescriptArrayMethod Keyword
69909c6f265SBram Moolenaar
70009c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Object nextgroup=typescriptGlobalObjectDot,typescriptFuncCallArg
70109c6f265SBram Moolenaar  syntax match   typescriptGlobalObjectDot /\./ contained nextgroup=typescriptObjectStaticMethod,typescriptProp
70209c6f265SBram Moolenaar  syntax keyword typescriptObjectStaticMethod contained create defineProperties defineProperty nextgroup=typescriptFuncCallArg
70309c6f265SBram Moolenaar  syntax keyword typescriptObjectStaticMethod contained entries freeze getOwnPropertyDescriptors nextgroup=typescriptFuncCallArg
70409c6f265SBram Moolenaar  syntax keyword typescriptObjectStaticMethod contained getOwnPropertyDescriptor getOwnPropertyNames nextgroup=typescriptFuncCallArg
70509c6f265SBram Moolenaar  syntax keyword typescriptObjectStaticMethod contained getOwnPropertySymbols getPrototypeOf nextgroup=typescriptFuncCallArg
70609c6f265SBram Moolenaar  syntax keyword typescriptObjectStaticMethod contained is isExtensible isFrozen isSealed nextgroup=typescriptFuncCallArg
70709c6f265SBram Moolenaar  syntax keyword typescriptObjectStaticMethod contained keys preventExtensions values nextgroup=typescriptFuncCallArg
70809c6f265SBram Moolenaar  hi def link typescriptObjectStaticMethod Keyword
70909c6f265SBram Moolenaar  syntax keyword typescriptObjectMethod contained getOwnPropertyDescriptors hasOwnProperty nextgroup=typescriptFuncCallArg
71009c6f265SBram Moolenaar  syntax keyword typescriptObjectMethod contained isPrototypeOf propertyIsEnumerable nextgroup=typescriptFuncCallArg
71109c6f265SBram Moolenaar  syntax keyword typescriptObjectMethod contained toLocaleString toString valueOf seal nextgroup=typescriptFuncCallArg
71209c6f265SBram Moolenaar  syntax keyword typescriptObjectMethod contained setPrototypeOf nextgroup=typescriptFuncCallArg
71309c6f265SBram Moolenaar  syntax cluster props add=typescriptObjectMethod
71409c6f265SBram Moolenaar  hi def link typescriptObjectMethod Keyword
71509c6f265SBram Moolenaar
71609c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Symbol nextgroup=typescriptGlobalSymbolDot,typescriptFuncCallArg
71709c6f265SBram Moolenaar  syntax match   typescriptGlobalSymbolDot /\./ contained nextgroup=typescriptSymbolStaticProp,typescriptSymbolStaticMethod,typescriptProp
71809c6f265SBram Moolenaar  syntax keyword typescriptSymbolStaticProp contained length iterator match replace
71909c6f265SBram Moolenaar  syntax keyword typescriptSymbolStaticProp contained search split hasInstance isConcatSpreadable
72009c6f265SBram Moolenaar  syntax keyword typescriptSymbolStaticProp contained unscopables species toPrimitive
72109c6f265SBram Moolenaar  syntax keyword typescriptSymbolStaticProp contained toStringTag
72209c6f265SBram Moolenaar  hi def link typescriptSymbolStaticProp Keyword
72309c6f265SBram Moolenaar  syntax keyword typescriptSymbolStaticMethod contained for keyFor nextgroup=typescriptFuncCallArg
72409c6f265SBram Moolenaar  hi def link typescriptSymbolStaticMethod Keyword
72509c6f265SBram Moolenaar
72609c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function
72709c6f265SBram Moolenaar  syntax keyword typescriptFunctionMethod contained apply bind call nextgroup=typescriptFuncCallArg
72809c6f265SBram Moolenaar  syntax cluster props add=typescriptFunctionMethod
72909c6f265SBram Moolenaar  hi def link typescriptFunctionMethod Keyword
73009c6f265SBram Moolenaar
73109c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Math nextgroup=typescriptGlobalMathDot,typescriptFuncCallArg
73209c6f265SBram Moolenaar  syntax match   typescriptGlobalMathDot /\./ contained nextgroup=typescriptMathStaticProp,typescriptMathStaticMethod,typescriptProp
73309c6f265SBram Moolenaar  syntax keyword typescriptMathStaticProp contained E LN10 LN2 LOG10E LOG2E PI SQRT1_2
73409c6f265SBram Moolenaar  syntax keyword typescriptMathStaticProp contained SQRT2
73509c6f265SBram Moolenaar  hi def link typescriptMathStaticProp Keyword
73609c6f265SBram Moolenaar  syntax keyword typescriptMathStaticMethod contained abs acos acosh asin asinh atan nextgroup=typescriptFuncCallArg
73709c6f265SBram Moolenaar  syntax keyword typescriptMathStaticMethod contained atan2 atanh cbrt ceil clz32 cos nextgroup=typescriptFuncCallArg
73809c6f265SBram Moolenaar  syntax keyword typescriptMathStaticMethod contained cosh exp expm1 floor fround hypot nextgroup=typescriptFuncCallArg
73909c6f265SBram Moolenaar  syntax keyword typescriptMathStaticMethod contained imul log log10 log1p log2 max nextgroup=typescriptFuncCallArg
74009c6f265SBram Moolenaar  syntax keyword typescriptMathStaticMethod contained min pow random round sign sin nextgroup=typescriptFuncCallArg
74109c6f265SBram Moolenaar  syntax keyword typescriptMathStaticMethod contained sinh sqrt tan tanh trunc nextgroup=typescriptFuncCallArg
74209c6f265SBram Moolenaar  hi def link typescriptMathStaticMethod Keyword
74309c6f265SBram Moolenaar
74409c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Date nextgroup=typescriptGlobalDateDot,typescriptFuncCallArg
74509c6f265SBram Moolenaar  syntax match   typescriptGlobalDateDot /\./ contained nextgroup=typescriptDateStaticMethod,typescriptProp
74609c6f265SBram Moolenaar  syntax keyword typescriptDateStaticMethod contained UTC now parse nextgroup=typescriptFuncCallArg
74709c6f265SBram Moolenaar  hi def link typescriptDateStaticMethod Keyword
74809c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained getDate getDay getFullYear getHours nextgroup=typescriptFuncCallArg
74909c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained getMilliseconds getMinutes getMonth nextgroup=typescriptFuncCallArg
75009c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained getSeconds getTime getTimezoneOffset nextgroup=typescriptFuncCallArg
75109c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained getUTCDate getUTCDay getUTCFullYear nextgroup=typescriptFuncCallArg
75209c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained getUTCHours getUTCMilliseconds getUTCMinutes nextgroup=typescriptFuncCallArg
75309c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained getUTCMonth getUTCSeconds setDate setFullYear nextgroup=typescriptFuncCallArg
75409c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained setHours setMilliseconds setMinutes nextgroup=typescriptFuncCallArg
75509c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained setMonth setSeconds setTime setUTCDate nextgroup=typescriptFuncCallArg
75609c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained setUTCFullYear setUTCHours setUTCMilliseconds nextgroup=typescriptFuncCallArg
75709c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained setUTCMinutes setUTCMonth setUTCSeconds nextgroup=typescriptFuncCallArg
75809c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained toDateString toISOString toJSON toLocaleDateString nextgroup=typescriptFuncCallArg
75909c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained toLocaleFormat toLocaleString toLocaleTimeString nextgroup=typescriptFuncCallArg
76009c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained toSource toString toTimeString toUTCString nextgroup=typescriptFuncCallArg
76109c6f265SBram Moolenaar  syntax keyword typescriptDateMethod contained valueOf nextgroup=typescriptFuncCallArg
76209c6f265SBram Moolenaar  syntax cluster props add=typescriptDateMethod
76309c6f265SBram Moolenaar  hi def link typescriptDateMethod Keyword
76409c6f265SBram Moolenaar
76509c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName JSON nextgroup=typescriptGlobalJSONDot,typescriptFuncCallArg
76609c6f265SBram Moolenaar  syntax match   typescriptGlobalJSONDot /\./ contained nextgroup=typescriptJSONStaticMethod,typescriptProp
76709c6f265SBram Moolenaar  syntax keyword typescriptJSONStaticMethod contained parse stringify nextgroup=typescriptFuncCallArg
76809c6f265SBram Moolenaar  hi def link typescriptJSONStaticMethod Keyword
76909c6f265SBram Moolenaar
77009c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName RegExp nextgroup=typescriptGlobalRegExpDot,typescriptFuncCallArg
77109c6f265SBram Moolenaar  syntax match   typescriptGlobalRegExpDot /\./ contained nextgroup=typescriptRegExpStaticProp,typescriptProp
77209c6f265SBram Moolenaar  syntax keyword typescriptRegExpStaticProp contained lastIndex
77309c6f265SBram Moolenaar  hi def link typescriptRegExpStaticProp Keyword
77409c6f265SBram Moolenaar  syntax keyword typescriptRegExpProp contained global ignoreCase multiline source sticky
77509c6f265SBram Moolenaar  syntax cluster props add=typescriptRegExpProp
77609c6f265SBram Moolenaar  hi def link typescriptRegExpProp Keyword
77709c6f265SBram Moolenaar  syntax keyword typescriptRegExpMethod contained exec test nextgroup=typescriptFuncCallArg
77809c6f265SBram Moolenaar  syntax cluster props add=typescriptRegExpMethod
77909c6f265SBram Moolenaar  hi def link typescriptRegExpMethod Keyword
78009c6f265SBram Moolenaar
78109c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Map WeakMap
78209c6f265SBram Moolenaar  syntax keyword typescriptES6MapProp contained size
78309c6f265SBram Moolenaar  syntax cluster props add=typescriptES6MapProp
78409c6f265SBram Moolenaar  hi def link typescriptES6MapProp Keyword
78509c6f265SBram Moolenaar  syntax keyword typescriptES6MapMethod contained clear delete entries forEach get has nextgroup=typescriptFuncCallArg
78609c6f265SBram Moolenaar  syntax keyword typescriptES6MapMethod contained keys set values nextgroup=typescriptFuncCallArg
78709c6f265SBram Moolenaar  syntax cluster props add=typescriptES6MapMethod
78809c6f265SBram Moolenaar  hi def link typescriptES6MapMethod Keyword
78909c6f265SBram Moolenaar
79009c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Set WeakSet
79109c6f265SBram Moolenaar  syntax keyword typescriptES6SetProp contained size
79209c6f265SBram Moolenaar  syntax cluster props add=typescriptES6SetProp
79309c6f265SBram Moolenaar  hi def link typescriptES6SetProp Keyword
79409c6f265SBram Moolenaar  syntax keyword typescriptES6SetMethod contained add clear delete entries forEach has nextgroup=typescriptFuncCallArg
79509c6f265SBram Moolenaar  syntax keyword typescriptES6SetMethod contained values nextgroup=typescriptFuncCallArg
79609c6f265SBram Moolenaar  syntax cluster props add=typescriptES6SetMethod
79709c6f265SBram Moolenaar  hi def link typescriptES6SetMethod Keyword
79809c6f265SBram Moolenaar
79909c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Proxy
80009c6f265SBram Moolenaar  syntax keyword typescriptProxyAPI contained getOwnPropertyDescriptor getOwnPropertyNames
80109c6f265SBram Moolenaar  syntax keyword typescriptProxyAPI contained defineProperty deleteProperty freeze seal
80209c6f265SBram Moolenaar  syntax keyword typescriptProxyAPI contained preventExtensions has hasOwn get set enumerate
80309c6f265SBram Moolenaar  syntax keyword typescriptProxyAPI contained iterate ownKeys apply construct
80409c6f265SBram Moolenaar  hi def link typescriptProxyAPI Keyword
80509c6f265SBram Moolenaar
80609c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Promise nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg
80709c6f265SBram Moolenaar  syntax match   typescriptGlobalPromiseDot /\./ contained nextgroup=typescriptPromiseStaticMethod,typescriptProp
80809c6f265SBram Moolenaar  syntax keyword typescriptPromiseStaticMethod contained resolve reject all race nextgroup=typescriptFuncCallArg
80909c6f265SBram Moolenaar  hi def link typescriptPromiseStaticMethod Keyword
81009c6f265SBram Moolenaar  syntax keyword typescriptPromiseMethod contained then catch finally nextgroup=typescriptFuncCallArg
81109c6f265SBram Moolenaar  syntax cluster props add=typescriptPromiseMethod
81209c6f265SBram Moolenaar  hi def link typescriptPromiseMethod Keyword
81309c6f265SBram Moolenaar
81409c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Reflect
81509c6f265SBram Moolenaar  syntax keyword typescriptReflectMethod contained apply construct defineProperty deleteProperty nextgroup=typescriptFuncCallArg
81609c6f265SBram Moolenaar  syntax keyword typescriptReflectMethod contained enumerate get getOwnPropertyDescriptor nextgroup=typescriptFuncCallArg
81709c6f265SBram Moolenaar  syntax keyword typescriptReflectMethod contained getPrototypeOf has isExtensible ownKeys nextgroup=typescriptFuncCallArg
81809c6f265SBram Moolenaar  syntax keyword typescriptReflectMethod contained preventExtensions set setPrototypeOf nextgroup=typescriptFuncCallArg
81909c6f265SBram Moolenaar  syntax cluster props add=typescriptReflectMethod
82009c6f265SBram Moolenaar  hi def link typescriptReflectMethod Keyword
82109c6f265SBram Moolenaar
82209c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Intl
82309c6f265SBram Moolenaar  syntax keyword typescriptIntlMethod contained Collator DateTimeFormat NumberFormat nextgroup=typescriptFuncCallArg
82409c6f265SBram Moolenaar  syntax keyword typescriptIntlMethod contained PluralRules nextgroup=typescriptFuncCallArg
82509c6f265SBram Moolenaar  syntax cluster props add=typescriptIntlMethod
82609c6f265SBram Moolenaar  hi def link typescriptIntlMethod Keyword
82709c6f265SBram Moolenaar
82809c6f265SBram Moolenaar  syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName global process
82909c6f265SBram Moolenaar  syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName console Buffer
83009c6f265SBram Moolenaar  syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName module exports
83109c6f265SBram Moolenaar  syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName setTimeout
83209c6f265SBram Moolenaar  syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName clearTimeout
83309c6f265SBram Moolenaar  syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName setInterval
83409c6f265SBram Moolenaar  syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName clearInterval
83509c6f265SBram Moolenaar  hi def link typescriptNodeGlobal Structure
83609c6f265SBram Moolenaar
83791359014SBram Moolenaar  syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName describe
83891359014SBram Moolenaar  syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName it test before
83991359014SBram Moolenaar  syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName after beforeEach
84091359014SBram Moolenaar  syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName afterEach
84191359014SBram Moolenaar  syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName beforeAll
84291359014SBram Moolenaar  syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName afterAll
84391359014SBram Moolenaar  syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName expect assert
84409c6f265SBram Moolenaar
84509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName AbortController
84609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName AbstractWorker AnalyserNode
84709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName App Apps ArrayBuffer
84809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ArrayBufferView
84909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Attr AudioBuffer
85009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioBufferSourceNode
85109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioContext AudioDestinationNode
85209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioListener AudioNode
85309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioParam BatteryManager
85409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName BiquadFilterNode
85509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName BlobEvent BluetoothAdapter
85609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName BluetoothDevice
85709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName BluetoothManager
85809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CameraCapabilities
85909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CameraControl CameraManager
86009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CanvasGradient CanvasImageSource
86109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CanvasPattern CanvasRenderingContext2D
86209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CaretPosition CDATASection
86309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ChannelMergerNode
86409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ChannelSplitterNode
86509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CharacterData ChildNode
86609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ChromeWorker Comment
86709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Connection Console
86809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ContactManager Contacts
86909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ConvolverNode Coordinates
87009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSS CSSConditionRule
87109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSGroupingRule
87209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSKeyframeRule
87309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSKeyframesRule
87409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSMediaRule CSSNamespaceRule
87509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSPageRule CSSRule
87609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSRuleList CSSStyleDeclaration
87709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSStyleRule CSSStyleSheet
87809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSSupportsRule
87909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DataTransfer DataView
88009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DedicatedWorkerGlobalScope
88109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DelayNode DeviceAcceleration
88209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DeviceRotationRate
88309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DeviceStorage DirectoryEntry
88409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DirectoryEntrySync
88509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DirectoryReader
88609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DirectoryReaderSync
88709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Document DocumentFragment
88809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DocumentTouch DocumentType
88909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMCursor DOMError
89009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMException DOMHighResTimeStamp
89109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMImplementation
89209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMImplementationRegistry
89309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMParser DOMRequest
89409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMString DOMStringList
89509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMStringMap DOMTimeStamp
89609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMTokenList DynamicsCompressorNode
89709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Element Entry EntrySync
89809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Extensions FileException
89909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Float32Array Float64Array
90009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName FMRadio FormData
90109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName GainNode Gamepad
90209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName GamepadButton Geolocation
90309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName History HTMLAnchorElement
90409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLAreaElement
90509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLAudioElement
90609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLBaseElement
90709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLBodyElement
90809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLBRElement HTMLButtonElement
90909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLCanvasElement
91009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLCollection HTMLDataElement
91109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLDataListElement
91209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLDivElement HTMLDListElement
91309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLDocument HTMLElement
91409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLEmbedElement
91509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLFieldSetElement
91609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLFormControlsCollection
91709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLFormElement
91809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLHeadElement
91909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLHeadingElement
92009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLHRElement HTMLHtmlElement
92109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLIFrameElement
92209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLImageElement
92309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLInputElement
92409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLKeygenElement
92509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLLabelElement
92609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLLegendElement
92709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLLIElement HTMLLinkElement
92809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLMapElement HTMLMediaElement
92909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLMetaElement
93009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLMeterElement
93109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLModElement HTMLObjectElement
93209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOListElement
93309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOptGroupElement
93409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOptionElement
93509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOptionsCollection
93609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOutputElement
93709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLParagraphElement
93809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLParamElement
93909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLPreElement HTMLProgressElement
94009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLQuoteElement
94109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLScriptElement
94209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLSelectElement
94309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLSourceElement
94409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLSpanElement
94509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLStyleElement
94609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableCaptionElement
94709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableCellElement
94809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableColElement
94909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableDataCellElement
95009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableElement
95109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableHeaderCellElement
95209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableRowElement
95309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableSectionElement
95409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTextAreaElement
95509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTimeElement
95609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTitleElement
95709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTrackElement
95809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLUListElement
95909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLUnknownElement
96009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLVideoElement
96109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBCursor IDBCursorSync
96209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBCursorWithValue
96309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBDatabase IDBDatabaseSync
96409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBEnvironment IDBEnvironmentSync
96509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBFactory IDBFactorySync
96609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBIndex IDBIndexSync
96709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBKeyRange IDBObjectStore
96809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBObjectStoreSync
96909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBOpenDBRequest
97009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBRequest IDBTransaction
97109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBTransactionSync
97209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBVersionChangeEvent
97309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ImageData IndexedDB
97409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Int16Array Int32Array
97509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Int8Array L10n LinkStyle
97609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName LocalFileSystem
97709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName LocalFileSystemSync
97809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Location LockedFile
97909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName MediaQueryList MediaQueryListListener
98009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName MediaRecorder MediaSource
98109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName MediaStream MediaStreamTrack
98209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName MutationObserver
98309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Navigator NavigatorGeolocation
98409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName NavigatorID NavigatorLanguage
98509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName NavigatorOnLine
98609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName NavigatorPlugins
98709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Node NodeFilter
98809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName NodeIterator NodeList
98909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Notification OfflineAudioContext
99009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName OscillatorNode PannerNode
99109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ParentNode Performance
99209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName PerformanceNavigation
99309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName PerformanceTiming
99409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Permissions PermissionSettings
99509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Plugin PluginArray
99609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Position PositionError
99709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName PositionOptions
99809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName PowerManager ProcessingInstruction
99909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName PromiseResolver
100009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName PushManager Range
100109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCConfiguration
100209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCPeerConnection
100309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCPeerConnectionErrorCallback
100409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCSessionDescription
100509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCSessionDescriptionCallback
100609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ScriptProcessorNode
100709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Selection SettingsLock
100809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SettingsManager
100909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SharedWorker StyleSheet
101009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName StyleSheetList SVGAElement
101109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAngle SVGAnimateColorElement
101209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedAngle
101309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedBoolean
101409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedEnumeration
101509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedInteger
101609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedLength
101709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedLengthList
101809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedNumber
101909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedNumberList
102009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedPoints
102109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedPreserveAspectRatio
102209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedRect
102309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedString
102409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedTransformList
102509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimateElement
102609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimateMotionElement
102709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimateTransformElement
102809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimationElement
102909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGCircleElement
103009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGClipPathElement
103109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGCursorElement
103209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGDefsElement SVGDescElement
103309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGElement SVGEllipseElement
103409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFilterElement
103509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontElement SVGFontFaceElement
103609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceFormatElement
103709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceNameElement
103809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceSrcElement
103909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceUriElement
104009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGForeignObjectElement
104109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGGElement SVGGlyphElement
104209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGGradientElement
104309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGHKernElement
104409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGImageElement
104509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGLength SVGLengthList
104609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGLinearGradientElement
104709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGLineElement SVGMaskElement
104809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGMatrix SVGMissingGlyphElement
104909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGMPathElement
105009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGNumber SVGNumberList
105109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPathElement SVGPatternElement
105209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPoint SVGPolygonElement
105309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPolylineElement
105409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPreserveAspectRatio
105509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGRadialGradientElement
105609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGRect SVGRectElement
105709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGScriptElement
105809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGSetElement SVGStopElement
105909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGStringList SVGStylable
106009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGStyleElement
106109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGSVGElement SVGSwitchElement
106209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGSymbolElement
106309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTests SVGTextElement
106409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTextPositioningElement
106509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTitleElement
106609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTransform SVGTransformable
106709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTransformList
106809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTRefElement SVGTSpanElement
106909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGUseElement SVGViewElement
107009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGVKernElement
107109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName TCPServerSocket
107209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName TCPSocket Telephony
107309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName TelephonyCall Text
107409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName TextDecoder TextEncoder
107509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName TextMetrics TimeRanges
107609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Touch TouchList
107709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Transferable TreeWalker
107809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Uint16Array Uint32Array
107909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Uint8Array Uint8ClampedArray
108009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName URLSearchParams
108109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName URLUtilsReadOnly
108209c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName UserProximityEvent
108309c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName ValidityState VideoPlaybackQuality
108409c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName WaveShaperNode WebBluetooth
108509c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName WebGLRenderingContext
108609c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName WebSMS WebSocket
108709c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName WebVTT WifiManager
108809c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName Window Worker WorkerConsole
108909c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName WorkerLocation WorkerNavigator
109009c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName XDomainRequest XMLDocument
109109c6f265SBram Moolenaar  syntax keyword typescriptBOM containedin=typescriptIdentifierName XMLHttpRequestEventTarget
109209c6f265SBram Moolenaar  hi def link typescriptBOM Structure
109309c6f265SBram Moolenaar
109409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName applicationCache
109509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName closed
109609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName Components
109709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName controllers
109809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName dialogArguments
109909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName document
110009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName frameElement
110109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName frames
110209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName fullScreen
110309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName history
110409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName innerHeight
110509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName innerWidth
110609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName length
110709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName location
110809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName locationbar
110909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName menubar
111009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName messageManager
111109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName name navigator
111209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName opener
111309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName outerHeight
111409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName outerWidth
111509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName pageXOffset
111609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName pageYOffset
111709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName parent
111809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName performance
111909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName personalbar
112009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName returnValue
112109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName screen
112209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName screenX
112309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName screenY
112409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollbars
112509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollMaxX
112609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollMaxY
112709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollX
112809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollY
112909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName self sidebar
113009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName status
113109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName statusbar
113209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName toolbar
113309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName top visualViewport
113409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName window
113509c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMWindowProp
113609c6f265SBram Moolenaar  hi def link typescriptBOMWindowProp Structure
113709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName alert nextgroup=typescriptFuncCallArg
113809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName atob nextgroup=typescriptFuncCallArg
113909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName blur nextgroup=typescriptFuncCallArg
114009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName btoa nextgroup=typescriptFuncCallArg
114109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName clearImmediate nextgroup=typescriptFuncCallArg
114209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName clearInterval nextgroup=typescriptFuncCallArg
114309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName clearTimeout nextgroup=typescriptFuncCallArg
114409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName close nextgroup=typescriptFuncCallArg
114509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName confirm nextgroup=typescriptFuncCallArg
114609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName dispatchEvent nextgroup=typescriptFuncCallArg
114709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName find nextgroup=typescriptFuncCallArg
114809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName focus nextgroup=typescriptFuncCallArg
114909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getAttention nextgroup=typescriptFuncCallArg
115009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getAttentionWithCycleCount nextgroup=typescriptFuncCallArg
115109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getComputedStyle nextgroup=typescriptFuncCallArg
115209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getDefaulComputedStyle nextgroup=typescriptFuncCallArg
115309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getSelection nextgroup=typescriptFuncCallArg
115409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName matchMedia nextgroup=typescriptFuncCallArg
115509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName maximize nextgroup=typescriptFuncCallArg
115609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName moveBy nextgroup=typescriptFuncCallArg
115709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName moveTo nextgroup=typescriptFuncCallArg
115809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName open nextgroup=typescriptFuncCallArg
115909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName openDialog nextgroup=typescriptFuncCallArg
116009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName postMessage nextgroup=typescriptFuncCallArg
116109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName print nextgroup=typescriptFuncCallArg
116209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName prompt nextgroup=typescriptFuncCallArg
116309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName removeEventListener nextgroup=typescriptFuncCallArg
116409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName resizeBy nextgroup=typescriptFuncCallArg
116509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName resizeTo nextgroup=typescriptFuncCallArg
116609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName restore nextgroup=typescriptFuncCallArg
116709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scroll nextgroup=typescriptFuncCallArg
116809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollBy nextgroup=typescriptFuncCallArg
116909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollByLines nextgroup=typescriptFuncCallArg
117009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollByPages nextgroup=typescriptFuncCallArg
117109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollTo nextgroup=typescriptFuncCallArg
117209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setCursor nextgroup=typescriptFuncCallArg
117309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setImmediate nextgroup=typescriptFuncCallArg
117409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setInterval nextgroup=typescriptFuncCallArg
117509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setResizable nextgroup=typescriptFuncCallArg
117609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setTimeout nextgroup=typescriptFuncCallArg
117709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName showModalDialog nextgroup=typescriptFuncCallArg
117809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName sizeToContent nextgroup=typescriptFuncCallArg
117909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName stop nextgroup=typescriptFuncCallArg
118009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName updateCommands nextgroup=typescriptFuncCallArg
118109c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMWindowMethod
118209c6f265SBram Moolenaar  hi def link typescriptBOMWindowMethod Structure
118309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onabort onbeforeunload onblur onchange
118409c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onclick onclose oncontextmenu ondevicelight
118509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained ondevicemotion ondeviceorientation
118609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained ondeviceproximity ondragdrop onerror
118709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onfocus onhashchange onkeydown onkeypress
118809c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onkeyup onload onmousedown onmousemove
118909c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onmouseout onmouseover onmouseup
119009c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onmozbeforepaint onpaint onpopstate
119109c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onreset onresize onscroll onselect
119209c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onsubmit onunload onuserproximity
119309c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowEvent contained onpageshow onpagehide
119409c6f265SBram Moolenaar  hi def link typescriptBOMWindowEvent Keyword
119509c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowCons containedin=typescriptIdentifierName DOMParser
119609c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowCons containedin=typescriptIdentifierName QueryInterface
119709c6f265SBram Moolenaar  syntax keyword typescriptBOMWindowCons containedin=typescriptIdentifierName XMLSerializer
119809c6f265SBram Moolenaar  hi def link typescriptBOMWindowCons Structure
119909c6f265SBram Moolenaar
120009c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorProp contained battery buildID connection cookieEnabled
120109c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorProp contained doNotTrack maxTouchPoints oscpu
120209c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorProp contained productSub push serviceWorker
120309c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorProp contained vendor vendorSub
120409c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMNavigatorProp
120509c6f265SBram Moolenaar  hi def link typescriptBOMNavigatorProp Keyword
120609c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorMethod contained addIdleObserver geolocation nextgroup=typescriptFuncCallArg
120709c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorMethod contained getDeviceStorage getDeviceStorages nextgroup=typescriptFuncCallArg
120809c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorMethod contained getGamepads getUserMedia registerContentHandler nextgroup=typescriptFuncCallArg
120909c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorMethod contained removeIdleObserver requestWakeLock nextgroup=typescriptFuncCallArg
121009c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorMethod contained share vibrate watch registerProtocolHandler nextgroup=typescriptFuncCallArg
121109c6f265SBram Moolenaar  syntax keyword typescriptBOMNavigatorMethod contained sendBeacon nextgroup=typescriptFuncCallArg
121209c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMNavigatorMethod
121309c6f265SBram Moolenaar  hi def link typescriptBOMNavigatorMethod Keyword
121409c6f265SBram Moolenaar  syntax keyword typescriptServiceWorkerMethod contained register nextgroup=typescriptFuncCallArg
121509c6f265SBram Moolenaar  syntax cluster props add=typescriptServiceWorkerMethod
121609c6f265SBram Moolenaar  hi def link typescriptServiceWorkerMethod Keyword
121709c6f265SBram Moolenaar
121809c6f265SBram Moolenaar  syntax keyword typescriptBOMLocationProp contained href protocol host hostname port
121909c6f265SBram Moolenaar  syntax keyword typescriptBOMLocationProp contained pathname search hash username password
122009c6f265SBram Moolenaar  syntax keyword typescriptBOMLocationProp contained origin
122109c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMLocationProp
122209c6f265SBram Moolenaar  hi def link typescriptBOMLocationProp Keyword
122309c6f265SBram Moolenaar  syntax keyword typescriptBOMLocationMethod contained assign reload replace toString nextgroup=typescriptFuncCallArg
122409c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMLocationMethod
122509c6f265SBram Moolenaar  hi def link typescriptBOMLocationMethod Keyword
122609c6f265SBram Moolenaar
122709c6f265SBram Moolenaar  syntax keyword typescriptBOMHistoryProp contained length current next previous state
122809c6f265SBram Moolenaar  syntax keyword typescriptBOMHistoryProp contained scrollRestoration
122909c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMHistoryProp
123009c6f265SBram Moolenaar  hi def link typescriptBOMHistoryProp Keyword
123109c6f265SBram Moolenaar  syntax keyword typescriptBOMHistoryMethod contained back forward go pushState replaceState nextgroup=typescriptFuncCallArg
123209c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMHistoryMethod
123309c6f265SBram Moolenaar  hi def link typescriptBOMHistoryMethod Keyword
123409c6f265SBram Moolenaar
123509c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName console
123609c6f265SBram Moolenaar  syntax keyword typescriptConsoleMethod contained count dir error group groupCollapsed nextgroup=typescriptFuncCallArg
123709c6f265SBram Moolenaar  syntax keyword typescriptConsoleMethod contained groupEnd info log time timeEnd trace nextgroup=typescriptFuncCallArg
123809c6f265SBram Moolenaar  syntax keyword typescriptConsoleMethod contained warn nextgroup=typescriptFuncCallArg
123909c6f265SBram Moolenaar  syntax cluster props add=typescriptConsoleMethod
124009c6f265SBram Moolenaar  hi def link typescriptConsoleMethod Keyword
124109c6f265SBram Moolenaar
124209c6f265SBram Moolenaar  syntax keyword typescriptXHRGlobal containedin=typescriptIdentifierName XMLHttpRequest
124309c6f265SBram Moolenaar  hi def link typescriptXHRGlobal Structure
124409c6f265SBram Moolenaar  syntax keyword typescriptXHRProp contained onreadystatechange readyState response
124509c6f265SBram Moolenaar  syntax keyword typescriptXHRProp contained responseText responseType responseXML status
124609c6f265SBram Moolenaar  syntax keyword typescriptXHRProp contained statusText timeout ontimeout upload withCredentials
124709c6f265SBram Moolenaar  syntax cluster props add=typescriptXHRProp
124809c6f265SBram Moolenaar  hi def link typescriptXHRProp Keyword
124909c6f265SBram Moolenaar  syntax keyword typescriptXHRMethod contained abort getAllResponseHeaders getResponseHeader nextgroup=typescriptFuncCallArg
125009c6f265SBram Moolenaar  syntax keyword typescriptXHRMethod contained open overrideMimeType send setRequestHeader nextgroup=typescriptFuncCallArg
125109c6f265SBram Moolenaar  syntax cluster props add=typescriptXHRMethod
125209c6f265SBram Moolenaar  hi def link typescriptXHRMethod Keyword
125309c6f265SBram Moolenaar
125409c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Blob BlobBuilder
125509c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName File FileReader
125609c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName FileReaderSync
125709c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName URL nextgroup=typescriptGlobalURLDot,typescriptFuncCallArg
125809c6f265SBram Moolenaar  syntax match   typescriptGlobalURLDot /\./ contained nextgroup=typescriptURLStaticMethod,typescriptProp
125909c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName URLUtils
126009c6f265SBram Moolenaar  syntax keyword typescriptFileMethod contained readAsArrayBuffer readAsBinaryString nextgroup=typescriptFuncCallArg
126109c6f265SBram Moolenaar  syntax keyword typescriptFileMethod contained readAsDataURL readAsText nextgroup=typescriptFuncCallArg
126209c6f265SBram Moolenaar  syntax cluster props add=typescriptFileMethod
126309c6f265SBram Moolenaar  hi def link typescriptFileMethod Keyword
126409c6f265SBram Moolenaar  syntax keyword typescriptFileReaderProp contained error readyState result
126509c6f265SBram Moolenaar  syntax cluster props add=typescriptFileReaderProp
126609c6f265SBram Moolenaar  hi def link typescriptFileReaderProp Keyword
126709c6f265SBram Moolenaar  syntax keyword typescriptFileReaderMethod contained abort readAsArrayBuffer readAsBinaryString nextgroup=typescriptFuncCallArg
126809c6f265SBram Moolenaar  syntax keyword typescriptFileReaderMethod contained readAsDataURL readAsText nextgroup=typescriptFuncCallArg
126909c6f265SBram Moolenaar  syntax cluster props add=typescriptFileReaderMethod
127009c6f265SBram Moolenaar  hi def link typescriptFileReaderMethod Keyword
127109c6f265SBram Moolenaar  syntax keyword typescriptFileListMethod contained item nextgroup=typescriptFuncCallArg
127209c6f265SBram Moolenaar  syntax cluster props add=typescriptFileListMethod
127309c6f265SBram Moolenaar  hi def link typescriptFileListMethod Keyword
127409c6f265SBram Moolenaar  syntax keyword typescriptBlobMethod contained append getBlob getFile nextgroup=typescriptFuncCallArg
127509c6f265SBram Moolenaar  syntax cluster props add=typescriptBlobMethod
127609c6f265SBram Moolenaar  hi def link typescriptBlobMethod Keyword
127709c6f265SBram Moolenaar  syntax keyword typescriptURLUtilsProp contained hash host hostname href origin password
127809c6f265SBram Moolenaar  syntax keyword typescriptURLUtilsProp contained pathname port protocol search searchParams
127909c6f265SBram Moolenaar  syntax keyword typescriptURLUtilsProp contained username
128009c6f265SBram Moolenaar  syntax cluster props add=typescriptURLUtilsProp
128109c6f265SBram Moolenaar  hi def link typescriptURLUtilsProp Keyword
128209c6f265SBram Moolenaar  syntax keyword typescriptURLStaticMethod contained createObjectURL revokeObjectURL nextgroup=typescriptFuncCallArg
128309c6f265SBram Moolenaar  hi def link typescriptURLStaticMethod Keyword
128409c6f265SBram Moolenaar
128509c6f265SBram Moolenaar  syntax keyword typescriptCryptoGlobal containedin=typescriptIdentifierName crypto
128609c6f265SBram Moolenaar  hi def link typescriptCryptoGlobal Structure
128709c6f265SBram Moolenaar  syntax keyword typescriptSubtleCryptoMethod contained encrypt decrypt sign verify nextgroup=typescriptFuncCallArg
128809c6f265SBram Moolenaar  syntax keyword typescriptSubtleCryptoMethod contained digest nextgroup=typescriptFuncCallArg
128909c6f265SBram Moolenaar  syntax cluster props add=typescriptSubtleCryptoMethod
129009c6f265SBram Moolenaar  hi def link typescriptSubtleCryptoMethod Keyword
129109c6f265SBram Moolenaar  syntax keyword typescriptCryptoProp contained subtle
129209c6f265SBram Moolenaar  syntax cluster props add=typescriptCryptoProp
129309c6f265SBram Moolenaar  hi def link typescriptCryptoProp Keyword
129409c6f265SBram Moolenaar  syntax keyword typescriptCryptoMethod contained getRandomValues nextgroup=typescriptFuncCallArg
129509c6f265SBram Moolenaar  syntax cluster props add=typescriptCryptoMethod
129609c6f265SBram Moolenaar  hi def link typescriptCryptoMethod Keyword
129709c6f265SBram Moolenaar
129809c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Headers Request
129909c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Response
130009c6f265SBram Moolenaar  syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName fetch nextgroup=typescriptFuncCallArg
130109c6f265SBram Moolenaar  syntax cluster props add=typescriptGlobalMethod
130209c6f265SBram Moolenaar  hi def link typescriptGlobalMethod Structure
130309c6f265SBram Moolenaar  syntax keyword typescriptHeadersMethod contained append delete get getAll has set nextgroup=typescriptFuncCallArg
130409c6f265SBram Moolenaar  syntax cluster props add=typescriptHeadersMethod
130509c6f265SBram Moolenaar  hi def link typescriptHeadersMethod Keyword
130609c6f265SBram Moolenaar  syntax keyword typescriptRequestProp contained method url headers context referrer
130709c6f265SBram Moolenaar  syntax keyword typescriptRequestProp contained mode credentials cache
130809c6f265SBram Moolenaar  syntax cluster props add=typescriptRequestProp
130909c6f265SBram Moolenaar  hi def link typescriptRequestProp Keyword
131009c6f265SBram Moolenaar  syntax keyword typescriptRequestMethod contained clone nextgroup=typescriptFuncCallArg
131109c6f265SBram Moolenaar  syntax cluster props add=typescriptRequestMethod
131209c6f265SBram Moolenaar  hi def link typescriptRequestMethod Keyword
131309c6f265SBram Moolenaar  syntax keyword typescriptResponseProp contained type url status statusText headers
131409c6f265SBram Moolenaar  syntax keyword typescriptResponseProp contained redirected
131509c6f265SBram Moolenaar  syntax cluster props add=typescriptResponseProp
131609c6f265SBram Moolenaar  hi def link typescriptResponseProp Keyword
131709c6f265SBram Moolenaar  syntax keyword typescriptResponseMethod contained clone nextgroup=typescriptFuncCallArg
131809c6f265SBram Moolenaar  syntax cluster props add=typescriptResponseMethod
131909c6f265SBram Moolenaar  hi def link typescriptResponseMethod Keyword
132009c6f265SBram Moolenaar
132109c6f265SBram Moolenaar  syntax keyword typescriptServiceWorkerProp contained controller ready
132209c6f265SBram Moolenaar  syntax cluster props add=typescriptServiceWorkerProp
132309c6f265SBram Moolenaar  hi def link typescriptServiceWorkerProp Keyword
132409c6f265SBram Moolenaar  syntax keyword typescriptServiceWorkerMethod contained register getRegistration nextgroup=typescriptFuncCallArg
132509c6f265SBram Moolenaar  syntax cluster props add=typescriptServiceWorkerMethod
132609c6f265SBram Moolenaar  hi def link typescriptServiceWorkerMethod Keyword
132709c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Cache
132809c6f265SBram Moolenaar  syntax keyword typescriptCacheMethod contained match matchAll add addAll put delete nextgroup=typescriptFuncCallArg
132909c6f265SBram Moolenaar  syntax keyword typescriptCacheMethod contained keys nextgroup=typescriptFuncCallArg
133009c6f265SBram Moolenaar  syntax cluster props add=typescriptCacheMethod
133109c6f265SBram Moolenaar  hi def link typescriptCacheMethod Keyword
133209c6f265SBram Moolenaar
133309c6f265SBram Moolenaar  syntax keyword typescriptEncodingGlobal containedin=typescriptIdentifierName TextEncoder
133409c6f265SBram Moolenaar  syntax keyword typescriptEncodingGlobal containedin=typescriptIdentifierName TextDecoder
133509c6f265SBram Moolenaar  hi def link typescriptEncodingGlobal Structure
133609c6f265SBram Moolenaar  syntax keyword typescriptEncodingProp contained encoding fatal ignoreBOM
133709c6f265SBram Moolenaar  syntax cluster props add=typescriptEncodingProp
133809c6f265SBram Moolenaar  hi def link typescriptEncodingProp Keyword
133909c6f265SBram Moolenaar  syntax keyword typescriptEncodingMethod contained encode decode nextgroup=typescriptFuncCallArg
134009c6f265SBram Moolenaar  syntax cluster props add=typescriptEncodingMethod
134109c6f265SBram Moolenaar  hi def link typescriptEncodingMethod Keyword
134209c6f265SBram Moolenaar
134309c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName Geolocation
134409c6f265SBram Moolenaar  syntax keyword typescriptGeolocationMethod contained getCurrentPosition watchPosition nextgroup=typescriptFuncCallArg
134509c6f265SBram Moolenaar  syntax keyword typescriptGeolocationMethod contained clearWatch nextgroup=typescriptFuncCallArg
134609c6f265SBram Moolenaar  syntax cluster props add=typescriptGeolocationMethod
134709c6f265SBram Moolenaar  hi def link typescriptGeolocationMethod Keyword
134809c6f265SBram Moolenaar
134909c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName NetworkInformation
135009c6f265SBram Moolenaar  syntax keyword typescriptBOMNetworkProp contained downlink downlinkMax effectiveType
135109c6f265SBram Moolenaar  syntax keyword typescriptBOMNetworkProp contained rtt type
135209c6f265SBram Moolenaar  syntax cluster props add=typescriptBOMNetworkProp
135309c6f265SBram Moolenaar  hi def link typescriptBOMNetworkProp Keyword
135409c6f265SBram Moolenaar
135509c6f265SBram Moolenaar  syntax keyword typescriptGlobal containedin=typescriptIdentifierName PaymentRequest
135609c6f265SBram Moolenaar  syntax keyword typescriptPaymentMethod contained show abort canMakePayment nextgroup=typescriptFuncCallArg
135709c6f265SBram Moolenaar  syntax cluster props add=typescriptPaymentMethod
135809c6f265SBram Moolenaar  hi def link typescriptPaymentMethod Keyword
135909c6f265SBram Moolenaar  syntax keyword typescriptPaymentProp contained shippingAddress shippingOption result
136009c6f265SBram Moolenaar  syntax cluster props add=typescriptPaymentProp
136109c6f265SBram Moolenaar  hi def link typescriptPaymentProp Keyword
136209c6f265SBram Moolenaar  syntax keyword typescriptPaymentEvent contained onshippingaddresschange onshippingoptionchange
136309c6f265SBram Moolenaar  hi def link typescriptPaymentEvent Keyword
136409c6f265SBram Moolenaar  syntax keyword typescriptPaymentResponseMethod contained complete nextgroup=typescriptFuncCallArg
136509c6f265SBram Moolenaar  syntax cluster props add=typescriptPaymentResponseMethod
136609c6f265SBram Moolenaar  hi def link typescriptPaymentResponseMethod Keyword
136709c6f265SBram Moolenaar  syntax keyword typescriptPaymentResponseProp contained details methodName payerEmail
136809c6f265SBram Moolenaar  syntax keyword typescriptPaymentResponseProp contained payerPhone shippingAddress
136909c6f265SBram Moolenaar  syntax keyword typescriptPaymentResponseProp contained shippingOption
137009c6f265SBram Moolenaar  syntax cluster props add=typescriptPaymentResponseProp
137109c6f265SBram Moolenaar  hi def link typescriptPaymentResponseProp Keyword
137209c6f265SBram Moolenaar  syntax keyword typescriptPaymentAddressProp contained addressLine careOf city country
137309c6f265SBram Moolenaar  syntax keyword typescriptPaymentAddressProp contained country dependentLocality languageCode
137409c6f265SBram Moolenaar  syntax keyword typescriptPaymentAddressProp contained organization phone postalCode
137509c6f265SBram Moolenaar  syntax keyword typescriptPaymentAddressProp contained recipient region sortingCode
137609c6f265SBram Moolenaar  syntax cluster props add=typescriptPaymentAddressProp
137709c6f265SBram Moolenaar  hi def link typescriptPaymentAddressProp Keyword
137809c6f265SBram Moolenaar  syntax keyword typescriptPaymentShippingOptionProp contained id label amount selected
137909c6f265SBram Moolenaar  syntax cluster props add=typescriptPaymentShippingOptionProp
138009c6f265SBram Moolenaar  hi def link typescriptPaymentShippingOptionProp Keyword
138109c6f265SBram Moolenaar
138209c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeProp contained attributes baseURI baseURIObject childNodes
138309c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeProp contained firstChild lastChild localName namespaceURI
138409c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeProp contained nextSibling nodeName nodePrincipal
138509c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeProp contained nodeType nodeValue ownerDocument parentElement
138609c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeProp contained parentNode prefix previousSibling textContent
138709c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMNodeProp
138809c6f265SBram Moolenaar  hi def link typescriptDOMNodeProp Keyword
138909c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeMethod contained appendChild cloneNode compareDocumentPosition nextgroup=typescriptFuncCallArg
139009c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeMethod contained getUserData hasAttributes hasChildNodes nextgroup=typescriptFuncCallArg
139109c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeMethod contained insertBefore isDefaultNamespace isEqualNode nextgroup=typescriptFuncCallArg
139209c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeMethod contained isSameNode isSupported lookupNamespaceURI nextgroup=typescriptFuncCallArg
139309c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeMethod contained lookupPrefix normalize removeChild nextgroup=typescriptFuncCallArg
139409c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeMethod contained replaceChild setUserData nextgroup=typescriptFuncCallArg
139509c6f265SBram Moolenaar  syntax match typescriptDOMNodeMethod contained /contains/
139609c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMNodeMethod
139709c6f265SBram Moolenaar  hi def link typescriptDOMNodeMethod Keyword
139809c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeType contained ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE
139909c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeType contained CDATA_SECTION_NODEN_NODE ENTITY_REFERENCE_NODE
140009c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeType contained ENTITY_NODE PROCESSING_INSTRUCTION_NODEN_NODE
140109c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeType contained COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE
140209c6f265SBram Moolenaar  syntax keyword typescriptDOMNodeType contained DOCUMENT_FRAGMENT_NODE NOTATION_NODE
140309c6f265SBram Moolenaar  hi def link typescriptDOMNodeType Keyword
140409c6f265SBram Moolenaar
140509c6f265SBram Moolenaar  syntax keyword typescriptDOMElemAttrs contained accessKey clientHeight clientLeft
140609c6f265SBram Moolenaar  syntax keyword typescriptDOMElemAttrs contained clientTop clientWidth id innerHTML
140709c6f265SBram Moolenaar  syntax keyword typescriptDOMElemAttrs contained length onafterscriptexecute onbeforescriptexecute
140809c6f265SBram Moolenaar  syntax keyword typescriptDOMElemAttrs contained oncopy oncut onpaste onwheel scrollHeight
140909c6f265SBram Moolenaar  syntax keyword typescriptDOMElemAttrs contained scrollLeft scrollTop scrollWidth tagName
141009c6f265SBram Moolenaar  syntax keyword typescriptDOMElemAttrs contained classList className name outerHTML
141109c6f265SBram Moolenaar  syntax keyword typescriptDOMElemAttrs contained style
141209c6f265SBram Moolenaar  hi def link typescriptDOMElemAttrs Keyword
141309c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained getAttributeNS getAttributeNode getAttributeNodeNS
141409c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained getBoundingClientRect getClientRects
141509c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained getElementsByClassName getElementsByTagName
141609c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained getElementsByTagNameNS hasAttribute
141709c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained hasAttributeNS insertAdjacentHTML
141809c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained matches querySelector querySelectorAll
141909c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained removeAttribute removeAttributeNS
142009c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained removeAttributeNode requestFullscreen
142109c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained requestPointerLock scrollIntoView
142209c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained setAttribute setAttributeNS setAttributeNode
142309c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained setAttributeNodeNS setCapture supports
142409c6f265SBram Moolenaar  syntax keyword typescriptDOMElemFuncs contained getAttribute
142509c6f265SBram Moolenaar  hi def link typescriptDOMElemFuncs Keyword
142609c6f265SBram Moolenaar
142709c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained activeElement body cookie defaultView
142809c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained designMode dir domain embeds forms head
142909c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained images lastModified links location plugins
143009c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained postMessage readyState referrer registerElement
143109c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained scripts styleSheets title vlinkColor
143209c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained xmlEncoding characterSet compatMode
143309c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained contentType currentScript doctype documentElement
143409c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained documentURI documentURIObject firstChild
143509c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained implementation lastStyleSheetSet namespaceURI
143609c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained nodePrincipal ononline pointerLockElement
143709c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained popupNode preferredStyleSheetSet selectedStyleSheetSet
143809c6f265SBram Moolenaar  syntax keyword typescriptDOMDocProp contained styleSheetSets textContent tooltipNode
143909c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMDocProp
144009c6f265SBram Moolenaar  hi def link typescriptDOMDocProp Keyword
144109c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained caretPositionFromPoint close createNodeIterator nextgroup=typescriptFuncCallArg
144209c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained createRange createTreeWalker elementFromPoint nextgroup=typescriptFuncCallArg
144309c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained getElementsByName adoptNode createAttribute nextgroup=typescriptFuncCallArg
144409c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained createCDATASection createComment createDocumentFragment nextgroup=typescriptFuncCallArg
144509c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained createElement createElementNS createEvent nextgroup=typescriptFuncCallArg
144609c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained createExpression createNSResolver nextgroup=typescriptFuncCallArg
144709c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained createProcessingInstruction createTextNode nextgroup=typescriptFuncCallArg
144809c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained enableStyleSheetsForSet evaluate execCommand nextgroup=typescriptFuncCallArg
144909c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained exitPointerLock getBoxObjectFor getElementById nextgroup=typescriptFuncCallArg
145009c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained getElementsByClassName getElementsByTagName nextgroup=typescriptFuncCallArg
145109c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained getElementsByTagNameNS getSelection nextgroup=typescriptFuncCallArg
145209c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained hasFocus importNode loadOverlay open nextgroup=typescriptFuncCallArg
145309c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained queryCommandSupported querySelector nextgroup=typescriptFuncCallArg
145409c6f265SBram Moolenaar  syntax keyword typescriptDOMDocMethod contained querySelectorAll write writeln nextgroup=typescriptFuncCallArg
145509c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMDocMethod
145609c6f265SBram Moolenaar  hi def link typescriptDOMDocMethod Keyword
145709c6f265SBram Moolenaar
145809c6f265SBram Moolenaar  syntax keyword typescriptDOMEventTargetMethod contained addEventListener removeEventListener nextgroup=typescriptEventFuncCallArg
145909c6f265SBram Moolenaar  syntax keyword typescriptDOMEventTargetMethod contained dispatchEvent waitUntil nextgroup=typescriptEventFuncCallArg
146009c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMEventTargetMethod
146109c6f265SBram Moolenaar  hi def link typescriptDOMEventTargetMethod Keyword
146209c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName AnimationEvent
146309c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName AudioProcessingEvent
146409c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName BeforeInputEvent
146509c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName BeforeUnloadEvent
146609c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName BlobEvent
146709c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName ClipboardEvent
146809c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CloseEvent
146909c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CompositionEvent
147009c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CSSFontFaceLoadEvent
147109c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CustomEvent
147209c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceLightEvent
147309c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceMotionEvent
147409c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceOrientationEvent
147509c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceProximityEvent
147609c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DOMTransactionEvent
147709c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DragEvent
147809c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName EditingBeforeInputEvent
147909c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName ErrorEvent
148009c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName FocusEvent
148109c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName GamepadEvent
148209c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName HashChangeEvent
148309c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName IDBVersionChangeEvent
148409c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName KeyboardEvent
148509c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MediaStreamEvent
148609c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MessageEvent
148709c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MouseEvent
148809c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MutationEvent
148909c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName OfflineAudioCompletionEvent
149009c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName PageTransitionEvent
149109c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName PointerEvent
149209c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName PopStateEvent
149309c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName ProgressEvent
149409c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName RelatedEvent
149509c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName RTCPeerConnectionIceEvent
149609c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName SensorEvent
149709c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName StorageEvent
149809c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName SVGEvent
149909c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName SVGZoomEvent
150009c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TimeEvent
150109c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TouchEvent
150209c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TrackEvent
150309c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TransitionEvent
150409c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName UIEvent
150509c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName UserProximityEvent
150609c6f265SBram Moolenaar  syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName WheelEvent
150709c6f265SBram Moolenaar  hi def link typescriptDOMEventCons Structure
150809c6f265SBram Moolenaar  syntax keyword typescriptDOMEventProp contained bubbles cancelable currentTarget defaultPrevented
150909c6f265SBram Moolenaar  syntax keyword typescriptDOMEventProp contained eventPhase target timeStamp type isTrusted
151009c6f265SBram Moolenaar  syntax keyword typescriptDOMEventProp contained isReload
151109c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMEventProp
151209c6f265SBram Moolenaar  hi def link typescriptDOMEventProp Keyword
151309c6f265SBram Moolenaar  syntax keyword typescriptDOMEventMethod contained initEvent preventDefault stopImmediatePropagation nextgroup=typescriptEventFuncCallArg
151409c6f265SBram Moolenaar  syntax keyword typescriptDOMEventMethod contained stopPropagation respondWith default nextgroup=typescriptEventFuncCallArg
151509c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMEventMethod
151609c6f265SBram Moolenaar  hi def link typescriptDOMEventMethod Keyword
151709c6f265SBram Moolenaar
151809c6f265SBram Moolenaar  syntax keyword typescriptDOMStorage contained sessionStorage localStorage
151909c6f265SBram Moolenaar  hi def link typescriptDOMStorage Keyword
152009c6f265SBram Moolenaar  syntax keyword typescriptDOMStorageProp contained length
152109c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMStorageProp
152209c6f265SBram Moolenaar  hi def link typescriptDOMStorageProp Keyword
152309c6f265SBram Moolenaar  syntax keyword typescriptDOMStorageMethod contained getItem key setItem removeItem nextgroup=typescriptFuncCallArg
152409c6f265SBram Moolenaar  syntax keyword typescriptDOMStorageMethod contained clear nextgroup=typescriptFuncCallArg
152509c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMStorageMethod
152609c6f265SBram Moolenaar  hi def link typescriptDOMStorageMethod Keyword
152709c6f265SBram Moolenaar
152809c6f265SBram Moolenaar  syntax keyword typescriptDOMFormProp contained acceptCharset action elements encoding
152909c6f265SBram Moolenaar  syntax keyword typescriptDOMFormProp contained enctype length method name target
153009c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMFormProp
153109c6f265SBram Moolenaar  hi def link typescriptDOMFormProp Keyword
153209c6f265SBram Moolenaar  syntax keyword typescriptDOMFormMethod contained reportValidity reset submit nextgroup=typescriptFuncCallArg
153309c6f265SBram Moolenaar  syntax cluster props add=typescriptDOMFormMethod
153409c6f265SBram Moolenaar  hi def link typescriptDOMFormMethod Keyword
153509c6f265SBram Moolenaar
153609c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained alignContent alignItems alignSelf animation
153709c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained animationDelay animationDirection animationDuration
153809c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained animationFillMode animationIterationCount
153909c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained animationName animationPlayState animationTimingFunction
154009c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained appearance backfaceVisibility background
154109c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained backgroundAttachment backgroundBlendMode
154209c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained backgroundClip backgroundColor backgroundImage
154309c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained backgroundOrigin backgroundPosition backgroundRepeat
154409c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained backgroundSize border borderBottom borderBottomColor
154509c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderBottomLeftRadius borderBottomRightRadius
154609c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderBottomStyle borderBottomWidth borderCollapse
154709c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderColor borderImage borderImageOutset
154809c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderImageRepeat borderImageSlice borderImageSource
154909c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderImageWidth borderLeft borderLeftColor
155009c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderLeftStyle borderLeftWidth borderRadius
155109c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderRight borderRightColor borderRightStyle
155209c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderRightWidth borderSpacing borderStyle
155309c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderTop borderTopColor borderTopLeftRadius
155409c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderTopRightRadius borderTopStyle borderTopWidth
155509c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained borderWidth bottom boxDecorationBreak
155609c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained boxShadow boxSizing breakAfter breakBefore
155709c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained breakInside captionSide caretColor caretShape
155809c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained caret clear clip clipPath color columns
155909c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained columnCount columnFill columnGap columnRule
156009c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained columnRuleColor columnRuleStyle columnRuleWidth
156109c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained columnSpan columnWidth content counterIncrement
156209c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained counterReset cursor direction display
156309c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained emptyCells flex flexBasis flexDirection
156409c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained flexFlow flexGrow flexShrink flexWrap
156509c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained float font fontFamily fontFeatureSettings
156609c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained fontKerning fontLanguageOverride fontSize
156709c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained fontSizeAdjust fontStretch fontStyle fontSynthesis
156809c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained fontVariant fontVariantAlternates fontVariantCaps
156909c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained fontVariantEastAsian fontVariantLigatures
157009c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained fontVariantNumeric fontVariantPosition
157109c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained fontWeight grad grid gridArea gridAutoColumns
157209c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained gridAutoFlow gridAutoPosition gridAutoRows
157309c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained gridColumn gridColumnStart gridColumnEnd
157409c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained gridRow gridRowStart gridRowEnd gridTemplate
157509c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained gridTemplateAreas gridTemplateRows gridTemplateColumns
157609c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained height hyphens imageRendering imageResolution
157709c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained imageOrientation imeMode inherit justifyContent
157809c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained left letterSpacing lineBreak lineHeight
157909c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained listStyle listStyleImage listStylePosition
158009c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained listStyleType margin marginBottom marginLeft
158109c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained marginRight marginTop marks mask maskType
158209c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained maxHeight maxWidth minHeight minWidth
158309c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained mixBlendMode objectFit objectPosition
158409c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained opacity order orphans outline outlineColor
158509c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained outlineOffset outlineStyle outlineWidth
158609c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained overflow overflowWrap overflowX overflowY
158709c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained overflowClipBox padding paddingBottom
158809c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained paddingLeft paddingRight paddingTop pageBreakAfter
158909c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained pageBreakBefore pageBreakInside perspective
159009c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained perspectiveOrigin pointerEvents position
159109c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained quotes resize right shapeImageThreshold
159209c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained shapeMargin shapeOutside tableLayout tabSize
159309c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained textAlign textAlignLast textCombineHorizontal
159409c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained textDecoration textDecorationColor textDecorationLine
159509c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained textDecorationStyle textIndent textOrientation
159609c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained textOverflow textRendering textShadow
159709c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained textTransform textUnderlinePosition top
159809c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained touchAction transform transformOrigin
159909c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained transformStyle transition transitionDelay
160009c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained transitionDuration transitionProperty
160109c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained transitionTimingFunction unicodeBidi unicodeRange
160209c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained userSelect userZoom verticalAlign visibility
160309c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained whiteSpace width willChange wordBreak
160409c6f265SBram Moolenaar  syntax keyword typescriptDOMStyle contained wordSpacing wordWrap writingMode zIndex
160509c6f265SBram Moolenaar  hi def link typescriptDOMStyle Keyword
160609c6f265SBram Moolenaar
160709c6f265SBram Moolenaar
160809c6f265SBram Moolenaar
160909c6f265SBram Moolenaar  let typescript_props = 1
161009c6f265SBram Moolenaar  syntax keyword typescriptAnimationEvent contained animationend animationiteration
161109c6f265SBram Moolenaar  syntax keyword typescriptAnimationEvent contained animationstart beginEvent endEvent
161209c6f265SBram Moolenaar  syntax keyword typescriptAnimationEvent contained repeatEvent
161309c6f265SBram Moolenaar  syntax cluster events add=typescriptAnimationEvent
161409c6f265SBram Moolenaar  hi def link typescriptAnimationEvent Title
161509c6f265SBram Moolenaar  syntax keyword typescriptCSSEvent contained CssRuleViewRefreshed CssRuleViewChanged
161609c6f265SBram Moolenaar  syntax keyword typescriptCSSEvent contained CssRuleViewCSSLinkClicked transitionend
161709c6f265SBram Moolenaar  syntax cluster events add=typescriptCSSEvent
161809c6f265SBram Moolenaar  hi def link typescriptCSSEvent Title
161909c6f265SBram Moolenaar  syntax keyword typescriptDatabaseEvent contained blocked complete error success upgradeneeded
162009c6f265SBram Moolenaar  syntax keyword typescriptDatabaseEvent contained versionchange
162109c6f265SBram Moolenaar  syntax cluster events add=typescriptDatabaseEvent
162209c6f265SBram Moolenaar  hi def link typescriptDatabaseEvent Title
162309c6f265SBram Moolenaar  syntax keyword typescriptDocumentEvent contained DOMLinkAdded DOMLinkRemoved DOMMetaAdded
162409c6f265SBram Moolenaar  syntax keyword typescriptDocumentEvent contained DOMMetaRemoved DOMWillOpenModalDialog
162509c6f265SBram Moolenaar  syntax keyword typescriptDocumentEvent contained DOMModalDialogClosed unload
162609c6f265SBram Moolenaar  syntax cluster events add=typescriptDocumentEvent
162709c6f265SBram Moolenaar  hi def link typescriptDocumentEvent Title
162809c6f265SBram Moolenaar  syntax keyword typescriptDOMMutationEvent contained DOMAttributeNameChanged DOMAttrModified
162909c6f265SBram Moolenaar  syntax keyword typescriptDOMMutationEvent contained DOMCharacterDataModified DOMContentLoaded
163009c6f265SBram Moolenaar  syntax keyword typescriptDOMMutationEvent contained DOMElementNameChanged DOMNodeInserted
163109c6f265SBram Moolenaar  syntax keyword typescriptDOMMutationEvent contained DOMNodeInsertedIntoDocument DOMNodeRemoved
163209c6f265SBram Moolenaar  syntax keyword typescriptDOMMutationEvent contained DOMNodeRemovedFromDocument DOMSubtreeModified
163309c6f265SBram Moolenaar  syntax cluster events add=typescriptDOMMutationEvent
163409c6f265SBram Moolenaar  hi def link typescriptDOMMutationEvent Title
163509c6f265SBram Moolenaar  syntax keyword typescriptDragEvent contained drag dragdrop dragend dragenter dragexit
163609c6f265SBram Moolenaar  syntax keyword typescriptDragEvent contained draggesture dragleave dragover dragstart
163709c6f265SBram Moolenaar  syntax keyword typescriptDragEvent contained drop
163809c6f265SBram Moolenaar  syntax cluster events add=typescriptDragEvent
163909c6f265SBram Moolenaar  hi def link typescriptDragEvent Title
164009c6f265SBram Moolenaar  syntax keyword typescriptElementEvent contained invalid overflow underflow DOMAutoComplete
164109c6f265SBram Moolenaar  syntax keyword typescriptElementEvent contained command commandupdate
164209c6f265SBram Moolenaar  syntax cluster events add=typescriptElementEvent
164309c6f265SBram Moolenaar  hi def link typescriptElementEvent Title
164409c6f265SBram Moolenaar  syntax keyword typescriptFocusEvent contained blur change DOMFocusIn DOMFocusOut focus
164509c6f265SBram Moolenaar  syntax keyword typescriptFocusEvent contained focusin focusout
164609c6f265SBram Moolenaar  syntax cluster events add=typescriptFocusEvent
164709c6f265SBram Moolenaar  hi def link typescriptFocusEvent Title
164809c6f265SBram Moolenaar  syntax keyword typescriptFormEvent contained reset submit
164909c6f265SBram Moolenaar  syntax cluster events add=typescriptFormEvent
165009c6f265SBram Moolenaar  hi def link typescriptFormEvent Title
165109c6f265SBram Moolenaar  syntax keyword typescriptFrameEvent contained DOMFrameContentLoaded
165209c6f265SBram Moolenaar  syntax cluster events add=typescriptFrameEvent
165309c6f265SBram Moolenaar  hi def link typescriptFrameEvent Title
165409c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained click contextmenu DOMMouseScroll
165509c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained dblclick gamepadconnected gamepaddisconnected
165609c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained keydown keypress keyup MozGamepadButtonDown
165709c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained MozGamepadButtonUp mousedown mouseenter
165809c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained mouseleave mousemove mouseout
165909c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained mouseover mouseup mousewheel MozMousePixelScroll
166009c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained pointerlockchange pointerlockerror
166109c6f265SBram Moolenaar  syntax keyword typescriptInputDeviceEvent contained wheel
166209c6f265SBram Moolenaar  syntax cluster events add=typescriptInputDeviceEvent
166309c6f265SBram Moolenaar  hi def link typescriptInputDeviceEvent Title
166409c6f265SBram Moolenaar  syntax keyword typescriptMediaEvent contained audioprocess canplay canplaythrough
166509c6f265SBram Moolenaar  syntax keyword typescriptMediaEvent contained durationchange emptied ended ended loadeddata
166609c6f265SBram Moolenaar  syntax keyword typescriptMediaEvent contained loadedmetadata MozAudioAvailable pause
166709c6f265SBram Moolenaar  syntax keyword typescriptMediaEvent contained play playing ratechange seeked seeking
166809c6f265SBram Moolenaar  syntax keyword typescriptMediaEvent contained stalled suspend timeupdate volumechange
166909c6f265SBram Moolenaar  syntax keyword typescriptMediaEvent contained waiting complete
167009c6f265SBram Moolenaar  syntax cluster events add=typescriptMediaEvent
167109c6f265SBram Moolenaar  hi def link typescriptMediaEvent Title
167209c6f265SBram Moolenaar  syntax keyword typescriptMenuEvent contained DOMMenuItemActive DOMMenuItemInactive
167309c6f265SBram Moolenaar  syntax cluster events add=typescriptMenuEvent
167409c6f265SBram Moolenaar  hi def link typescriptMenuEvent Title
167509c6f265SBram Moolenaar  syntax keyword typescriptNetworkEvent contained datachange dataerror disabled enabled
167609c6f265SBram Moolenaar  syntax keyword typescriptNetworkEvent contained offline online statuschange connectionInfoUpdate
167709c6f265SBram Moolenaar  syntax cluster events add=typescriptNetworkEvent
167809c6f265SBram Moolenaar  hi def link typescriptNetworkEvent Title
167909c6f265SBram Moolenaar  syntax keyword typescriptProgressEvent contained abort error load loadend loadstart
168009c6f265SBram Moolenaar  syntax keyword typescriptProgressEvent contained progress timeout uploadprogress
168109c6f265SBram Moolenaar  syntax cluster events add=typescriptProgressEvent
168209c6f265SBram Moolenaar  hi def link typescriptProgressEvent Title
168309c6f265SBram Moolenaar  syntax keyword typescriptResourceEvent contained cached error load
168409c6f265SBram Moolenaar  syntax cluster events add=typescriptResourceEvent
168509c6f265SBram Moolenaar  hi def link typescriptResourceEvent Title
168609c6f265SBram Moolenaar  syntax keyword typescriptScriptEvent contained afterscriptexecute beforescriptexecute
168709c6f265SBram Moolenaar  syntax cluster events add=typescriptScriptEvent
168809c6f265SBram Moolenaar  hi def link typescriptScriptEvent Title
168909c6f265SBram Moolenaar  syntax keyword typescriptSensorEvent contained compassneedscalibration devicelight
169009c6f265SBram Moolenaar  syntax keyword typescriptSensorEvent contained devicemotion deviceorientation deviceproximity
169109c6f265SBram Moolenaar  syntax keyword typescriptSensorEvent contained orientationchange userproximity
169209c6f265SBram Moolenaar  syntax cluster events add=typescriptSensorEvent
169309c6f265SBram Moolenaar  hi def link typescriptSensorEvent Title
169409c6f265SBram Moolenaar  syntax keyword typescriptSessionHistoryEvent contained pagehide pageshow popstate
169509c6f265SBram Moolenaar  syntax cluster events add=typescriptSessionHistoryEvent
169609c6f265SBram Moolenaar  hi def link typescriptSessionHistoryEvent Title
169709c6f265SBram Moolenaar  syntax keyword typescriptStorageEvent contained change storage
169809c6f265SBram Moolenaar  syntax cluster events add=typescriptStorageEvent
169909c6f265SBram Moolenaar  hi def link typescriptStorageEvent Title
170009c6f265SBram Moolenaar  syntax keyword typescriptSVGEvent contained SVGAbort SVGError SVGLoad SVGResize SVGScroll
170109c6f265SBram Moolenaar  syntax keyword typescriptSVGEvent contained SVGUnload SVGZoom
170209c6f265SBram Moolenaar  syntax cluster events add=typescriptSVGEvent
170309c6f265SBram Moolenaar  hi def link typescriptSVGEvent Title
170409c6f265SBram Moolenaar  syntax keyword typescriptTabEvent contained visibilitychange
170509c6f265SBram Moolenaar  syntax cluster events add=typescriptTabEvent
170609c6f265SBram Moolenaar  hi def link typescriptTabEvent Title
170709c6f265SBram Moolenaar  syntax keyword typescriptTextEvent contained compositionend compositionstart compositionupdate
170809c6f265SBram Moolenaar  syntax keyword typescriptTextEvent contained copy cut paste select text
170909c6f265SBram Moolenaar  syntax cluster events add=typescriptTextEvent
171009c6f265SBram Moolenaar  hi def link typescriptTextEvent Title
171109c6f265SBram Moolenaar  syntax keyword typescriptTouchEvent contained touchcancel touchend touchenter touchleave
171209c6f265SBram Moolenaar  syntax keyword typescriptTouchEvent contained touchmove touchstart
171309c6f265SBram Moolenaar  syntax cluster events add=typescriptTouchEvent
171409c6f265SBram Moolenaar  hi def link typescriptTouchEvent Title
171509c6f265SBram Moolenaar  syntax keyword typescriptUpdateEvent contained checking downloading error noupdate
171609c6f265SBram Moolenaar  syntax keyword typescriptUpdateEvent contained obsolete updateready
171709c6f265SBram Moolenaar  syntax cluster events add=typescriptUpdateEvent
171809c6f265SBram Moolenaar  hi def link typescriptUpdateEvent Title
171909c6f265SBram Moolenaar  syntax keyword typescriptValueChangeEvent contained hashchange input readystatechange
172009c6f265SBram Moolenaar  syntax cluster events add=typescriptValueChangeEvent
172109c6f265SBram Moolenaar  hi def link typescriptValueChangeEvent Title
172209c6f265SBram Moolenaar  syntax keyword typescriptViewEvent contained fullscreen fullscreenchange fullscreenerror
172309c6f265SBram Moolenaar  syntax keyword typescriptViewEvent contained resize scroll
172409c6f265SBram Moolenaar  syntax cluster events add=typescriptViewEvent
172509c6f265SBram Moolenaar  hi def link typescriptViewEvent Title
172609c6f265SBram Moolenaar  syntax keyword typescriptWebsocketEvent contained close error message open
172709c6f265SBram Moolenaar  syntax cluster events add=typescriptWebsocketEvent
172809c6f265SBram Moolenaar  hi def link typescriptWebsocketEvent Title
172909c6f265SBram Moolenaar  syntax keyword typescriptWindowEvent contained DOMWindowCreated DOMWindowClose DOMTitleChanged
173009c6f265SBram Moolenaar  syntax cluster events add=typescriptWindowEvent
173109c6f265SBram Moolenaar  hi def link typescriptWindowEvent Title
173209c6f265SBram Moolenaar  syntax keyword typescriptUncategorizedEvent contained beforeunload message open show
173309c6f265SBram Moolenaar  syntax cluster events add=typescriptUncategorizedEvent
173409c6f265SBram Moolenaar  hi def link typescriptUncategorizedEvent Title
173509c6f265SBram Moolenaar  syntax keyword typescriptServiceWorkerEvent contained install activate fetch
173609c6f265SBram Moolenaar  syntax cluster events add=typescriptServiceWorkerEvent
173709c6f265SBram Moolenaar  hi def link typescriptServiceWorkerEvent Title
173809c6f265SBram Moolenaar
173909c6f265SBram Moolenaar
174009c6f265SBram Moolenaarendif
174109c6f265SBram Moolenaar
174209c6f265SBram Moolenaar" patch
174309c6f265SBram Moolenaar" patch for generated code
174409c6f265SBram Moolenaarsyntax keyword typescriptGlobal Promise
174509c6f265SBram Moolenaar  \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline
174609c6f265SBram Moolenaarsyntax keyword typescriptGlobal Map WeakMap
174709c6f265SBram Moolenaar  \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline
174809c6f265SBram Moolenaar
174909c6f265SBram Moolenaarsyntax keyword typescriptConstructor           contained constructor
175009c6f265SBram Moolenaar  \ nextgroup=@typescriptCallSignature
175109c6f265SBram Moolenaar  \ skipwhite skipempty
175209c6f265SBram Moolenaar
175309c6f265SBram Moolenaar
175409c6f265SBram Moolenaarsyntax cluster memberNextGroup contains=typescriptMemberOptionality,typescriptTypeAnnotation,@typescriptCallSignature
175509c6f265SBram Moolenaar
17563132cdddSBram Moolenaarsyntax match typescriptMember /#\?\K\k*/
175709c6f265SBram Moolenaar  \ nextgroup=@memberNextGroup
175809c6f265SBram Moolenaar  \ contained skipwhite
175909c6f265SBram Moolenaar
176009c6f265SBram Moolenaarsyntax match typescriptMethodAccessor contained /\v(get|set)\s\K/me=e-1
176109c6f265SBram Moolenaar  \ nextgroup=@typescriptMembers
176209c6f265SBram Moolenaar
176309c6f265SBram Moolenaarsyntax cluster typescriptPropertyMemberDeclaration contains=
176409c6f265SBram Moolenaar  \ typescriptClassStatic,
176509c6f265SBram Moolenaar  \ typescriptAccessibilityModifier,
176609c6f265SBram Moolenaar  \ typescriptReadonlyModifier,
176709c6f265SBram Moolenaar  \ typescriptMethodAccessor,
176809c6f265SBram Moolenaar  \ @typescriptMembers
176909c6f265SBram Moolenaar  " \ typescriptMemberVariableDeclaration
177009c6f265SBram Moolenaar
177109c6f265SBram Moolenaarsyntax match typescriptMemberOptionality /?\|!/ contained
177209c6f265SBram Moolenaar  \ nextgroup=typescriptTypeAnnotation,@typescriptCallSignature
177309c6f265SBram Moolenaar  \ skipwhite skipempty
177409c6f265SBram Moolenaar
177509c6f265SBram Moolenaarsyntax cluster typescriptMembers contains=typescriptMember,typescriptStringMember,typescriptComputedMember
177609c6f265SBram Moolenaar
177709c6f265SBram Moolenaarsyntax keyword typescriptClassStatic static
177809c6f265SBram Moolenaar  \ nextgroup=@typescriptMembers,typescriptAsyncFuncKeyword,typescriptReadonlyModifier
177909c6f265SBram Moolenaar  \ skipwhite contained
178009c6f265SBram Moolenaar
178109c6f265SBram Moolenaarsyntax keyword typescriptAccessibilityModifier public private protected contained
178209c6f265SBram Moolenaar
178309c6f265SBram Moolenaarsyntax keyword typescriptReadonlyModifier readonly contained
178409c6f265SBram Moolenaar
178509c6f265SBram Moolenaarsyntax region  typescriptStringMember   contained
178609c6f265SBram Moolenaar  \ start=/\z(["']\)/  skip=/\\\\\|\\\z1\|\\\n/  end=/\z1/
178709c6f265SBram Moolenaar  \ nextgroup=@memberNextGroup
178809c6f265SBram Moolenaar  \ skipwhite skipempty
178909c6f265SBram Moolenaar
179009c6f265SBram Moolenaarsyntax region  typescriptComputedMember   contained matchgroup=typescriptProperty
179109c6f265SBram Moolenaar  \ start=/\[/rs=s+1 end=/]/
179209c6f265SBram Moolenaar  \ contains=@typescriptValue,typescriptMember,typescriptMappedIn
179309c6f265SBram Moolenaar  \ nextgroup=@memberNextGroup
179409c6f265SBram Moolenaar  \ skipwhite skipempty
179509c6f265SBram Moolenaar
179609c6f265SBram Moolenaar"don't add typescriptMembers to nextgroup, let outer scope match it
179709c6f265SBram Moolenaar" so we won't match abstract method outside abstract class
179809c6f265SBram Moolenaarsyntax keyword typescriptAbstract              abstract
179909c6f265SBram Moolenaar  \ nextgroup=typescriptClassKeyword
180009c6f265SBram Moolenaar  \ skipwhite skipnl
180109c6f265SBram Moolenaarsyntax keyword typescriptClassKeyword          class
180209c6f265SBram Moolenaar  \ nextgroup=typescriptClassName,typescriptClassExtends,typescriptClassBlock
180309c6f265SBram Moolenaar  \ skipwhite
180409c6f265SBram Moolenaar
180509c6f265SBram Moolenaarsyntax match   typescriptClassName             contained /\K\k*/
180609c6f265SBram Moolenaar  \ nextgroup=typescriptClassBlock,typescriptClassExtends,typescriptClassTypeParameter
180709c6f265SBram Moolenaar  \ skipwhite skipnl
180809c6f265SBram Moolenaar
180909c6f265SBram Moolenaarsyntax region typescriptClassTypeParameter
181009c6f265SBram Moolenaar  \ start=/</ end=/>/
18113132cdddSBram Moolenaar  \ contains=@typescriptTypeParameterCluster
181209c6f265SBram Moolenaar  \ nextgroup=typescriptClassBlock,typescriptClassExtends
181309c6f265SBram Moolenaar  \ contained skipwhite skipnl
181409c6f265SBram Moolenaar
181509c6f265SBram Moolenaarsyntax keyword typescriptClassExtends          contained extends implements nextgroup=typescriptClassHeritage skipwhite skipnl
181609c6f265SBram Moolenaar
181709c6f265SBram Moolenaarsyntax match   typescriptClassHeritage         contained /\v(\k|\.|\(|\))+/
181809c6f265SBram Moolenaar  \ nextgroup=typescriptClassBlock,typescriptClassExtends,typescriptMixinComma,typescriptClassTypeArguments
181909c6f265SBram Moolenaar  \ contains=@typescriptValue
182009c6f265SBram Moolenaar  \ skipwhite skipnl
182109c6f265SBram Moolenaar  \ contained
182209c6f265SBram Moolenaar
182309c6f265SBram Moolenaarsyntax region typescriptClassTypeArguments matchgroup=typescriptTypeBrackets
182409c6f265SBram Moolenaar  \ start=/</ end=/>/
182509c6f265SBram Moolenaar  \ contains=@typescriptType
182609c6f265SBram Moolenaar  \ nextgroup=typescriptClassExtends,typescriptClassBlock,typescriptMixinComma
182709c6f265SBram Moolenaar  \ contained skipwhite skipnl
182809c6f265SBram Moolenaar
182909c6f265SBram Moolenaarsyntax match typescriptMixinComma /,/ contained nextgroup=typescriptClassHeritage skipwhite skipnl
183009c6f265SBram Moolenaar
183109c6f265SBram Moolenaar" we need add arrowFunc to class block for high order arrow func
183209c6f265SBram Moolenaar" see test case
183309c6f265SBram Moolenaarsyntax region  typescriptClassBlock matchgroup=typescriptBraces start=/{/ end=/}/
183409c6f265SBram Moolenaar  \ contains=@typescriptPropertyMemberDeclaration,typescriptAbstract,@typescriptComments,typescriptBlock,typescriptAssign,typescriptDecorator,typescriptAsyncFuncKeyword,typescriptArrowFunc
183509c6f265SBram Moolenaar  \ contained fold
183609c6f265SBram Moolenaar
183709c6f265SBram Moolenaarsyntax keyword typescriptInterfaceKeyword          interface nextgroup=typescriptInterfaceName skipwhite
183809c6f265SBram Moolenaarsyntax match   typescriptInterfaceName             contained /\k\+/
183909c6f265SBram Moolenaar  \ nextgroup=typescriptObjectType,typescriptInterfaceExtends,typescriptInterfaceTypeParameter
184009c6f265SBram Moolenaar  \ skipwhite skipnl
184109c6f265SBram Moolenaarsyntax region typescriptInterfaceTypeParameter
184209c6f265SBram Moolenaar  \ start=/</ end=/>/
18433132cdddSBram Moolenaar  \ contains=@typescriptTypeParameterCluster
184409c6f265SBram Moolenaar  \ nextgroup=typescriptObjectType,typescriptInterfaceExtends
184509c6f265SBram Moolenaar  \ contained
184609c6f265SBram Moolenaar  \ skipwhite skipnl
184709c6f265SBram Moolenaar
184809c6f265SBram Moolenaarsyntax keyword typescriptInterfaceExtends          contained extends nextgroup=typescriptInterfaceHeritage skipwhite skipnl
184909c6f265SBram Moolenaar
185009c6f265SBram Moolenaarsyntax match typescriptInterfaceHeritage contained /\v(\k|\.)+/
185109c6f265SBram Moolenaar  \ nextgroup=typescriptObjectType,typescriptInterfaceComma,typescriptInterfaceTypeArguments
185209c6f265SBram Moolenaar  \ skipwhite
185309c6f265SBram Moolenaar
185409c6f265SBram Moolenaarsyntax region typescriptInterfaceTypeArguments matchgroup=typescriptTypeBrackets
185509c6f265SBram Moolenaar  \ start=/</ end=/>/ skip=/\s*,\s*/
185609c6f265SBram Moolenaar  \ contains=@typescriptType
185709c6f265SBram Moolenaar  \ nextgroup=typescriptObjectType,typescriptInterfaceComma
185809c6f265SBram Moolenaar  \ contained skipwhite
185909c6f265SBram Moolenaar
186009c6f265SBram Moolenaarsyntax match typescriptInterfaceComma /,/ contained nextgroup=typescriptInterfaceHeritage skipwhite skipnl
186109c6f265SBram Moolenaar
186209c6f265SBram Moolenaar"Block VariableStatement EmptyStatement ExpressionStatement IfStatement IterationStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement SwitchStatement ThrowStatement TryStatement DebuggerStatement
186309c6f265SBram Moolenaarsyntax cluster typescriptStatement
186409c6f265SBram Moolenaar  \ contains=typescriptBlock,typescriptVariable,
186509c6f265SBram Moolenaar  \ @typescriptTopExpression,typescriptAssign,
186609c6f265SBram Moolenaar  \ typescriptConditional,typescriptRepeat,typescriptBranch,
186709c6f265SBram Moolenaar  \ typescriptLabel,typescriptStatementKeyword,
186809c6f265SBram Moolenaar  \ typescriptFuncKeyword,
186909c6f265SBram Moolenaar  \ typescriptTry,typescriptExceptions,typescriptDebugger,
187009c6f265SBram Moolenaar  \ typescriptExport,typescriptInterfaceKeyword,typescriptEnum,
187109c6f265SBram Moolenaar  \ typescriptModule,typescriptAliasKeyword,typescriptImport
187209c6f265SBram Moolenaar
187309c6f265SBram Moolenaarsyntax cluster typescriptPrimitive  contains=typescriptString,typescriptTemplate,typescriptRegexpString,typescriptNumber,typescriptBoolean,typescriptNull,typescriptArray
187409c6f265SBram Moolenaar
187509c6f265SBram Moolenaarsyntax cluster typescriptEventTypes            contains=typescriptEventString,typescriptTemplate,typescriptNumber,typescriptBoolean,typescriptNull
187609c6f265SBram Moolenaar
187709c6f265SBram Moolenaar" top level expression: no arrow func
187809c6f265SBram Moolenaar" also no func keyword. funcKeyword is contained in statement
187909c6f265SBram Moolenaar" funcKeyword allows overloading (func without body)
188009c6f265SBram Moolenaar" funcImpl requires body
188109c6f265SBram Moolenaarsyntax cluster typescriptTopExpression
188209c6f265SBram Moolenaar  \ contains=@typescriptPrimitive,
188309c6f265SBram Moolenaar  \ typescriptIdentifier,typescriptIdentifierName,
188409c6f265SBram Moolenaar  \ typescriptOperator,typescriptUnaryOp,
188509c6f265SBram Moolenaar  \ typescriptParenExp,typescriptRegexpString,
188609c6f265SBram Moolenaar  \ typescriptGlobal,typescriptAsyncFuncKeyword,
188709c6f265SBram Moolenaar  \ typescriptClassKeyword,typescriptTypeCast
188809c6f265SBram Moolenaar
188909c6f265SBram Moolenaar" no object literal, used in type cast and arrow func
189009c6f265SBram Moolenaar" TODO: change func keyword to funcImpl
189109c6f265SBram Moolenaarsyntax cluster typescriptExpression
189209c6f265SBram Moolenaar  \ contains=@typescriptTopExpression,
189309c6f265SBram Moolenaar  \ typescriptArrowFuncDef,
189409c6f265SBram Moolenaar  \ typescriptFuncImpl
189509c6f265SBram Moolenaar
189609c6f265SBram Moolenaarsyntax cluster typescriptValue
189709c6f265SBram Moolenaar  \ contains=@typescriptExpression,typescriptObjectLiteral
189809c6f265SBram Moolenaar
189909c6f265SBram Moolenaarsyntax cluster typescriptEventExpression       contains=typescriptArrowFuncDef,typescriptParenExp,@typescriptValue,typescriptRegexpString,@typescriptEventTypes,typescriptOperator,typescriptGlobal,jsxRegion
190009c6f265SBram Moolenaar
190109c6f265SBram Moolenaarsyntax keyword typescriptAsyncFuncKeyword      async
190209c6f265SBram Moolenaar  \ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef
190309c6f265SBram Moolenaar  \ skipwhite
190409c6f265SBram Moolenaar
190509c6f265SBram Moolenaarsyntax keyword typescriptAsyncFuncKeyword      await
190609c6f265SBram Moolenaar  \ nextgroup=@typescriptValue
190709c6f265SBram Moolenaar  \ skipwhite
190809c6f265SBram Moolenaar
190909c6f265SBram Moolenaarsyntax keyword typescriptFuncKeyword           function
191009c6f265SBram Moolenaar  \ nextgroup=typescriptAsyncFunc,typescriptFuncName,@typescriptCallSignature
191109c6f265SBram Moolenaar  \ skipwhite skipempty
191209c6f265SBram Moolenaar
191309c6f265SBram Moolenaarsyntax match   typescriptAsyncFunc             contained /*/
191409c6f265SBram Moolenaar  \ nextgroup=typescriptFuncName,@typescriptCallSignature
191509c6f265SBram Moolenaar  \ skipwhite skipempty
191609c6f265SBram Moolenaar
191709c6f265SBram Moolenaarsyntax match   typescriptFuncName              contained /\K\k*/
191809c6f265SBram Moolenaar  \ nextgroup=@typescriptCallSignature
191909c6f265SBram Moolenaar  \ skipwhite
192009c6f265SBram Moolenaar
192109c6f265SBram Moolenaar" destructuring ({ a: ee }) =>
19223132cdddSBram Moolenaarsyntax match   typescriptArrowFuncDef          contained /(\(\s*\({\_[^}]*}\|\k\+\)\(:\_[^)]\)\?,\?\)\+)\s*=>/
192309c6f265SBram Moolenaar  \ contains=typescriptArrowFuncArg,typescriptArrowFunc
192409c6f265SBram Moolenaar  \ nextgroup=@typescriptExpression,typescriptBlock
192509c6f265SBram Moolenaar  \ skipwhite skipempty
192609c6f265SBram Moolenaar
192709c6f265SBram Moolenaar" matches `(a) =>` or `([a]) =>` or
192809c6f265SBram Moolenaar" `(
192909c6f265SBram Moolenaar"  a) =>`
193091359014SBram Moolenaarsyntax match   typescriptArrowFuncDef          contained /(\(\_s*[a-zA-Z\$_\[.]\_[^)]*\)*)\s*=>/
193109c6f265SBram Moolenaar  \ contains=typescriptArrowFuncArg,typescriptArrowFunc
193209c6f265SBram Moolenaar  \ nextgroup=@typescriptExpression,typescriptBlock
193309c6f265SBram Moolenaar  \ skipwhite skipempty
193409c6f265SBram Moolenaar
193509c6f265SBram Moolenaarsyntax match   typescriptArrowFuncDef          contained /\K\k*\s*=>/
193609c6f265SBram Moolenaar  \ contains=typescriptArrowFuncArg,typescriptArrowFunc
193709c6f265SBram Moolenaar  \ nextgroup=@typescriptExpression,typescriptBlock
193809c6f265SBram Moolenaar  \ skipwhite skipempty
193909c6f265SBram Moolenaar
194009c6f265SBram Moolenaar" TODO: optimize this pattern
19413132cdddSBram Moolenaarsyntax region   typescriptArrowFuncDef          contained start=/(\_[^(^)]*):/ end=/=>/
194209c6f265SBram Moolenaar  \ contains=typescriptArrowFuncArg,typescriptArrowFunc,typescriptTypeAnnotation
194309c6f265SBram Moolenaar  \ nextgroup=@typescriptExpression,typescriptBlock
194409c6f265SBram Moolenaar  \ skipwhite skipempty keepend
194509c6f265SBram Moolenaar
194609c6f265SBram Moolenaarsyntax match   typescriptArrowFunc             /=>/
194709c6f265SBram Moolenaarsyntax match   typescriptArrowFuncArg          contained /\K\k*/
194809c6f265SBram Moolenaarsyntax region  typescriptArrowFuncArg          contained start=/<\|(/ end=/\ze=>/ contains=@typescriptCallSignature
194909c6f265SBram Moolenaar
195009c6f265SBram Moolenaarsyntax region typescriptReturnAnnotation contained start=/:/ end=/{/me=e-1 contains=@typescriptType nextgroup=typescriptBlock
195109c6f265SBram Moolenaar
195209c6f265SBram Moolenaar
19533132cdddSBram Moolenaarsyntax region typescriptFuncImpl contained start=/function\>/ end=/{/me=e-1
195409c6f265SBram Moolenaar  \ contains=typescriptFuncKeyword
195509c6f265SBram Moolenaar  \ nextgroup=typescriptBlock
195609c6f265SBram Moolenaar
195709c6f265SBram Moolenaarsyntax cluster typescriptCallImpl contains=typescriptGenericImpl,typescriptParamImpl
195809c6f265SBram Moolenaarsyntax region typescriptGenericImpl matchgroup=typescriptTypeBrackets
195909c6f265SBram Moolenaar  \ start=/</ end=/>/ skip=/\s*,\s*/
196009c6f265SBram Moolenaar  \ contains=typescriptTypeParameter
196109c6f265SBram Moolenaar  \ nextgroup=typescriptParamImpl
196209c6f265SBram Moolenaar  \ contained skipwhite
196309c6f265SBram Moolenaarsyntax region typescriptParamImpl matchgroup=typescriptParens
196409c6f265SBram Moolenaar  \ start=/(/ end=/)/
196509c6f265SBram Moolenaar  \ contains=typescriptDecorator,@typescriptParameterList,@typescriptComments
196609c6f265SBram Moolenaar  \ nextgroup=typescriptReturnAnnotation,typescriptBlock
196709c6f265SBram Moolenaar  \ contained skipwhite skipnl
196809c6f265SBram Moolenaar
196909c6f265SBram Moolenaarsyntax match typescriptDecorator /@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>/
19703132cdddSBram Moolenaar  \ nextgroup=typescriptFuncCallArg,typescriptTypeArguments
197109c6f265SBram Moolenaar  \ contains=@_semantic,typescriptDotNotation
197209c6f265SBram Moolenaar
197309c6f265SBram Moolenaar" Define the default highlighting.
197409c6f265SBram Moolenaarhi def link typescriptReserved             Error
197509c6f265SBram Moolenaar
197609c6f265SBram Moolenaarhi def link typescriptEndColons            Exception
197709c6f265SBram Moolenaarhi def link typescriptSymbols              Normal
197809c6f265SBram Moolenaarhi def link typescriptBraces               Function
197909c6f265SBram Moolenaarhi def link typescriptParens               Normal
198009c6f265SBram Moolenaarhi def link typescriptComment              Comment
198109c6f265SBram Moolenaarhi def link typescriptLineComment          Comment
198209c6f265SBram Moolenaarhi def link typescriptDocComment           Comment
198309c6f265SBram Moolenaarhi def link typescriptCommentTodo          Todo
19843132cdddSBram Moolenaarhi def link typescriptMagicComment         SpecialComment
198509c6f265SBram Moolenaarhi def link typescriptRef                  Include
198609c6f265SBram Moolenaarhi def link typescriptDocNotation          SpecialComment
198709c6f265SBram Moolenaarhi def link typescriptDocTags              SpecialComment
198809c6f265SBram Moolenaarhi def link typescriptDocNGParam           typescriptDocParam
198909c6f265SBram Moolenaarhi def link typescriptDocParam             Function
199009c6f265SBram Moolenaarhi def link typescriptDocNumParam          Function
199109c6f265SBram Moolenaarhi def link typescriptDocEventRef          Function
199209c6f265SBram Moolenaarhi def link typescriptDocNamedParamType    Type
199309c6f265SBram Moolenaarhi def link typescriptDocParamName         Type
199409c6f265SBram Moolenaarhi def link typescriptDocParamType         Type
199509c6f265SBram Moolenaarhi def link typescriptString               String
199609c6f265SBram Moolenaarhi def link typescriptSpecial              Special
199709c6f265SBram Moolenaarhi def link typescriptStringLiteralType    String
19983132cdddSBram Moolenaarhi def link typescriptTemplateLiteralType  String
199909c6f265SBram Moolenaarhi def link typescriptStringMember         String
200009c6f265SBram Moolenaarhi def link typescriptTemplate             String
200109c6f265SBram Moolenaarhi def link typescriptEventString          String
20023132cdddSBram Moolenaarhi def link typescriptDestructureString    String
200309c6f265SBram Moolenaarhi def link typescriptASCII                Special
200409c6f265SBram Moolenaarhi def link typescriptTemplateSB           Label
200509c6f265SBram Moolenaarhi def link typescriptRegexpString         String
200609c6f265SBram Moolenaarhi def link typescriptGlobal               Constant
200791359014SBram Moolenaarhi def link typescriptTestGlobal           Function
200809c6f265SBram Moolenaarhi def link typescriptPrototype            Type
200909c6f265SBram Moolenaarhi def link typescriptConditional          Conditional
201009c6f265SBram Moolenaarhi def link typescriptConditionalElse      Conditional
201109c6f265SBram Moolenaarhi def link typescriptCase                 Conditional
201209c6f265SBram Moolenaarhi def link typescriptDefault              typescriptCase
201309c6f265SBram Moolenaarhi def link typescriptBranch               Conditional
201409c6f265SBram Moolenaarhi def link typescriptIdentifier           Structure
201509c6f265SBram Moolenaarhi def link typescriptVariable             Identifier
20163132cdddSBram Moolenaarhi def link typescriptDestructureVariable  PreProc
201709c6f265SBram Moolenaarhi def link typescriptEnumKeyword          Identifier
201809c6f265SBram Moolenaarhi def link typescriptRepeat               Repeat
201909c6f265SBram Moolenaarhi def link typescriptForOperator          Repeat
202009c6f265SBram Moolenaarhi def link typescriptStatementKeyword     Statement
202109c6f265SBram Moolenaarhi def link typescriptMessage              Keyword
202209c6f265SBram Moolenaarhi def link typescriptOperator             Identifier
202309c6f265SBram Moolenaarhi def link typescriptKeywordOp            Identifier
202409c6f265SBram Moolenaarhi def link typescriptCastKeyword          Special
202509c6f265SBram Moolenaarhi def link typescriptType                 Type
202609c6f265SBram Moolenaarhi def link typescriptNull                 Boolean
202709c6f265SBram Moolenaarhi def link typescriptNumber               Number
202809c6f265SBram Moolenaarhi def link typescriptBoolean              Boolean
202909c6f265SBram Moolenaarhi def link typescriptObjectLabel          typescriptLabel
20303132cdddSBram Moolenaarhi def link typescriptDestructureLabel     Function
203109c6f265SBram Moolenaarhi def link typescriptLabel                Label
20323132cdddSBram Moolenaarhi def link typescriptTupleLable           Label
203309c6f265SBram Moolenaarhi def link typescriptStringProperty       String
203409c6f265SBram Moolenaarhi def link typescriptImport               Special
20353132cdddSBram Moolenaarhi def link typescriptImportType           Special
203609c6f265SBram Moolenaarhi def link typescriptAmbientDeclaration   Special
203709c6f265SBram Moolenaarhi def link typescriptExport               Special
20383132cdddSBram Moolenaarhi def link typescriptExportType           Special
203909c6f265SBram Moolenaarhi def link typescriptModule               Special
204009c6f265SBram Moolenaarhi def link typescriptTry                  Special
204109c6f265SBram Moolenaarhi def link typescriptExceptions           Special
204209c6f265SBram Moolenaar
204309c6f265SBram Moolenaarhi def link typescriptMember              Function
204409c6f265SBram Moolenaarhi def link typescriptMethodAccessor       Operator
204509c6f265SBram Moolenaar
204609c6f265SBram Moolenaarhi def link typescriptAsyncFuncKeyword     Keyword
20473132cdddSBram Moolenaarhi def link typescriptObjectAsyncKeyword   Keyword
204809c6f265SBram Moolenaarhi def link typescriptAsyncFor             Keyword
204909c6f265SBram Moolenaarhi def link typescriptFuncKeyword          Keyword
205009c6f265SBram Moolenaarhi def link typescriptAsyncFunc            Keyword
205109c6f265SBram Moolenaarhi def link typescriptArrowFunc            Type
205209c6f265SBram Moolenaarhi def link typescriptFuncName             Function
205309c6f265SBram Moolenaarhi def link typescriptFuncArg              PreProc
205409c6f265SBram Moolenaarhi def link typescriptArrowFuncArg         PreProc
205509c6f265SBram Moolenaarhi def link typescriptFuncComma            Operator
205609c6f265SBram Moolenaar
205709c6f265SBram Moolenaarhi def link typescriptClassKeyword         Keyword
205809c6f265SBram Moolenaarhi def link typescriptClassExtends         Keyword
205909c6f265SBram Moolenaar" hi def link typescriptClassName            Function
206009c6f265SBram Moolenaarhi def link typescriptAbstract             Special
206109c6f265SBram Moolenaar" hi def link typescriptClassHeritage        Function
206209c6f265SBram Moolenaar" hi def link typescriptInterfaceHeritage    Function
206309c6f265SBram Moolenaarhi def link typescriptClassStatic          StorageClass
206409c6f265SBram Moolenaarhi def link typescriptReadonlyModifier     Keyword
206509c6f265SBram Moolenaarhi def link typescriptInterfaceKeyword     Keyword
206609c6f265SBram Moolenaarhi def link typescriptInterfaceExtends     Keyword
206709c6f265SBram Moolenaarhi def link typescriptInterfaceName        Function
206809c6f265SBram Moolenaar
206909c6f265SBram Moolenaarhi def link shellbang                      Comment
207009c6f265SBram Moolenaar
207109c6f265SBram Moolenaarhi def link typescriptTypeParameter         Identifier
207209c6f265SBram Moolenaarhi def link typescriptConstraint            Keyword
207309c6f265SBram Moolenaarhi def link typescriptPredefinedType        Type
207409c6f265SBram Moolenaarhi def link typescriptReadonlyArrayKeyword  Keyword
207509c6f265SBram Moolenaarhi def link typescriptUnion                 Operator
207609c6f265SBram Moolenaarhi def link typescriptFuncTypeArrow         Function
207709c6f265SBram Moolenaarhi def link typescriptConstructorType       Function
207809c6f265SBram Moolenaarhi def link typescriptTypeQuery             Keyword
207909c6f265SBram Moolenaarhi def link typescriptAccessibilityModifier Keyword
208009c6f265SBram Moolenaarhi def link typescriptOptionalMark          PreProc
208109c6f265SBram Moolenaarhi def link typescriptFuncType              Special
208209c6f265SBram Moolenaarhi def link typescriptMappedIn              Special
208309c6f265SBram Moolenaarhi def link typescriptCall                  PreProc
208409c6f265SBram Moolenaarhi def link typescriptParamImpl             PreProc
208509c6f265SBram Moolenaarhi def link typescriptConstructSignature    Identifier
208609c6f265SBram Moolenaarhi def link typescriptAliasDeclaration      Identifier
208709c6f265SBram Moolenaarhi def link typescriptAliasKeyword          Keyword
208809c6f265SBram Moolenaarhi def link typescriptUserDefinedType       Keyword
208909c6f265SBram Moolenaarhi def link typescriptTypeReference         Identifier
209009c6f265SBram Moolenaarhi def link typescriptConstructor           Keyword
209109c6f265SBram Moolenaarhi def link typescriptDecorator             Special
209291359014SBram Moolenaarhi def link typescriptAssertType            Keyword
209309c6f265SBram Moolenaar
209409c6f265SBram Moolenaarhi link typeScript             NONE
209509c6f265SBram Moolenaar
209609c6f265SBram Moolenaarif exists('s:cpo_save')
209709c6f265SBram Moolenaar  let &cpo = s:cpo_save
209809c6f265SBram Moolenaar  unlet s:cpo_save
209909c6f265SBram Moolenaarendif
2100