Skip to content

Commit f07cc67

Browse files
committed
Merge pull request pangloss#70 from noprompt/noprompt-regexp
Add new regular expression syntax groups
2 parents 0329a24 + df6bed9 commit f07cc67

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

syntax/javascript.vim

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,18 @@ endif "" JSDoc end
7373
syntax case match
7474

7575
"" Syntax in the JavaScript code
76-
syntax match jsSpecial "\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\."
76+
syntax match jsSpecial "\v\\%(0|\\x\x\{2\}\|\\u\x\{4\}\|\c[A-Z]|.)"
7777
syntax region jsStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=jsSpecial,@htmlPreproc
7878
syntax region jsStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=jsSpecial,@htmlPreproc
7979
syntax region jsRegexpCharClass start=+\[+ end=+\]+ contained
80-
syntax region jsRegexpString start=+\(\(\(return\|case\)\s\+\)\@<=\|\(\([)\]"']\|\d\|\w\)\s*\)\@<!\)/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gimy]\{,4}+ contains=jsSpecial,jsRegexpCharClass,@htmlPreproc oneline
80+
syntax match jsRegexpBoundary "\v%(\<@![\^$]|\\[bB])" contained
81+
syntax match jsRegexpBackRef "\v\\[1-9][0-9]*" contained
82+
syntax match jsRegexpQuantifier "\v\\@<!%([?*+]|\{\d+%(,|,\d+)?})\??" contained
83+
syntax match jsRegexpOr "\v\<@!\|" contained
84+
syntax match jsRegexpMod "\v\(@<=\?[:=!>]" contained
85+
syntax cluster jsRegexpSpecial contains=jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
86+
syntax region jsRegexpGroup start="\\\@<!(" matchgroup=jsRegexGroup end="\\\@<!)" contained contains=jsRegexpCharClass,@jsRegexpSpecial
87+
syntax region jsRegexpString start=+\(\(\(return\|case\)\s\+\)\@<=\|\(\([)\]"']\|\d\|\w\)\s*\)\@<!\)/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gimy]\{,4}+ contains=jsSpecial,jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial,@htmlPreproc oneline
8188
syntax match jsNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/
8289
syntax match jsFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/
8390
syntax match jsLabel /\<[a-zA-Z_$][0-9a-zA-Z_$\-]*\(\s*:\)\@=/
@@ -229,6 +236,12 @@ if version >= 508 || !exists("did_javascript_syn_inits")
229236
HiLink jsStringD String
230237
HiLink jsTernaryIfOperator Conditional
231238
HiLink jsRegexpString String
239+
HiLink jsRegexpBoundary SpecialChar
240+
HiLink jsRegexpQuantifier SpecialChar
241+
HiLink jsRegexpOr Conditional
242+
HiLink jsRegexpMod SpecialChar
243+
HiLink jsRegexpBackRef SpecialChar
244+
HiLink jsRegexpGroup jsRegexpString
232245
HiLink jsRegexpCharClass Character
233246
HiLink jsCharacter Character
234247
HiLink jsPrototype Type

0 commit comments

Comments
 (0)