diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2019-06-08 13:03:18 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-06-08 13:03:32 +0200 |
commit | 0217fb50fe40a631cc220462520249e36dbc919a (patch) | |
tree | 804a36631e33f021c81660de57b38c67bac5b237 /after/syntax | |
parent | 5023da62ecb8a008a9dc67b29516ac707f07f3a0 (diff) | |
download | vim-polyglot-0217fb50fe40a631cc220462520249e36dbc919a.tar.gz vim-polyglot-0217fb50fe40a631cc220462520249e36dbc919a.zip |
Add tsx provider, closes #330
Diffstat (limited to 'after/syntax')
-rw-r--r-- | after/syntax/tsx.vim | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/after/syntax/tsx.vim b/after/syntax/tsx.vim new file mode 100644 index 00000000..05bfc9ea --- /dev/null +++ b/after/syntax/tsx.vim @@ -0,0 +1,87 @@ +if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'tsx') != -1 + finish +endif + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Vim syntax file +" +" Language: TSX (JavaScript) +" Maintainer: Ian Ker-Seymer <i.kerseymer@gmail.com> +" Depends: leafgarland/typescript-vim +" +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +if exists('b:current_syntax') + let s:current_syntax=b:current_syntax + unlet b:current_syntax +endif + +syn include @XMLSyntax syntax/xml.vim + +if exists('s:current_syntax') + let b:current_syntax=s:current_syntax +endif + +syn region embeddedTs + \ matchgroup=NONE + \ start=+{+ + \ end=+}+ + \ contains=@Spell,@typescriptAll,xmlEntity,tsxRegion + \ contained + +" Add embeddedTs to everything where xmlString is used to allow for +" both string highlighting and @typescriptAll highlighting +syn region xmlTag + \ matchgroup=xmlTag start=+<[^ /!?<>"']\@=+ + \ matchgroup=xmlTag end=+>+ + \ contained + \ contains=xmlError,xmlTagName,xmlAttrib,xmlEqual,xmlString,@xmlStartTagHook,embeddedTs + +syn region xmlProcessing + \ matchgroup=xmlProcessingDelim + \ start="<?" + \ end="?>" + \ contains=xmlAttrib,xmlEqual,xmlString,embeddedTs + + +if exists('g:xml_syntax_folding') + " DTD -- we use dtd.vim here + syn region xmlDocType matchgroup=xmlDocTypeDecl + \ start="<!DOCTYPE"he=s+2,rs=s+2 + \ end=">" + \ fold + \ contains=xmlDocTypeKeyword,xmlInlineDTD,xmlString,embeddedTs +else + syn region xmlDocType matchgroup=xmlDocTypeDecl + \ start="<!DOCTYPE"he=s+2,rs=s+2 + \ end=">" + \ contains=xmlDocTypeKeyword,xmlInlineDTD,xmlString,embeddedTs +endif + + +if exists('g:xml_syntax_folding') + syn region xmlTag + \ matchgroup=xmlTag start=+<[^ /!?<>"']\@=+ + \ matchgroup=xmlTag end=+>+ + \ contained + \ contains=xmlError,xmlTagName,xmlAttrib,xmlEqual,xmlString,@xmlStartTagHook,embeddedTs +else + syn region xmlTag + \ matchgroup=xmlTag start=+<[^ /!?<>"']\@=+ + \ matchgroup=xmlTag end=+>+ + \ contains=xmlError,xmlTagName,xmlAttrib,xmlEqual,xmlString,@xmlStartTagHook,embeddedTs +endif + + +syn region tsxRegion + \ contains=@Spell,@XMLSyntax,tsxRegion,@typescriptAll + \ start=+\%(<\|\w\)\@<!<\z([a-zA-Z][a-zA-Z0-9:\-.]*\)+ + \ skip=+<!--\_.\{-}-->+ + \ end=+</\z1\_\s\{-}>+ + \ end=+/>+ + \ keepend + \ extend + +hi def link embeddedTs NONE + +syn cluster @typescriptAll add=tsxRegion |