summaryrefslogtreecommitdiffstats
path: root/after/syntax
diff options
context:
space:
mode:
Diffstat (limited to 'after/syntax')
-rw-r--r--after/syntax/javascriptreact.vim5
-rw-r--r--after/syntax/tsx.vim28
-rw-r--r--after/syntax/typescript.vim6
-rw-r--r--after/syntax/typescriptreact.vim5
4 files changed, 44 insertions, 0 deletions
diff --git a/after/syntax/javascriptreact.vim b/after/syntax/javascriptreact.vim
new file mode 100644
index 00000000..e423f0ed
--- /dev/null
+++ b/after/syntax/javascriptreact.vim
@@ -0,0 +1,5 @@
+if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
+
+source <sfile>:h/javascript.vim
+
+endif
diff --git a/after/syntax/tsx.vim b/after/syntax/tsx.vim
new file mode 100644
index 00000000..863da121
--- /dev/null
+++ b/after/syntax/tsx.vim
@@ -0,0 +1,28 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
+
+" GraphQL Support
+if exists('b:current_syntax')
+ let s:current_syntax = b:current_syntax
+ unlet b:current_syntax
+endif
+syn include @GraphQLSyntax syntax/graphql.vim
+if exists('s:current_syntax')
+ let b:current_syntax = s:current_syntax
+endif
+
+let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
+
+exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
+exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
+
+" Support expression interpolation ((${...})) inside template strings.
+syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=typescriptTemplateSubstitution containedin=graphqlFold keepend
+
+hi def link graphqlTemplateString typescriptTemplate
+hi def link graphqlTemplateExpression typescriptTemplateSubstitution
+
+syn cluster typescriptExpression add=graphqlTaggedTemplate
+syn cluster graphqlTaggedTemplate add=graphqlTemplateString
+
+
+endif
diff --git a/after/syntax/typescript.vim b/after/syntax/typescript.vim
index 9f52ed21..8b00fb45 100644
--- a/after/syntax/typescript.vim
+++ b/after/syntax/typescript.vim
@@ -30,6 +30,12 @@ endif
" refine the typescript line comment
syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend
+for syntax_name in ['tsxRegion', 'tsxFragment']
+ if hlexists(syntax_name)
+ exe 'syntax clear ' . syntax_name
+ endif
+endfor
+
if !hlexists('typescriptTypeCast')
" add a typescriptBlock group for typescript
syntax region typescriptBlock
diff --git a/after/syntax/typescriptreact.vim b/after/syntax/typescriptreact.vim
new file mode 100644
index 00000000..931839b1
--- /dev/null
+++ b/after/syntax/typescriptreact.vim
@@ -0,0 +1,5 @@
+if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
+
+source <sfile>:h/typescript.vim
+
+endif