mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Switch typescript provider, closes #428
This commit is contained in:
69
syntax/basic/class.vim
Normal file
69
syntax/basic/class.vim
Normal file
@@ -0,0 +1,69 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
"don't add typescriptMembers to nextgroup, let outer scope match it
|
||||
" so we won't match abstract method outside abstract class
|
||||
syntax keyword typescriptAbstract abstract
|
||||
\ nextgroup=typescriptClassKeyword
|
||||
\ skipwhite skipnl
|
||||
syntax keyword typescriptClassKeyword class
|
||||
\ nextgroup=typescriptClassName,typescriptClassExtends,typescriptClassBlock
|
||||
\ skipwhite
|
||||
|
||||
syntax match typescriptClassName contained /\K\k*/
|
||||
\ nextgroup=typescriptClassBlock,typescriptClassExtends,typescriptClassTypeParameter
|
||||
\ skipwhite skipnl
|
||||
|
||||
syntax region typescriptClassTypeParameter
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ nextgroup=typescriptClassBlock,typescriptClassExtends
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax keyword typescriptClassExtends contained extends implements nextgroup=typescriptClassHeritage skipwhite skipnl
|
||||
|
||||
syntax match typescriptClassHeritage contained /\v(\k|\.|\(|\))+/
|
||||
\ nextgroup=typescriptClassBlock,typescriptClassExtends,typescriptMixinComma,typescriptClassTypeArguments
|
||||
\ contains=@typescriptValue
|
||||
\ skipwhite skipnl
|
||||
\ contained
|
||||
|
||||
syntax region typescriptClassTypeArguments matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/
|
||||
\ contains=@typescriptType
|
||||
\ nextgroup=typescriptClassExtends,typescriptClassBlock,typescriptMixinComma
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax match typescriptMixinComma /,/ contained nextgroup=typescriptClassHeritage skipwhite skipnl
|
||||
|
||||
" we need add arrowFunc to class block for high order arrow func
|
||||
" see test case
|
||||
syntax region typescriptClassBlock matchgroup=typescriptBraces start=/{/ end=/}/
|
||||
\ contains=@typescriptPropertyMemberDeclaration,typescriptAbstract,@typescriptComments,typescriptBlock,typescriptAssign,typescriptDecorator,typescriptAsyncFuncKeyword,typescriptArrowFunc
|
||||
\ contained fold
|
||||
|
||||
syntax keyword typescriptInterfaceKeyword interface nextgroup=typescriptInterfaceName skipwhite
|
||||
syntax match typescriptInterfaceName contained /\k\+/
|
||||
\ nextgroup=typescriptObjectType,typescriptInterfaceExtends,typescriptInterfaceTypeParameter
|
||||
\ skipwhite skipnl
|
||||
syntax region typescriptInterfaceTypeParameter
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ nextgroup=typescriptObjectType,typescriptInterfaceExtends
|
||||
\ contained
|
||||
\ skipwhite skipnl
|
||||
|
||||
syntax keyword typescriptInterfaceExtends contained extends nextgroup=typescriptInterfaceHeritage skipwhite skipnl
|
||||
|
||||
syntax match typescriptInterfaceHeritage contained /\v(\k|\.)+/
|
||||
\ nextgroup=typescriptObjectType,typescriptInterfaceComma,typescriptInterfaceTypeArguments
|
||||
\ skipwhite
|
||||
|
||||
syntax region typescriptInterfaceTypeArguments matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/ skip=/\s*,\s*/
|
||||
\ contains=@typescriptType
|
||||
\ nextgroup=typescriptObjectType,typescriptInterfaceComma
|
||||
\ contained skipwhite
|
||||
|
||||
syntax match typescriptInterfaceComma /,/ contained nextgroup=typescriptInterfaceHeritage skipwhite skipnl
|
||||
42
syntax/basic/cluster.vim
Normal file
42
syntax/basic/cluster.vim
Normal file
@@ -0,0 +1,42 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
"Block VariableStatement EmptyStatement ExpressionStatement IfStatement IterationStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement SwitchStatement ThrowStatement TryStatement DebuggerStatement
|
||||
syntax cluster typescriptStatement
|
||||
\ contains=typescriptBlock,typescriptVariable,
|
||||
\ @typescriptTopExpression,typescriptAssign,
|
||||
\ typescriptConditional,typescriptRepeat,typescriptBranch,
|
||||
\ typescriptLabel,typescriptStatementKeyword,
|
||||
\ typescriptFuncKeyword,
|
||||
\ typescriptTry,typescriptExceptions,typescriptDebugger,
|
||||
\ typescriptExport,typescriptInterfaceKeyword,typescriptEnum,
|
||||
\ typescriptModule,typescriptAliasKeyword,typescriptImport
|
||||
|
||||
syntax cluster typescriptPrimitive contains=typescriptString,typescriptTemplate,typescriptRegexpString,typescriptNumber,typescriptBoolean,typescriptNull,typescriptArray
|
||||
|
||||
syntax cluster typescriptEventTypes contains=typescriptEventString,typescriptTemplate,typescriptNumber,typescriptBoolean,typescriptNull
|
||||
|
||||
" top level expression: no arrow func
|
||||
" also no func keyword. funcKeyword is contained in statement
|
||||
" funcKeyword allows overloading (func without body)
|
||||
" funcImpl requires body
|
||||
syntax cluster typescriptTopExpression
|
||||
\ contains=@typescriptPrimitive,
|
||||
\ typescriptIdentifier,typescriptIdentifierName,
|
||||
\ typescriptOperator,typescriptUnaryOp,
|
||||
\ typescriptParenExp,typescriptRegexpString,
|
||||
\ typescriptGlobal,typescriptAsyncFuncKeyword,
|
||||
\ typescriptClassKeyword,typescriptTypeCast
|
||||
|
||||
" no object literal, used in type cast and arrow func
|
||||
" TODO: change func keyword to funcImpl
|
||||
syntax cluster typescriptExpression
|
||||
\ contains=@typescriptTopExpression,
|
||||
\ typescriptArrowFuncDef,
|
||||
\ typescriptFuncImpl
|
||||
|
||||
syntax cluster typescriptValue
|
||||
\ contains=@typescriptExpression,typescriptObjectLiteral
|
||||
|
||||
syntax cluster typescriptEventExpression contains=typescriptArrowFuncDef,typescriptParenExp,@typescriptValue,typescriptRegexpString,@typescriptEventTypes,typescriptOperator,typescriptGlobal,jsxRegion
|
||||
7
syntax/basic/decorator.vim
Normal file
7
syntax/basic/decorator.vim
Normal file
@@ -0,0 +1,7 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax match typescriptDecorator /@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>/
|
||||
\ nextgroup=typescriptArgumentList,typescriptTypeArguments
|
||||
\ contains=@_semantic,typescriptDotNotation
|
||||
87
syntax/basic/doc.vim
Normal file
87
syntax/basic/doc.vim
Normal file
@@ -0,0 +1,87 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
"Syntax coloring for Node.js shebang line
|
||||
syntax match shellbang "^#!.*node\>"
|
||||
syntax match shellbang "^#!.*iojs\>"
|
||||
|
||||
|
||||
"JavaScript comments
|
||||
syntax keyword typescriptCommentTodo TODO FIXME XXX TBD
|
||||
syntax match typescriptLineComment "//.*"
|
||||
\ contains=@Spell,typescriptCommentTodo,typescriptRef
|
||||
syntax region typescriptComment
|
||||
\ start="/\*" end="\*/"
|
||||
\ contains=@Spell,typescriptCommentTodo extend
|
||||
syntax cluster typescriptComments
|
||||
\ contains=typescriptDocComment,typescriptComment,typescriptLineComment
|
||||
|
||||
syntax match typescriptRef +///\s*<reference\s\+.*\/>$+
|
||||
\ contains=typescriptString
|
||||
syntax match typescriptRef +///\s*<amd-dependency\s\+.*\/>$+
|
||||
\ contains=typescriptString
|
||||
syntax match typescriptRef +///\s*<amd-module\s\+.*\/>$+
|
||||
\ contains=typescriptString
|
||||
|
||||
"JSDoc
|
||||
syntax case ignore
|
||||
|
||||
syntax region typescriptDocComment matchgroup=typescriptComment
|
||||
\ start="/\*\*" end="\*/"
|
||||
\ contains=typescriptDocNotation,typescriptCommentTodo,@Spell
|
||||
\ fold keepend
|
||||
syntax match typescriptDocNotation contained /@/ nextgroup=typescriptDocTags
|
||||
|
||||
syntax keyword typescriptDocTags contained constant constructor constructs function ignore inner private public readonly static
|
||||
syntax keyword typescriptDocTags contained const dict expose inheritDoc interface nosideeffects override protected struct internal
|
||||
syntax keyword typescriptDocTags contained example global
|
||||
syntax keyword typescriptDocTags contained alpha beta defaultValue eventProperty experimental label
|
||||
syntax keyword typescriptDocTags contained packageDocumentation privateRemarks remarks sealed typeParam
|
||||
|
||||
" syntax keyword typescriptDocTags contained ngdoc nextgroup=typescriptDocNGDirective
|
||||
syntax keyword typescriptDocTags contained ngdoc scope priority animations
|
||||
syntax keyword typescriptDocTags contained ngdoc restrict methodOf propertyOf eventOf eventType nextgroup=typescriptDocParam skipwhite
|
||||
syntax keyword typescriptDocNGDirective contained overview service object function method property event directive filter inputType error
|
||||
|
||||
syntax keyword typescriptDocTags contained abstract virtual access augments
|
||||
|
||||
syntax keyword typescriptDocTags contained arguments callback lends memberOf name type kind link mixes mixin tutorial nextgroup=typescriptDocParam skipwhite
|
||||
syntax keyword typescriptDocTags contained variation nextgroup=typescriptDocNumParam skipwhite
|
||||
|
||||
syntax keyword typescriptDocTags contained author class classdesc copyright default defaultvalue nextgroup=typescriptDocDesc skipwhite
|
||||
syntax keyword typescriptDocTags contained deprecated description external host nextgroup=typescriptDocDesc skipwhite
|
||||
syntax keyword typescriptDocTags contained file fileOverview overview namespace requires since version nextgroup=typescriptDocDesc skipwhite
|
||||
syntax keyword typescriptDocTags contained summary todo license preserve nextgroup=typescriptDocDesc skipwhite
|
||||
|
||||
syntax keyword typescriptDocTags contained borrows exports nextgroup=typescriptDocA skipwhite
|
||||
syntax keyword typescriptDocTags contained param arg argument property prop module nextgroup=typescriptDocNamedParamType,typescriptDocParamName skipwhite
|
||||
syntax keyword typescriptDocTags contained define enum extends implements this typedef nextgroup=typescriptDocParamType skipwhite
|
||||
syntax keyword typescriptDocTags contained return returns throws exception nextgroup=typescriptDocParamType,typescriptDocParamName skipwhite
|
||||
syntax keyword typescriptDocTags contained see nextgroup=typescriptDocRef skipwhite
|
||||
|
||||
syntax keyword typescriptDocTags contained function func method nextgroup=typescriptDocName skipwhite
|
||||
syntax match typescriptDocName contained /\h\w*/
|
||||
|
||||
syntax keyword typescriptDocTags contained fires event nextgroup=typescriptDocEventRef skipwhite
|
||||
syntax match typescriptDocEventRef contained /\h\w*#\(\h\w*\:\)\?\h\w*/
|
||||
|
||||
syntax match typescriptDocNamedParamType contained /{.\+}/ nextgroup=typescriptDocParamName skipwhite
|
||||
syntax match typescriptDocParamName contained /\[\?0-9a-zA-Z_\.]\+\]\?/ nextgroup=typescriptDocDesc skipwhite
|
||||
syntax match typescriptDocParamType contained /{.\+}/ nextgroup=typescriptDocDesc skipwhite
|
||||
syntax match typescriptDocA contained /\%(#\|\w\|\.\|:\|\/\)\+/ nextgroup=typescriptDocAs skipwhite
|
||||
syntax match typescriptDocAs contained /\s*as\s*/ nextgroup=typescriptDocB skipwhite
|
||||
syntax match typescriptDocB contained /\%(#\|\w\|\.\|:\|\/\)\+/
|
||||
syntax match typescriptDocParam contained /\%(#\|\w\|\.\|:\|\/\|-\)\+/
|
||||
syntax match typescriptDocNumParam contained /\d\+/
|
||||
syntax match typescriptDocRef contained /\%(#\|\w\|\.\|:\|\/\)\+/
|
||||
syntax region typescriptDocLinkTag contained matchgroup=typescriptDocLinkTag start=/{/ end=/}/ contains=typescriptDocTags
|
||||
|
||||
syntax cluster typescriptDocs contains=typescriptDocParamType,typescriptDocNamedParamType,typescriptDocParam
|
||||
|
||||
if main_syntax == "typescript"
|
||||
syntax sync clear
|
||||
syntax sync ccomment typescriptComment minlines=200
|
||||
endif
|
||||
|
||||
syntax case match
|
||||
71
syntax/basic/function.vim
Normal file
71
syntax/basic/function.vim
Normal file
@@ -0,0 +1,71 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax keyword typescriptAsyncFuncKeyword async
|
||||
\ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef
|
||||
\ skipwhite
|
||||
|
||||
syntax keyword typescriptAsyncFuncKeyword await
|
||||
\ nextgroup=@typescriptValue
|
||||
\ skipwhite
|
||||
|
||||
syntax keyword typescriptFuncKeyword function
|
||||
\ nextgroup=typescriptAsyncFunc,typescriptFuncName,@typescriptCallSignature
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax match typescriptAsyncFunc contained /*/
|
||||
\ nextgroup=typescriptFuncName,@typescriptCallSignature
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax match typescriptFuncName contained /\K\k*/
|
||||
\ nextgroup=@typescriptCallSignature
|
||||
\ skipwhite
|
||||
|
||||
" destructuring ({ a: ee }) =>
|
||||
syntax match typescriptArrowFuncDef contained /({\_[^}]*}\(:\_[^)]\)\?)\s*=>/
|
||||
\ contains=typescriptArrowFuncArg,typescriptArrowFunc
|
||||
\ nextgroup=@typescriptExpression,typescriptBlock
|
||||
\ skipwhite skipempty
|
||||
|
||||
" matches `(a) =>` or `([a]) =>` or
|
||||
" `(
|
||||
" a) =>`
|
||||
syntax match typescriptArrowFuncDef contained /(\(\_s*[a-zA-Z\$_\[.]\_[^)]*\)*)\s*=>/
|
||||
\ contains=typescriptArrowFuncArg,typescriptArrowFunc
|
||||
\ nextgroup=@typescriptExpression,typescriptBlock
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax match typescriptArrowFuncDef contained /\K\k*\s*=>/
|
||||
\ contains=typescriptArrowFuncArg,typescriptArrowFunc
|
||||
\ nextgroup=@typescriptExpression,typescriptBlock
|
||||
\ skipwhite skipempty
|
||||
|
||||
" TODO: optimize this pattern
|
||||
syntax region typescriptArrowFuncDef contained start=/(\_[^)]*):/ end=/=>/
|
||||
\ contains=typescriptArrowFuncArg,typescriptArrowFunc,typescriptTypeAnnotation
|
||||
\ nextgroup=@typescriptExpression,typescriptBlock
|
||||
\ skipwhite skipempty keepend
|
||||
|
||||
syntax match typescriptArrowFunc /=>/
|
||||
syntax match typescriptArrowFuncArg contained /\K\k*/
|
||||
syntax region typescriptArrowFuncArg contained start=/<\|(/ end=/\ze=>/ contains=@typescriptCallSignature
|
||||
|
||||
syntax region typescriptReturnAnnotation contained start=/:/ end=/{/me=e-1 contains=@typescriptType nextgroup=typescriptBlock
|
||||
|
||||
|
||||
syntax region typescriptFuncImpl contained start=/function/ end=/{/me=e-1
|
||||
\ contains=typescriptFuncKeyword
|
||||
\ nextgroup=typescriptBlock
|
||||
|
||||
syntax cluster typescriptCallImpl contains=typescriptGenericImpl,typescriptParamImpl
|
||||
syntax region typescriptGenericImpl matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/ skip=/\s*,\s*/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ nextgroup=typescriptParamImpl
|
||||
\ contained skipwhite
|
||||
syntax region typescriptParamImpl matchgroup=typescriptParens
|
||||
\ start=/(/ end=/)/
|
||||
\ contains=typescriptDecorator,@typescriptParameterList,@typescriptComments
|
||||
\ nextgroup=typescriptReturnAnnotation,typescriptBlock
|
||||
\ contained skipwhite skipnl
|
||||
33
syntax/basic/identifiers.vim
Normal file
33
syntax/basic/identifiers.vim
Normal file
@@ -0,0 +1,33 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax cluster afterIdentifier contains=
|
||||
\ typescriptDotNotation,
|
||||
\ typescriptFuncCallArg,
|
||||
\ typescriptTemplate,
|
||||
\ typescriptIndexExpr,
|
||||
\ @typescriptSymbols,
|
||||
\ typescriptTypeArguments
|
||||
|
||||
syntax match typescriptIdentifierName /\<\K\k*/
|
||||
\ nextgroup=@afterIdentifier
|
||||
\ transparent
|
||||
\ contains=@_semantic
|
||||
\ skipnl skipwhite
|
||||
|
||||
syntax match typescriptProp contained /\K\k*!\?/
|
||||
\ transparent
|
||||
\ contains=@props
|
||||
\ nextgroup=@afterIdentifier
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax region typescriptIndexExpr contained matchgroup=typescriptProperty start=/\[/rs=s+1 end=/]/he=e-1 contains=@typescriptValue nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty
|
||||
|
||||
syntax match typescriptDotNotation /\./ nextgroup=typescriptProp skipnl
|
||||
syntax match typescriptDotStyleNotation /\.style\./ nextgroup=typescriptDOMStyle transparent
|
||||
" syntax match typescriptFuncCall contained /[a-zA-Z]\k*\ze(/ nextgroup=typescriptFuncCallArg
|
||||
syntax region typescriptParenExp matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptComments,@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols skipwhite skipempty
|
||||
syntax region typescriptFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptValue,@typescriptComments nextgroup=@typescriptSymbols,typescriptDotNotation skipwhite skipempty skipnl
|
||||
syntax region typescriptEventFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptEventExpression
|
||||
syntax region typescriptEventString contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ contains=typescriptASCII,@events
|
||||
95
syntax/basic/keyword.vim
Normal file
95
syntax/basic/keyword.vim
Normal file
@@ -0,0 +1,95 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
"Import
|
||||
syntax keyword typescriptImport from as import
|
||||
syntax keyword typescriptExport export
|
||||
syntax keyword typescriptModule namespace module
|
||||
|
||||
"this
|
||||
|
||||
"JavaScript Prototype
|
||||
syntax keyword typescriptPrototype prototype
|
||||
\ nextgroup=@afterIdentifier
|
||||
|
||||
syntax keyword typescriptCastKeyword as
|
||||
\ nextgroup=@typescriptType
|
||||
\ skipwhite
|
||||
|
||||
"Program Keywords
|
||||
syntax keyword typescriptIdentifier arguments this super
|
||||
\ nextgroup=@afterIdentifier
|
||||
|
||||
syntax keyword typescriptVariable let var
|
||||
\ nextgroup=typescriptVariableDeclaration
|
||||
\ skipwhite skipempty skipnl
|
||||
|
||||
syntax keyword typescriptVariable const
|
||||
\ nextgroup=typescriptEnum,typescriptVariableDeclaration
|
||||
\ skipwhite
|
||||
|
||||
syntax match typescriptVariableDeclaration /[A-Za-z_$]\k*/
|
||||
\ nextgroup=typescriptTypeAnnotation,typescriptAssign
|
||||
\ contained skipwhite skipempty skipnl
|
||||
|
||||
syntax region typescriptEnum matchgroup=typescriptEnumKeyword start=/enum / end=/\ze{/
|
||||
\ nextgroup=typescriptBlock
|
||||
\ skipwhite
|
||||
|
||||
syntax keyword typescriptKeywordOp
|
||||
\ contained in instanceof nextgroup=@typescriptValue
|
||||
syntax keyword typescriptOperator delete new typeof void
|
||||
\ nextgroup=@typescriptValue
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax keyword typescriptForOperator contained in of
|
||||
syntax keyword typescriptBoolean true false nextgroup=@typescriptSymbols skipwhite skipempty
|
||||
syntax keyword typescriptNull null undefined nextgroup=@typescriptSymbols skipwhite skipempty
|
||||
syntax keyword typescriptMessage alert confirm prompt status
|
||||
\ nextgroup=typescriptDotNotation,typescriptFuncCallArg
|
||||
syntax keyword typescriptGlobal self top parent
|
||||
\ nextgroup=@afterIdentifier
|
||||
|
||||
"Statement Keywords
|
||||
syntax keyword typescriptConditional if else switch
|
||||
\ nextgroup=typescriptConditionalParen
|
||||
\ skipwhite skipempty skipnl
|
||||
syntax keyword typescriptConditionalElse else
|
||||
syntax keyword typescriptRepeat do while for nextgroup=typescriptLoopParen skipwhite skipempty
|
||||
syntax keyword typescriptRepeat for nextgroup=typescriptLoopParen,typescriptAsyncFor skipwhite skipempty
|
||||
syntax keyword typescriptBranch break continue containedin=typescriptBlock
|
||||
syntax keyword typescriptCase case nextgroup=@typescriptPrimitive skipwhite containedin=typescriptBlock
|
||||
syntax keyword typescriptDefault default containedin=typescriptBlock nextgroup=@typescriptValue,typescriptClassKeyword,typescriptInterfaceKeyword skipwhite oneline
|
||||
syntax keyword typescriptStatementKeyword with
|
||||
syntax keyword typescriptStatementKeyword yield skipwhite nextgroup=@typescriptValue containedin=typescriptBlock
|
||||
syntax keyword typescriptStatementKeyword return skipwhite contained nextgroup=@typescriptValue containedin=typescriptBlock
|
||||
|
||||
syntax keyword typescriptTry try
|
||||
syntax keyword typescriptExceptions catch throw finally
|
||||
syntax keyword typescriptDebugger debugger
|
||||
|
||||
syntax keyword typescriptAsyncFor await nextgroup=typescriptLoopParen skipwhite skipempty contained
|
||||
|
||||
syntax region typescriptLoopParen contained matchgroup=typescriptParens
|
||||
\ start=/(/ end=/)/
|
||||
\ contains=typescriptVariable,typescriptForOperator,typescriptEndColons,@typescriptValue,@typescriptComments
|
||||
\ nextgroup=typescriptBlock
|
||||
\ skipwhite skipempty
|
||||
syntax region typescriptConditionalParen contained matchgroup=typescriptParens
|
||||
\ start=/(/ end=/)/
|
||||
\ contains=@typescriptValue,@typescriptComments
|
||||
\ nextgroup=typescriptBlock
|
||||
\ skipwhite skipempty
|
||||
syntax match typescriptEndColons /[;,]/ contained
|
||||
|
||||
syntax keyword typescriptAmbientDeclaration declare nextgroup=@typescriptAmbients
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax cluster typescriptAmbients contains=
|
||||
\ typescriptVariable,
|
||||
\ typescriptFuncKeyword,
|
||||
\ typescriptClassKeyword,
|
||||
\ typescriptAbstract,
|
||||
\ typescriptEnumKeyword,typescriptEnum,
|
||||
\ typescriptModule
|
||||
47
syntax/basic/literal.vim
Normal file
47
syntax/basic/literal.vim
Normal file
@@ -0,0 +1,47 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
"Syntax in the JavaScript code
|
||||
|
||||
" String
|
||||
syntax match typescriptASCII contained /\\\d\d\d/
|
||||
|
||||
syntax region typescriptTemplateSubstitution matchgroup=typescriptTemplateSB
|
||||
\ start=/\${/ end=/}/
|
||||
\ contains=@typescriptValue
|
||||
\ contained
|
||||
|
||||
|
||||
syntax region typescriptString
|
||||
\ start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ end=+$+
|
||||
\ contains=typescriptSpecial,@Spell
|
||||
\ extend
|
||||
|
||||
syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{4,5}})|c\u|.)"
|
||||
|
||||
" From vim runtime
|
||||
" <https://github.com/vim/vim/blob/master/runtime/syntax/javascript.vim#L48>
|
||||
syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuy]\{0,5\}\s*$+ end=+/[gimuy]\{0,5\}\s*[;.,)\]}]+me=e-1 nextgroup=typescriptDotNotation oneline
|
||||
|
||||
syntax region typescriptTemplate
|
||||
\ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/
|
||||
\ contains=typescriptTemplateSubstitution
|
||||
\ nextgroup=@typescriptSymbols
|
||||
\ skipwhite skipempty
|
||||
|
||||
"Array
|
||||
syntax region typescriptArray matchgroup=typescriptBraces
|
||||
\ start=/\[/ end=/]/
|
||||
\ contains=@typescriptValue,@typescriptComments
|
||||
\ nextgroup=@typescriptSymbols,typescriptDotNotation
|
||||
\ skipwhite skipempty fold
|
||||
|
||||
" Number
|
||||
syntax match typescriptNumber /\<0[bB][01][01_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
|
||||
syntax match typescriptNumber /\<0[oO][0-7][0-7_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
|
||||
syntax match typescriptNumber /\<0[xX][0-9a-fA-F][0-9a-fA-F_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
|
||||
syntax match typescriptNumber /\d[0-9_]*\.\d[0-9_]*\|\d[0-9_]*\|\.\d[0-9]*/
|
||||
\ nextgroup=typescriptExponent,@typescriptSymbols skipwhite skipempty
|
||||
syntax match typescriptExponent /[eE][+-]\=\d[0-9]*\>/
|
||||
\ nextgroup=@typescriptSymbols skipwhite skipempty contained
|
||||
50
syntax/basic/members.vim
Normal file
50
syntax/basic/members.vim
Normal file
@@ -0,0 +1,50 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax keyword typescriptConstructor contained constructor
|
||||
\ nextgroup=@typescriptCallSignature
|
||||
\ skipwhite skipempty
|
||||
|
||||
|
||||
syntax cluster memberNextGroup contains=typescriptMemberOptionality,typescriptTypeAnnotation,@typescriptCallSignature
|
||||
|
||||
syntax match typescriptMember /\K\k*/
|
||||
\ nextgroup=@memberNextGroup
|
||||
\ contained skipwhite
|
||||
|
||||
syntax match typescriptMethodAccessor contained /\v(get|set)\s\K/me=e-1
|
||||
\ nextgroup=@typescriptMembers
|
||||
|
||||
syntax cluster typescriptPropertyMemberDeclaration contains=
|
||||
\ typescriptClassStatic,
|
||||
\ typescriptAccessibilityModifier,
|
||||
\ typescriptReadonlyModifier,
|
||||
\ typescriptMethodAccessor,
|
||||
\ @typescriptMembers
|
||||
" \ typescriptMemberVariableDeclaration
|
||||
|
||||
syntax match typescriptMemberOptionality /?\|!/ contained
|
||||
\ nextgroup=typescriptTypeAnnotation,@typescriptCallSignature
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax cluster typescriptMembers contains=typescriptMember,typescriptStringMember,typescriptComputedMember
|
||||
|
||||
syntax keyword typescriptClassStatic static
|
||||
\ nextgroup=@typescriptMembers,typescriptAsyncFuncKeyword,typescriptReadonlyModifier
|
||||
\ skipwhite contained
|
||||
|
||||
syntax keyword typescriptAccessibilityModifier public private protected contained
|
||||
|
||||
syntax keyword typescriptReadonlyModifier readonly contained
|
||||
|
||||
syntax region typescriptStringMember contained
|
||||
\ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1/
|
||||
\ nextgroup=@memberNextGroup
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax region typescriptComputedMember contained matchgroup=typescriptProperty
|
||||
\ start=/\[/rs=s+1 end=/]/
|
||||
\ contains=@typescriptValue,typescriptMember,typescriptMappedIn
|
||||
\ nextgroup=@memberNextGroup
|
||||
\ skipwhite skipempty
|
||||
32
syntax/basic/object.vim
Normal file
32
syntax/basic/object.vim
Normal file
@@ -0,0 +1,32 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax region typescriptObjectLiteral matchgroup=typescriptBraces
|
||||
\ start=/{/ end=/}/
|
||||
\ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName
|
||||
\ fold contained
|
||||
|
||||
syntax match typescriptObjectLabel contained /\k\+\_s*/
|
||||
\ nextgroup=typescriptObjectColon,@typescriptCallImpl
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax region typescriptStringProperty contained
|
||||
\ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1/
|
||||
\ nextgroup=typescriptObjectColon,@typescriptCallImpl
|
||||
\ skipwhite skipempty
|
||||
|
||||
" syntax region typescriptPropertyName contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1(/me=e-1 nextgroup=@typescriptCallSignature skipwhite skipempty oneline
|
||||
syntax region typescriptComputedPropertyName contained matchgroup=typescriptBraces
|
||||
\ start=/\[/rs=s+1 end=/]/
|
||||
\ contains=@typescriptValue
|
||||
\ nextgroup=typescriptObjectColon,@typescriptCallImpl
|
||||
\ skipwhite skipempty
|
||||
|
||||
" syntax region typescriptComputedPropertyName contained matchgroup=typescriptPropertyName start=/\[/rs=s+1 end=/]\_s*:/he=e-1 contains=@typescriptValue nextgroup=@typescriptValue skipwhite skipempty
|
||||
" syntax region typescriptComputedPropertyName contained matchgroup=typescriptPropertyName start=/\[/rs=s+1 end=/]\_s*(/me=e-1 contains=@typescriptValue nextgroup=@typescriptCallSignature skipwhite skipempty
|
||||
" Value for object, statement for label statement
|
||||
syntax match typescriptRestOrSpread /\.\.\./ contained
|
||||
syntax match typescriptObjectSpread /\.\.\./ contained containedin=typescriptObjectLiteral,typescriptArray nextgroup=@typescriptValue
|
||||
|
||||
syntax match typescriptObjectColon contained /:/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
9
syntax/basic/patch.vim
Normal file
9
syntax/basic/patch.vim
Normal file
@@ -0,0 +1,9 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
" patch for generated code
|
||||
syntax keyword typescriptGlobal Promise
|
||||
\ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline
|
||||
syntax keyword typescriptGlobal Map WeakMap
|
||||
\ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline
|
||||
35
syntax/basic/reserved.vim
Normal file
35
syntax/basic/reserved.vim
Normal file
@@ -0,0 +1,35 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax cluster typescriptStrings contains=typescriptProp,typescriptString,typescriptTemplate,@typescriptComments,typescriptDocComment,typescriptRegexpString,typescriptPropertyName
|
||||
|
||||
syntax cluster typescriptNoReserved contains=
|
||||
\ @typescriptStrings,
|
||||
\ @typescriptDocs,
|
||||
\ @typescriptComments,
|
||||
\ shellbang,
|
||||
\ typescriptObjectLiteral,
|
||||
\ typescriptObjectLabel,
|
||||
\ typescriptClassBlock,
|
||||
\ @typescriptType,
|
||||
\ typescriptCall
|
||||
|
||||
"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved break case catch const continue
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved debugger delete do else export
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved extends finally for if
|
||||
"import,typescriptRegexpString,typescriptPropertyName
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved in instanceof let new return super
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved static switch throw try typeof
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved void while with yield
|
||||
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved implements package protected
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved interface private public readonly abstract
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved byte char double final float goto int
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved long native short synchronized transient
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved volatile
|
||||
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved class
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved var
|
||||
syntax keyword typescriptReserved containedin=ALLBUT,@typescriptNoReserved function
|
||||
42
syntax/basic/symbols.vim
Normal file
42
syntax/basic/symbols.vim
Normal file
@@ -0,0 +1,42 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
" + - ^ ~
|
||||
syntax match typescriptUnaryOp /[+\-~!]/
|
||||
\ nextgroup=@typescriptValue
|
||||
\ skipwhite
|
||||
|
||||
syntax region typescriptTernary matchgroup=typescriptTernaryOp start=/?/ end=/:/ contained contains=@typescriptValue,@typescriptComments nextgroup=@typescriptValue skipwhite skipempty
|
||||
|
||||
syntax match typescriptAssign /=/ nextgroup=@typescriptValue
|
||||
\ skipwhite skipempty
|
||||
|
||||
" 2: ==, ===
|
||||
syntax match typescriptBinaryOp contained /===\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 6: >>>=, >>>, >>=, >>, >=, >
|
||||
syntax match typescriptBinaryOp contained />\(>>=\|>>\|>=\|>\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 4: <<=, <<, <=, <
|
||||
syntax match typescriptBinaryOp contained /<\(<=\|<\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 3: ||, |=, |
|
||||
syntax match typescriptBinaryOp contained /|\(|\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 3: &&, &=, &
|
||||
syntax match typescriptBinaryOp contained /&\(&\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 2: *=, *
|
||||
syntax match typescriptBinaryOp contained /\*=\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 2: %=, %
|
||||
syntax match typescriptBinaryOp contained /%=\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 2: /=, /
|
||||
syntax match typescriptBinaryOp contained +/\(=\|[^\*/]\@=\)+ nextgroup=@typescriptValue skipwhite skipempty
|
||||
syntax match typescriptBinaryOp contained /!==\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 2: !=, !==
|
||||
syntax match typescriptBinaryOp contained /+\(+\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 3: +, ++, +=
|
||||
syntax match typescriptBinaryOp contained /-\(-\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||
" 3: -, --, -=
|
||||
|
||||
" exponentiation operator
|
||||
" 2: **, **=
|
||||
syntax match typescriptBinaryOp contained /\*\*=\?/ nextgroup=@typescriptValue
|
||||
|
||||
syntax cluster typescriptSymbols contains=typescriptBinaryOp,typescriptKeywordOp,typescriptTernary,typescriptAssign,typescriptCastKeyword
|
||||
191
syntax/basic/type.vim
Normal file
191
syntax/basic/type.vim
Normal file
@@ -0,0 +1,191 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'typescript') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
" Types
|
||||
syntax match typescriptOptionalMark /?/ contained
|
||||
|
||||
syntax region typescriptTypeParameters matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ contained
|
||||
|
||||
syntax match typescriptTypeParameter /\K\k*/
|
||||
\ nextgroup=typescriptConstraint,typescriptGenericDefault
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax keyword typescriptConstraint extends
|
||||
\ nextgroup=@typescriptType
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax match typescriptGenericDefault /=/
|
||||
\ nextgroup=@typescriptType
|
||||
\ contained skipwhite
|
||||
|
||||
"><
|
||||
" class A extend B<T> {} // ClassBlock
|
||||
" func<T>() // FuncCallArg
|
||||
syntax region typescriptTypeArguments matchgroup=typescriptTypeBrackets
|
||||
\ start=/\></ end=/>/
|
||||
\ contains=@typescriptType
|
||||
\ nextgroup=typescriptFuncCallArg,@typescriptTypeOperator
|
||||
\ contained skipwhite
|
||||
|
||||
|
||||
syntax cluster typescriptType contains=
|
||||
\ @typescriptPrimaryType,
|
||||
\ typescriptUnion,
|
||||
\ @typescriptFunctionType,
|
||||
\ typescriptConstructorType
|
||||
|
||||
" array type: A[]
|
||||
" type indexing A['key']
|
||||
syntax region typescriptTypeBracket contained
|
||||
\ start=/\[/ end=/\]/
|
||||
\ contains=typescriptString,typescriptNumber
|
||||
\ nextgroup=@typescriptTypeOperator
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax cluster typescriptPrimaryType contains=
|
||||
\ typescriptParenthesizedType,
|
||||
\ typescriptPredefinedType,
|
||||
\ typescriptTypeReference,
|
||||
\ typescriptObjectType,
|
||||
\ typescriptTupleType,
|
||||
\ typescriptTypeQuery,
|
||||
\ typescriptStringLiteralType,
|
||||
\ typescriptReadonlyArrayKeyword
|
||||
|
||||
syntax region typescriptStringLiteralType contained
|
||||
\ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/
|
||||
\ nextgroup=typescriptUnion
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax region typescriptParenthesizedType matchgroup=typescriptParens
|
||||
\ start=/(/ end=/)/
|
||||
\ contains=@typescriptType
|
||||
\ nextgroup=@typescriptTypeOperator
|
||||
\ contained skipwhite skipempty fold
|
||||
|
||||
syntax match typescriptTypeReference /\K\k*\(\.\K\k*\)*/
|
||||
\ nextgroup=typescriptTypeArguments,@typescriptTypeOperator,typescriptUserDefinedType
|
||||
\ skipwhite contained skipempty
|
||||
|
||||
syntax keyword typescriptPredefinedType any number boolean string void never undefined null object unknown
|
||||
\ nextgroup=@typescriptTypeOperator
|
||||
\ contained skipwhite skipempty
|
||||
|
||||
syntax match typescriptPredefinedType /unique symbol/
|
||||
\ nextgroup=@typescriptTypeOperator
|
||||
\ contained skipwhite skipempty
|
||||
|
||||
syntax region typescriptObjectType matchgroup=typescriptBraces
|
||||
\ start=/{/ end=/}/
|
||||
\ contains=@typescriptTypeMember,typescriptEndColons,@typescriptComments,typescriptAccessibilityModifier,typescriptReadonlyModifier
|
||||
\ nextgroup=@typescriptTypeOperator
|
||||
\ contained skipwhite fold
|
||||
|
||||
syntax cluster typescriptTypeMember contains=
|
||||
\ @typescriptCallSignature,
|
||||
\ typescriptConstructSignature,
|
||||
\ typescriptIndexSignature,
|
||||
\ @typescriptMembers
|
||||
|
||||
syntax region typescriptTupleType matchgroup=typescriptBraces
|
||||
\ start=/\[/ end=/\]/
|
||||
\ contains=@typescriptType
|
||||
\ contained skipwhite oneline
|
||||
|
||||
syntax cluster typescriptTypeOperator
|
||||
\ contains=typescriptUnion,typescriptTypeBracket
|
||||
|
||||
syntax match typescriptUnion /|\|&/ contained nextgroup=@typescriptPrimaryType skipwhite skipempty
|
||||
|
||||
syntax cluster typescriptFunctionType contains=typescriptGenericFunc,typescriptFuncType
|
||||
syntax region typescriptGenericFunc matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ nextgroup=typescriptFuncType
|
||||
\ containedin=typescriptFunctionType
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax region typescriptFuncType matchgroup=typescriptParens
|
||||
\ start=/(/ end=/)\s*=>/me=e-2
|
||||
\ contains=@typescriptParameterList
|
||||
\ nextgroup=typescriptFuncTypeArrow
|
||||
\ contained skipwhite skipnl oneline
|
||||
|
||||
syntax match typescriptFuncTypeArrow /=>/
|
||||
\ nextgroup=@typescriptType
|
||||
\ containedin=typescriptFuncType
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
|
||||
syntax keyword typescriptConstructorType new
|
||||
\ nextgroup=@typescriptFunctionType
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax keyword typescriptUserDefinedType is
|
||||
\ contained nextgroup=@typescriptType skipwhite skipempty
|
||||
|
||||
syntax keyword typescriptTypeQuery typeof keyof
|
||||
\ nextgroup=typescriptTypeReference
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax cluster typescriptCallSignature contains=typescriptGenericCall,typescriptCall
|
||||
syntax region typescriptGenericCall matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ nextgroup=typescriptCall
|
||||
\ contained skipwhite skipnl
|
||||
syntax region typescriptCall matchgroup=typescriptParens
|
||||
\ start=/(/ end=/)/
|
||||
\ contains=typescriptDecorator,@typescriptParameterList,@typescriptComments
|
||||
\ nextgroup=typescriptTypeAnnotation,typescriptBlock
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax match typescriptTypeAnnotation /:/
|
||||
\ nextgroup=@typescriptType
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax cluster typescriptParameterList contains=
|
||||
\ typescriptTypeAnnotation,
|
||||
\ typescriptAccessibilityModifier,
|
||||
\ typescriptOptionalMark,
|
||||
\ typescriptRestOrSpread,
|
||||
\ typescriptFuncComma,
|
||||
\ typescriptDefaultParam
|
||||
|
||||
syntax match typescriptFuncComma /,/ contained
|
||||
|
||||
syntax match typescriptDefaultParam /=/
|
||||
\ nextgroup=@typescriptValue
|
||||
\ contained skipwhite
|
||||
|
||||
syntax keyword typescriptConstructSignature new
|
||||
\ nextgroup=@typescriptCallSignature
|
||||
\ contained skipwhite
|
||||
|
||||
syntax region typescriptIndexSignature matchgroup=typescriptBraces
|
||||
\ start=/\[/ end=/\]/
|
||||
\ contains=typescriptPredefinedType,typescriptMappedIn,typescriptString
|
||||
\ nextgroup=typescriptTypeAnnotation
|
||||
\ contained skipwhite oneline
|
||||
|
||||
syntax keyword typescriptMappedIn in
|
||||
\ nextgroup=@typescriptType
|
||||
\ contained skipwhite skipnl skipempty
|
||||
|
||||
syntax keyword typescriptAliasKeyword type
|
||||
\ nextgroup=typescriptAliasDeclaration
|
||||
\ skipwhite skipnl skipempty
|
||||
|
||||
syntax region typescriptAliasDeclaration matchgroup=typescriptUnion
|
||||
\ start=/ / end=/=/
|
||||
\ nextgroup=@typescriptType
|
||||
\ contains=typescriptConstraint,typescriptTypeParameters
|
||||
\ contained skipwhite skipempty
|
||||
|
||||
syntax keyword typescriptReadonlyArrayKeyword readonly
|
||||
\ nextgroup=@typescriptPrimaryType
|
||||
\ skipwhite
|
||||
Reference in New Issue
Block a user