1773a97c2SBram Moolenaar" Vim syntax file
2773a97c2SBram Moolenaar" Language:     TypeScript
3*91359014SBram Moolenaar" Maintainer:   Bram Moolenaar, Herrington Darkholme
4*91359014SBram Moolenaar" Last Change:	2019 Nov 30
5773a97c2SBram Moolenaar" Based On:     Herrington Darkholme's yats.vim
6*91359014SBram Moolenaar" Changes:      Go to https:github.com/HerringtonDarkholme/yats.vim for recent changes.
7*91359014SBram Moolenaar" Origin:       https://github.com/othree/yajs
8*91359014SBram Moolenaar" Credits:      Kao Wei-Ko(othree), Jose Elera Campana, Zhao Yi, Claudio Fleiner, Scott Shattuck
9*91359014SBram Moolenaar"               (This file is based on their hard work), gumnos (From the #vim
10*91359014SBram Moolenaar"               IRC Channel in Freenode)
11773a97c2SBram Moolenaar
12773a97c2SBram Moolenaar" This is the same syntax that is in yats.vim, but:
13773a97c2SBram Moolenaar" - flattened into one file
14773a97c2SBram Moolenaar" - HiLink commands changed to "hi def link"
15773a97c2SBram Moolenaar" - Setting 'cpo' to the Vim value
16773a97c2SBram Moolenaar
17773a97c2SBram Moolenaarif !exists("main_syntax")
18773a97c2SBram Moolenaar  if exists("b:current_syntax")
19773a97c2SBram Moolenaar    finish
20773a97c2SBram Moolenaar  endif
21773a97c2SBram Moolenaar  let main_syntax = 'typescript'
22773a97c2SBram Moolenaarendif
23773a97c2SBram Moolenaar
24773a97c2SBram Moolenaarlet s:cpo_save = &cpo
25773a97c2SBram Moolenaarset cpo&vim
26773a97c2SBram Moolenaar
2709c6f265SBram Moolenaar" this region is NOT used in TypeScriptReact
28773a97c2SBram Moolenaar" nextgroup doesn't contain objectLiteral, let outer region contains it
29773a97c2SBram Moolenaarsyntax region typescriptTypeCast matchgroup=typescriptTypeBrackets
30773a97c2SBram Moolenaar  \ start=/< \@!/ end=/>/
31773a97c2SBram Moolenaar  \ contains=@typescriptType
32773a97c2SBram Moolenaar  \ nextgroup=@typescriptExpression
33773a97c2SBram Moolenaar  \ contained skipwhite oneline
34773a97c2SBram Moolenaar
35773a97c2SBram Moolenaar
3609c6f265SBram Moolenaar"""""""""""""""""""""""""""""""""""""""""""""""""""
3709c6f265SBram Moolenaar" Source the part common with typescriptreact.vim
3809c6f265SBram Moolenaarsource <sfile>:h/typescriptcommon.vim
39773a97c2SBram Moolenaar
40773a97c2SBram Moolenaar
41773a97c2SBram Moolenaarlet b:current_syntax = "typescript"
42773a97c2SBram Moolenaarif main_syntax == 'typescript'
43773a97c2SBram Moolenaar  unlet main_syntax
44773a97c2SBram Moolenaarendif
45773a97c2SBram Moolenaar
46773a97c2SBram Moolenaarlet &cpo = s:cpo_save
47773a97c2SBram Moolenaarunlet s:cpo_save
48