Skip to content

Commit 66d8d28

Browse files
rhysdchrisbra
authored andcommitted
runtime(typescript): Add syntax support for defer and arbitrary module identifiers
closes: #17911 Signed-off-by: rhysd <[email protected]> Signed-off-by: Christian Brabandt <[email protected]>
1 parent 22fc41f commit 66d8d28

File tree

1 file changed

+112
-109
lines changed

1 file changed

+112
-109
lines changed

runtime/syntax/shared/typescriptcommon.vim

Lines changed: 112 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
" Language: TypeScript and TypeScriptReact
33
" Maintainer: Herrington Darkholme
44
" Last Change: 2024 May 24
5+
" 2025 Aug 05 support for new TypeScript syntaxes
56
" Based On: Herrington Darkholme's yats.vim
67
" Changes: See https://github.com/HerringtonDarkholme/yats.vim
78
" Credits: See yats.vim on github
@@ -11,7 +12,6 @@ if &cpo =~ 'C'
1112
set cpo&vim
1213
endif
1314

14-
1515
" NOTE: this results in accurate highlighting, but can be slow.
1616
syntax sync fromstart
1717

@@ -240,10 +240,22 @@ syntax cluster typescriptSymbols contains=typescriptBinaryOp,types
240240
"Import
241241
syntax keyword typescriptImport from as
242242
syntax keyword typescriptImport import
243-
\ nextgroup=typescriptImportType,typescriptTypeBlock,typescriptDefaultImportName
243+
\ nextgroup=typescriptImportType,typescriptImportBlock,typescriptDefaultImportName,typescriptImportDefer
244244
\ skipwhite
245245
syntax keyword typescriptImportType type
246246
\ contained
247+
syntax match typescriptDefaultImportName /\v\h\k*( |,)/
248+
\ contained
249+
\ nextgroup=typescriptImportBlock
250+
\ skipwhite skipempty
251+
syntax match typescriptImportDefer /\<defer\%(\s\+\*\)\@=/
252+
\ contained
253+
syntax region typescriptImportBlock
254+
\ matchgroup=typescriptBraces
255+
\ start=/{/ end=/}/
256+
\ contained
257+
\ contains=typescriptIdentifierName,typescriptImportType,typescriptString
258+
\ fold
247259
syntax keyword typescriptExport export
248260
\ nextgroup=typescriptExportType
249261
\ skipwhite
@@ -329,21 +341,11 @@ syntax cluster typescriptAmbients contains=
329341
\ typescriptModule
330342

331343
syntax keyword typescriptIdentifier arguments nextgroup=@afterIdentifier
332-
syntax match typescriptDefaultImportName /\v\h\k*( |,)/
333-
\ contained
334-
\ nextgroup=typescriptTypeBlock
335-
\ skipwhite skipempty
336-
337-
syntax region typescriptTypeBlock
338-
\ matchgroup=typescriptBraces
339-
\ start=/{/ end=/}/
340-
\ contained
341-
\ contains=typescriptIdentifierName,typescriptImportType
342-
\ fold
343344

344345
"Program Keywords
345346
syntax keyword typescriptNull null undefined nextgroup=@typescriptSymbols skipwhite skipempty
346-
syntax keyword typescriptIdentifier this super prototype nextgroup=@afterIdentifier
347+
syntax keyword typescriptIdentifier this super nextgroup=@afterIdentifier
348+
syntax keyword typescriptPrototype prototype nextgroup=@afterIdentifier
347349
syntax keyword typescriptStatementKeyword return skipwhite contained nextgroup=@typescriptValue containedin=typescriptBlock
348350

349351
"Syntax coloring for Node.js shebang line
@@ -1988,100 +1990,101 @@ syntax match typescriptDecorator /@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a
19881990
\ contains=@_semantic,typescriptDotNotation
19891991

19901992

