1
1
" Vim syntax file
2
2
" Language: JavaScript
3
3
" 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
6
6
" (This file is based on their hard work)
7
7
8
8
if ! exists (" main_syntax" )
@@ -25,7 +25,7 @@ syntax sync fromstart
25
25
syntax match shebang " ^#!.*"
26
26
hi link shebang Comment
27
27
28
- " Statement Keywords
28
+ " Statement Keywords
29
29
syntax keyword javaScriptSource import export
30
30
syntax keyword javaScriptIdentifier arguments this let const var void yield
31
31
syntax keyword javaScriptOperator delete new instanceof typeof
@@ -43,28 +43,28 @@ syntax keyword javaScriptGlobalObjects Array Boolean Date Function Math Number
43
43
syntax keyword javaScriptExceptions try catch throw finally Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
44
44
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
45
45
46
- " Comments
46
+ " Comments
47
47
syntax keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
48
48
syntax match javaScriptLineComment " \/\/ .*" contains =@Spell,javaScriptCommentTodo
49
49
syntax match javaScriptCommentSkip " ^[ \t ]*\*\( $\| [ \t ]\+\) "
50
50
syntax region javaScriptComment start =" /\* " end =" \* /" contains =@Spell,javaScriptCommentTodo
51
51
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
+
58
58
syntax match javaScriptSpecialCharacter " '\\ .'"
59
59
syntax match javaScriptNumber " -\=\<\d\+ L\=\>\| 0[xX][0-9a-fA-F]\+\> "
60
60
syntax region javaScriptRegexpString start =+ /[^/*]+ me =e - 1 skip =+ \\\\\|\\ /+ end =+ /[gim]\{ 0,2\}\s *$+ end =+ /[gim]\{ 0,2\}\s *[;.,)\] }]+ me =e - 1 contains =@htmlPreproc oneline
61
61
syntax match javaScriptFloat / \< -\=\% (\d\+\.\d\+\|\d\+\.\|\.\d\+\)\% ([eE][+-]\=\d\+\)\=\> /
62
62
syntax match javascriptDollar " \$ "
63
63
64
- " No need?
64
+ " No need?
65
65
" syntax keyword javaScriptGlobal self top parent
66
66
67
- " Code blocks"
67
+ " Code blocks
68
68
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
69
69
70
70
if main_syntax == " javascript"
@@ -73,7 +73,7 @@ if main_syntax == "javascript"
73
73
" syntax sync match javaScriptHighlight grouphere javaScriptBlock /{/
74
74
endif
75
75
76
- " Function and arguments highlighting
76
+ " Function and arguments highlighting
77
77
syntax keyword javaScriptFuncKeyword function contained
78
78
syntax region javaScriptFuncExp start =/ \w\+\s\= =\s\= function\> / end =" \( [^)]*\) " contains =javaScriptFuncEq,javaScriptFuncKeyword,javaScriptFuncArg keepend
79
79
syntax match javaScriptFuncArg " \( ([^()]*)\) " contains =javaScriptParens,javaScriptFuncComma contained
@@ -98,7 +98,7 @@ function! JavaScriptFold()
98
98
syntax region foldBraces start =/ {/ end =/ }/ transparent fold keepend extend
99
99
endfunction
100
100
101
- " Highlight links
101
+ " Highlight links
102
102
" Define the default highlighting.
103
103
" For version 5.7 and earlier: only when not done already
104
104
" 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")
125
125
HiLink javaScriptDocParam Function
126
126
127
127
HiLink javaScriptString String
128
- HiLink javascriptTemplateInternal Label
129
128
HiLink javascriptTemplate String
129
+ HiLink javascriptTemplateSubstitution Label
130
130
HiLink javaScriptRegexpString String
131
+ HiLink javascriptTemplateSB javascriptTemplateSubstitution
131
132
132
133
HiLink javaScriptNumber Number
133
134
HiLink javaScriptFloat Number
0 commit comments