summaryrefslogtreecommitdiffstats
path: root/after/syntax/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'after/syntax/javascript')
-rw-r--r--after/syntax/javascript/sql.vim26
1 files changed, 26 insertions, 0 deletions
diff --git a/after/syntax/javascript/sql.vim b/after/syntax/javascript/sql.vim
new file mode 100644
index 00000000..8b45203c
--- /dev/null
+++ b/after/syntax/javascript/sql.vim
@@ -0,0 +1,26 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript-sql') == -1
+
+" Vim plugin
+" Language: JavaScript
+" Maintainer: Ian Langworth <ian@langworth.com>
+
+if exists('b:current_syntax')
+ let s:current_syntax = b:current_syntax
+ unlet b:current_syntax
+endif
+
+exec 'syntax include @SQLSyntax syntax/' . g:javascript_sql_dialect . '.vim'
+if exists('s:current_syntax')
+ let b:current_syntax = s:current_syntax
+endif
+
+syntax region sqlTemplateString start=+`+ skip=+\\\(`\|$\)+ end=+`+ contains=@SQLSyntax,jsTemplateExpression,jsSpecial extend
+exec 'syntax match sqlTaggedTemplate +\%(SQL\)\%(`\)\@=+ nextgroup=sqlTemplateString'
+
+hi def link sqlTemplateString jsTemplateString
+hi def link sqlTaggedTemplate jsTaggedTemplate
+
+syn cluster jsExpression add=sqlTaggedTemplate
+syn cluster sqlTaggedTemplate add=sqlTemplateString
+
+endif