Skip to content

Commit abe6b89

Browse files
committed
add template substitution
1 parent 735b9f7 commit abe6b89

File tree

3 files changed

+18
-17
lines changed

3 files changed

+18
-17
lines changed

es6.sample.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default class SkinnedMesh extends THREE.Mesh {
1212
const $top = camera.map(c => c + 1);
1313

1414
function *name (arg) {
15-
console.log(`Got args ${...arg}.`);
15+
console.log(`${args.foo ? `first-${args.foo}` : null}`);
1616
yield arg;
1717
}
1818

ftdetect/es6.vim

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
" set all `es6` extensions to javascript
2-
au BufRead,BufNewFile *.{es6,es6.js} set filetype=javascript
2+
au BufRead,BufNewFile *.{es6,es6.js} set filetype=javascript

syntax/javascript.vim

+16-15
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
" Vim syntax file
22
" Language: JavaScript
33
" Maintainer: Ruslan Ismagilov <https://github.com/isRuslan>
4-
" Version: 1.0.2
5-
" Credits: Kao Wei-Ko(othree), Zhao Yi, Claudio Fleiner, Scott Shattuck
4+
" Version: 2.0.3
5+
" Credits: Kao Wei-Ko(othree), Zhao Yi, Claudio Fleiner, Scott Shattuck
66
" (This file is based on their hard work)
77

88
if !exists("main_syntax")
@@ -25,7 +25,7 @@ syntax sync fromstart
2525
syntax match shebang "^#!.*"
2626
hi link shebang Comment
2727

28-
" Statement Keywords
28+
" Statement Keywords
2929
syntax keyword javaScriptSource import export
3030
syntax keyword javaScriptIdentifier arguments this let const var void yield
3131
syntax keyword javaScriptOperator delete new instanceof typeof
@@ -43,28 +43,28 @@ syntax keyword javaScriptGlobalObjects Array Boolean Date Function Math Number
4343
syntax keyword javaScriptExceptions try catch throw finally Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
4444
syntax keyword javaScriptReserved abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws goto private transient debugger implements protected volatile double import public
4545

46-
" Comments
46+
" Comments
4747
syntax keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
4848
syntax match javaScriptLineComment "\/\/.*" contains=@Spell,javaScriptCommentTodo
4949
syntax match javaScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
5050
syntax region javaScriptComment start="/\*" end="\*/" contains=@Spell,javaScriptCommentTodo
5151

52-
" Strings, Numbers and Regex Highlight
53-
syntax match javaScriptSpecial "\\\d\d\d\|\\."
54-
syntax region javaScriptString start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc
55-
syntax region javaScriptString start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc
56-
syntax region javascriptTemplateInternal start=/\${/ end=/}/ contains=javaScriptString
57-
syntax region javascriptTemplate start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/ contains=javaScriptSpecial,javascriptTemplateInternal nextgroup=@javascriptComments,@javascriptSymbols
52+
" Strings, Numbers and Regex Highlight
53+
syntax match javaScriptSpecial "\\\d\d\d\|\\."
54+
syntax region javaScriptString start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc
55+
syntax region javascriptTemplate start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/ contains=javascriptTemplateSubstitution nextgroup=@javascriptComments,@javascriptSymbols skipwhite skipempty
56+
syntax region javascriptTemplateSubstitution matchgroup=javascriptTemplateSB contained start=/\${/ end=/}/ contains=@javascriptExpression
57+
5858
syntax match javaScriptSpecialCharacter "'\\.'"
5959
syntax match javaScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
6060
syntax region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gim]\{0,2\}\s*$+ end=+/[gim]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline
6161
syntax match javaScriptFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/
6262
syntax match javascriptDollar "\$"
6363

64-
" No need?
64+
" No need?
6565
" syntax keyword javaScriptGlobal self top parent
6666

67-
" Code blocks"
67+
" Code blocks
6868
syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptString,javaScriptRegexpString,javascriptTemplate,javaScriptNumber,javaScriptFloat,javascriptDollar,javaScriptLabel,javaScriptSource,javaScriptWebAPI,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFuncKeyword,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptMessage,javaScriptIdentifier,javaScriptExceptions,javaScriptReserved,javaScriptDeprecated,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptBrowserObjects,javaScriptDOMObjects,javaScriptAjaxObjects,javaScriptPropietaryObjects,javaScriptDOMMethods,javaScriptHtmlElemProperties,javaScriptDOMProperties,javaScriptEventListenerKeywords,javaScriptEventListenerMethods,javaScriptAjaxProperties,javaScriptAjaxMethods,javaScriptFuncArg
6969

7070
if main_syntax == "javascript"
@@ -73,7 +73,7 @@ if main_syntax == "javascript"
7373
" syntax sync match javaScriptHighlight grouphere javaScriptBlock /{/
7474
endif
7575

76-
" Function and arguments highlighting
76+
" Function and arguments highlighting
7777
syntax keyword javaScriptFuncKeyword function contained
7878
syntax region javaScriptFuncExp start=/\w\+\s\==\s\=function\>/ end="\([^)]*\)" contains=javaScriptFuncEq,javaScriptFuncKeyword,javaScriptFuncArg keepend
7979
syntax match javaScriptFuncArg "\(([^()]*)\)" contains=javaScriptParens,javaScriptFuncComma contained
@@ -98,7 +98,7 @@ function! JavaScriptFold()
9898
syntax region foldBraces start=/{/ end=/}/ transparent fold keepend extend
9999
endfunction
100100

101-
" Highlight links
101+
" Highlight links
102102
" Define the default highlighting.
103103
" For version 5.7 and earlier: only when not done already
104104
" For version 5.8 and later: only when an item doesn't have highlighting yet
@@ -125,9 +125,10 @@ if version >= 508 || !exists("did_javascript_syn_inits")
125125
HiLink javaScriptDocParam Function
126126

127127
HiLink javaScriptString String
128-
HiLink javascriptTemplateInternal Label
129128
HiLink javascriptTemplate String
129+
HiLink javascriptTemplateSubstitution Label
130130
HiLink javaScriptRegexpString String
131+
HiLink javascriptTemplateSB javascriptTemplateSubstitution
131132

132133
HiLink javaScriptNumber Number
133134
HiLink javaScriptFloat Number

0 commit comments

Comments
 (0)