1991-
hi def link typescriptReserved Error
1992-
1993-
hi def link typescriptEndColons Exception
1994-
hi def link typescriptSymbols Normal
1995-
hi def link typescriptBraces Function
1996-
hi def link typescriptParens Normal
1997-
hi def link typescriptComment Comment
1998-
hi def link typescriptLineComment Comment
1999-
hi def link typescriptDocComment Comment
2000-
hi def link typescriptCommentTodo Todo
2001-
hi def link typescriptMagicComment SpecialComment
2002-
hi def link typescriptRef Include
2003-
hi def link typescriptDocNotation SpecialComment
2004-
hi def link typescriptDocTags SpecialComment
2005-
hi def link typescriptDocNGParam typescriptDocParam
2006-
hi def link typescriptDocParam Function
2007-
hi def link typescriptDocNumParam Function
2008-
hi def link typescriptDocEventRef Function
2009-
hi def link typescriptDocNamedParamType Type
2010-
hi def link typescriptDocParamName Type
2011-
hi def link typescriptDocParamType Type
2012-
hi def link typescriptString String
2013-
hi def link typescriptSpecial Special
2014-
hi def link typescriptStringLiteralType String
2015-
hi def link typescriptTemplateLiteralType String
2016-
hi def link typescriptStringMember String
2017-
hi def link typescriptTemplate String
2018-
hi def link typescriptEventString String
2019-
hi def link typescriptDestructureString String
2020-
hi def link typescriptASCII Special
2021-
hi def link typescriptTemplateSB Label
2022-
hi def link typescriptRegexpString String
2023-
hi def link typescriptGlobal Constant
2024-
hi def link typescriptTestGlobal Function
2025-
hi def link typescriptPrototype Type
2026-
hi def link typescriptConditional Conditional
2027-
hi def link typescriptConditionalElse Conditional
2028-
hi def link typescriptCase Conditional
2029-
hi def link typescriptDefault typescriptCase
2030-
hi def link typescriptBranch Conditional
2031-
hi def link typescriptIdentifier Structure
2032-
hi def link typescriptVariable Identifier
2033-
hi def link typescriptUsing Identifier
2034-
hi def link typescriptDestructureVariable PreProc
2035-
hi def link typescriptEnumKeyword Identifier
2036-
hi def link typescriptRepeat Repeat
2037-
hi def link typescriptForOperator Repeat
2038-
hi def link typescriptStatementKeyword Statement
2039-
hi def link typescriptMessage Keyword
2040-
hi def link typescriptOperator Identifier
2041-
hi def link typescriptKeywordOp Identifier
2042-
hi def link typescriptCastKeyword Special
2043-
hi def link typescriptType Type
2044-
hi def link typescriptNull Boolean
2045-
hi def link typescriptNumber Number
2046-
hi def link typescriptBoolean Boolean
2047-
hi def link typescriptObjectLabel typescriptLabel
2048-
hi def link typescriptDestructureLabel Function
2049-
hi def link typescriptLabel Label
2050-
hi def link typescriptTupleLable Label
2051-
hi def link typescriptStringProperty String
2052-
hi def link typescriptImport Special
2053-
hi def link typescriptImportType Special
2054-
hi def link typescriptAmbientDeclaration Special
2055-
hi def link typescriptExport Special
2056-
hi def link typescriptExportType Special
2057-
hi def link typescriptModule Special
2058-
hi def link typescriptTry Special
2059-
hi def link typescriptExceptions Special
2060-
2061-
hi def link typescriptMember Function
2062-
hi def link typescriptMethodAccessor Operator
2063-
2064-
hi def link typescriptAsyncFuncKeyword Keyword
2065-
hi def link typescriptObjectAsyncKeyword Keyword
2066-
hi def link typescriptAsyncFor Keyword
2067-
hi def link typescriptFuncKeyword Keyword
2068-
hi def link typescriptAsyncFunc Keyword
2069-
hi def link typescriptArrowFunc Type
2070-
hi def link typescriptFuncName Function
2071-
hi def link typescriptFuncCallArg PreProc
2072-
hi def link typescriptArrowFuncArg PreProc
2073-
hi def link typescriptFuncComma Operator
2074-
2075-
hi def link typescriptClassKeyword Keyword
2076-
hi def link typescriptClassExtends Keyword
2077-
hi def link typescriptAbstract Special
2078-
hi def link typescriptClassStatic StorageClass
2079-
hi def link typescriptReadonlyModifier Keyword
2080-
hi def link typescriptInterfaceKeyword Keyword
2081-
hi def link typescriptInterfaceExtends Keyword
2082-
hi def link typescriptInterfaceName Function
2083-
2084-
hi def link shellbang Comment
1993+
hi def link typescriptReserved Error
1994+
1995+
hi def link typescriptEndColons Exception
1996+
hi def link typescriptSymbols Normal
1997+
hi def link typescriptBraces Function
1998+
hi def link typescriptParens Normal
1999+
hi def link typescriptComment Comment
2000+
hi def link typescriptLineComment Comment
2001+
hi def link typescriptDocComment Comment
2002+
hi def link typescriptCommentTodo Todo
2003+
hi def link typescriptMagicComment SpecialComment
2004+
hi def link typescriptRef Include
2005+
hi def link typescriptDocNotation SpecialComment
2006+
hi def link typescriptDocTags SpecialComment
2007+
hi def link typescriptDocNGParam typescriptDocParam
2008+
hi def link typescriptDocParam Function
2009+
hi def link typescriptDocNumParam Function
2010+
hi def link typescriptDocEventRef Function
2011+
hi def link typescriptDocNamedParamType Type
2012+
hi def link typescriptDocParamName Type
2013+
hi def link typescriptDocParamType Type
2014+
hi def link typescriptString String
2015+
hi def link typescriptSpecial Special
2016+
hi def link typescriptStringLiteralType String
2017+
hi def link typescriptTemplateLiteralType String
2018+
hi def link typescriptStringMember String
2019+
hi def link typescriptTemplate String
2020+
hi def link typescriptEventString String
2021+
hi def link typescriptDestructureString String
2022+
hi def link typescriptASCII Special
2023+
hi def link typescriptTemplateSB Label
2024+
hi def link typescriptRegexpString String
2025+
hi def link typescriptGlobal Constant
2026+
hi def link typescriptTestGlobal Function
2027+
hi def link typescriptPrototype Type
2028+
hi def link typescriptConditional Conditional
2029+
hi def link typescriptConditionalElse Conditional
2030+
hi def link typescriptCase Conditional
2031+
hi def link typescriptDefault typescriptCase
2032+
hi def link typescriptBranch Conditional
2033+
hi def link typescriptIdentifier Structure
2034+
hi def link typescriptVariable Keyword
2035+
hi def link typescriptUsing Identifier
2036+
hi def link typescriptDestructureVariable PreProc
2037+
hi def link typescriptEnumKeyword Identifier
2038+
hi def link typescriptRepeat Repeat
2039+
hi def link typescriptForOperator Repeat
2040+
hi def link typescriptStatementKeyword Statement
2041+
hi def link typescriptMessage Keyword
2042+
hi def link typescriptOperator Operator
2043+
hi def link typescriptKeywordOp Operator
2044+
hi def link typescriptCastKeyword Special
2045+
hi def link typescriptType Type
2046+
hi def link typescriptNull Boolean
2047+
hi def link typescriptNumber Number
2048+
hi def link typescriptBoolean Boolean
2049+
hi def link typescriptObjectLabel typescriptLabel
2050+
hi def link typescriptDestructureLabel Function
2051+
hi def link typescriptLabel Label
2052+
hi def link typescriptTupleLable Label
2053+
hi def link typescriptStringProperty String
2054+
hi def link typescriptImport Keyword
2055+
hi def link typescriptImportType Keyword
2056+
hi def link typescriptImportDefer Keyword
2057+
hi def link typescriptAmbientDeclaration Keyword
2058+
hi def link typescriptExport Keyword
2059+
hi def link typescriptExportType Keyword
2060+
hi def link typescriptModule Keyword
2061+
hi def link typescriptTry Exception
2062+
hi def link typescriptExceptions Exception
2063+
2064+
hi def link typescriptMember Function
2065+
hi def link typescriptMethodAccessor Operator
2066+
2067+
hi def link typescriptAsyncFuncKeyword Keyword
2068+
hi def link typescriptObjectAsyncKeyword Keyword
2069+
hi def link typescriptAsyncFor Keyword
2070+
hi def link typescriptFuncKeyword Keyword
2071+
hi def link typescriptAsyncFunc Keyword
2072+
hi def link typescriptArrowFunc Type
2073+
hi def link typescriptFuncName Function
2074+
hi def link typescriptFuncCallArg PreProc
2075+
hi def link typescriptArrowFuncArg PreProc
2076+
hi def link typescriptFuncComma Operator
2077+
2078+
hi def link typescriptClassKeyword Keyword
2079+
hi def link typescriptClassExtends Keyword
2080+
hi def link typescriptAbstract Special
2081+
hi def link typescriptClassStatic StorageClass
2082+
hi def link typescriptReadonlyModifier StorageClass
2083+
hi def link typescriptInterfaceKeyword Keyword
2084+
hi def link typescriptInterfaceExtends Keyword
2085+
hi def link typescriptInterfaceName Function
2086+
2087+
hi def link shellbang Comment
20852088

20862089
hi def link typescriptTypeParameter Identifier
20872090
hi def link typescriptConstraint Keyword
@@ -2107,7 +2110,7 @@ hi def link typescriptConstructor Keyword
21072110
hi def link typescriptDecorator Special
21082111
hi def link typescriptAssertType Keyword
21092112

2110-
hi link typeScript NONE
2113+
hi def link typeScript NONE
21112114

21122115
if exists('s:cpo_save')
21132116
let &cpo = s:cpo_save

0 commit comments

Comments
 (0)