Mercurial > vim
view runtime/syntax/typescriptreact.vim @ 30162:d12d9d724d27 v9.0.0417
patch 9.0.0417: Jsonnet files are not recognized
Commit: https://github.com/vim/vim/commit/2a4c885d54171f68ec2c2d6eb4ae281c7fefb802
Author: =?UTF-8?q?Cezary=20Dro=C5=BCak?= <cezdro@alatek.com.pl>
Date: Thu Sep 8 14:41:48 2022 +0100
patch 9.0.0417: Jsonnet files are not recognized
Problem: Jsonnet files are not recognized.
Solution: Add a pattern for Jsonnet files. (Cezary Dro?ak, closes https://github.com/vim/vim/issues/11073,
closes #11081)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 08 Sep 2022 15:45:04 +0200 |
parents | 2acb87ee55fc |
children | 71cbad0921c9 |
line wrap: on
line source
" Vim syntax file " Language: TypeScript with React (JSX) " Maintainer: Bram Moolenaar " Last Change: 2019 Nov 30 " Based On: Herrington Darkholme's yats.vim " Changes: See https:github.com/HerringtonDarkholme/yats.vim " Credits: See yats.vim on github if !exists("main_syntax") if exists("b:current_syntax") finish endif let main_syntax = 'typescriptreact' endif let s:cpo_save = &cpo set cpo&vim syntax region tsxTag \ start=+<\([^/!?<>="':]\+\)\@=+ \ skip=+</[^ /!?<>"']\+>+ \ end=+/\@<!>+ \ end=+\(/>\)\@=+ \ contained \ contains=tsxTagName,tsxIntrinsicTagName,tsxAttrib,tsxEscJs, \tsxCloseString,@tsxComment syntax match tsxTag /<>/ contained " <tag></tag> " s~~~~~~~~~e " and self close tag " <tag/> " s~~~~e " A big start regexp borrowed from https://git.io/vDyxc syntax region tsxRegion \ start=+<\_s*\z([a-zA-Z1-9\$_-]\+\(\.\k\+\)*\)+ \ skip=+<!--\_.\{-}-->+ \ end=+</\_s*\z1>+ \ matchgroup=tsxCloseString end=+/>+ \ fold \ contains=tsxRegion,tsxCloseString,tsxCloseTag,tsxTag,tsxCommentInvalid,tsxFragment,tsxEscJs,@Spell \ keepend \ extend " <> </> " s~~~~~~e " A big start regexp borrowed from https://git.io/vDyxc syntax region tsxFragment \ start=+\(\((\|{\|}\|\[\|,\|&&\|||\|?\|:\|=\|=>\|\Wreturn\|^return\|\Wdefault\|^\|>\)\_s*\)\@<=<>+ \ skip=+<!--\_.\{-}-->+ \ end=+</>+ \ fold \ contains=tsxRegion,tsxCloseString,tsxCloseTag,tsxTag,tsxCommentInvalid,tsxFragment,tsxEscJs,@Spell \ keepend \ extend " </tag> " ~~~~~~ syntax match tsxCloseTag \ +</\_s*[^/!?<>"']\+>+ \ contained \ contains=tsxTagName,tsxIntrinsicTagName syntax match tsxCloseTag +</>+ contained syntax match tsxCloseString \ +/>+ \ contained " <!-- --> " ~~~~~~~~ syntax match tsxCommentInvalid /<!--\_.\{-}-->/ display syntax region tsxBlockComment \ contained \ start="/\*" \ end="\*/" syntax match tsxLineComment \ "//.*$" \ contained \ display syntax cluster tsxComment contains=tsxBlockComment,tsxLineComment syntax match tsxEntity "&[^; \t]*;" contains=tsxEntityPunct syntax match tsxEntityPunct contained "[&.;]" " <tag key={this.props.key}> " ~~~ syntax match tsxTagName \ +[</]\_s*[^/!?<>"'* ]\++hs=s+1 \ contained \ nextgroup=tsxAttrib \ skipwhite \ display syntax match tsxIntrinsicTagName \ +[</]\_s*[a-z1-9-]\++hs=s+1 \ contained \ nextgroup=tsxAttrib \ skipwhite \ display " <tag key={this.props.key}> " ~~~ syntax match tsxAttrib \ +[a-zA-Z_][-0-9a-zA-Z_]*+ \ nextgroup=tsxEqual skipwhite \ contained \ display " <tag id="sample"> " ~ syntax match tsxEqual +=+ display contained \ nextgroup=tsxString skipwhite " <tag id="sample"> " s~~~~~~e syntax region tsxString contained start=+"+ end=+"+ contains=tsxEntity,@Spell display " <tag key={this.props.key}> " s~~~~~~~~~~~~~~e syntax region tsxEscJs \ contained \ contains=@typescriptValue,@tsxComment \ matchgroup=typescriptBraces \ start=+{+ \ end=+}+ \ extend """"""""""""""""""""""""""""""""""""""""""""""""""" " Source the part common with typescriptreact.vim source <sfile>:h/shared/typescriptcommon.vim syntax cluster typescriptExpression add=tsxRegion,tsxFragment hi def link tsxTag htmlTag hi def link tsxTagName Function hi def link tsxIntrinsicTagName htmlTagName hi def link tsxString String hi def link tsxNameSpace Function hi def link tsxCommentInvalid Error hi def link tsxBlockComment Comment hi def link tsxLineComment Comment hi def link tsxAttrib Type hi def link tsxEscJs tsxEscapeJs hi def link tsxCloseTag htmlTag hi def link tsxCloseString Identifier let b:current_syntax = "typescriptreact" if main_syntax == 'typescriptreact' unlet main_syntax endif let &cpo = s:cpo_save unlet s:cpo_save