@@ -331,11 +331,14 @@ function s:IsContOne(i,num,cont)
331331 return b_l
332332endfunction
333333
334+ function s: Class ()
335+ return (s: Token () == # ' class' || s: PreviousToken () = ~# ' ^class$\|^extends$' ) &&
336+ \ s: PreviousToken () != ' .'
337+ endfunction
338+
334339function s: IsSwitch ()
335340 return s: PreviousToken () !~ ' [.*]' &&
336- \ (! s: GetPair (' {' ,' }' ,' cbW' ,s: skip_expr ,100 ) || s: IsBlock () &&
337- \ (s: Token () !~ ' ^\K\k*$' || expand (' <cword>' ) !=# ' class' &&
338- \ s: PreviousToken () !~# ' ^class$\|^extends$' || s: PreviousToken () == ' .' ))
341+ \ (! s: GetPair (' {' ,' }' ,' cbW' ,s: skip_expr ,100 ) || s: IsBlock () && ! s: Class ())
339342endfunction
340343
341344" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
@@ -443,13 +446,18 @@ function GetJavascriptIndent()
443446 endif
444447 if idx == -1 && pline[-1 :] !~ ' [{;]'
445448 let sol = matchstr (l: line ,s: opfirst )
446- if sol = ~# ' ^\%(in\%(stanceof\)\=\|\*\)$'
447- call cursor (l: lnum , len (pline))
448- if pline[-1 :] == ' }' && s: GetPair (' {' ,' }' ,' bW' ,s: skip_expr ,200 ) && s: IsBlock ()
449+ if sol is ' ' || sol == ' /' && s: SynAt (v: lnum ,
450+ \ 1 + len (getline (v: lnum )) - len (l: line )) = ~? ' regex'
451+ if s: Continues (l: lnum ,pline)
452+ let is_op = s: sw ()
453+ endif
454+ elseif b: js_cache [2 ] && sol = ~# ' ^\%(in\%(stanceof\)\=\|\*\)$'
455+ call call (' cursor' ,b: js_cache [1 :])
456+ if s: PreviousToken () = ~ ' \k' && s: Class ()
449457 return num_ind + s: sw ()
450458 endif
451459 let is_op = s: sw ()
452- elseif sol isnot ' ' || s: Continues ( l: lnum ,pline)
460+ else
453461 let is_op = s: sw ()
454462 endif
455463 let b_l = s: Nat (s: IsContOne (l: lnum ,b: js_cache [1 ],is_op) -
0 commit comments