Skip to content

Commit c737dd7

Browse files
authored
shorthand method: refactor (pangloss#1030)
1 parent d2ccd30 commit c737dd7

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

indent/javascript.vim

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -331,11 +331,14 @@ function s:IsContOne(i,num,cont)
331331
return b_l
332332
endfunction
333333

334+
function s:Class()
335+
return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
336+
\ s:PreviousToken() != '.'
337+
endfunction
338+
334339
function 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())
339342
endfunction
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

Comments
 (0)