mirror of
https://github.com/neovim/neovim.git
synced 2026-11-06 13:26:57 +00:00
closes: vim/vim#21200 https://github.com/vim/vim/commit/5867d1f8eec240b104388f87545e3ee530c28b42 Co-authored-by: 231tr0n <zeltronsrikar@gmail.com>
54 lines
1.6 KiB
VimL
54 lines
1.6 KiB
VimL
" Vim syntax file
|
|
" Language: TypeScript
|
|
" Maintainer: Herrington Darkholme
|
|
" Last Change: 2024 May 24
|
|
" Based On: Herrington Darkholme's yats.vim
|
|
" Changes: Go to https://github.com/HerringtonDarkholme/yats.vim for recent changes.
|
|
" Origin: https://github.com/othree/yajs
|
|
" Credits: Kao Wei-Ko(othree), Jose Elera Campana, Zhao Yi, Claudio Fleiner, Scott Shattuck
|
|
" (This file is based on their hard work), gumnos (From the #vim
|
|
" IRC Channel in Freenode)
|
|
|
|
" This is the same syntax that is in yats.vim, but:
|
|
" - flattened into one file
|
|
" - HiLink commands changed to "hi def link"
|
|
" - Setting 'cpo' to the Vim value
|
|
|
|
if !exists("main_syntax")
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
let main_syntax = 'typescript'
|
|
endif
|
|
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
" this region is NOT used in TypeScriptReact
|
|
" nextgroup doesn't contain objectLiteral, let outer region contains it
|
|
syntax region typescriptTypeCast matchgroup=typescriptTypeBrackets
|
|
\ start=/< \@!/ end=/>/
|
|
\ contains=@typescriptType
|
|
\ nextgroup=@typescriptExpression
|
|
\ contained skipwhite oneline
|
|
|
|
|
|
"""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
" Source the part common with typescriptreact.vim
|
|
source <sfile>:h/shared/typescriptcommon.vim
|
|
|
|
|
|
let b:current_syntax = "typescript"
|
|
if main_syntax == 'typescript'
|
|
unlet main_syntax
|
|
endif
|
|
|
|
" Svelte 5 runes ($state, $derived, $props, ...) inside .svelte.ts modules.
|
|
if expand('%:t') =~# '\.svelte\.ts$'
|
|
syntax match svelteRune "\$\w\+" containedin=ALL
|
|
highlight default link svelteRune Statement
|
|
endif
|
|
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|