From 4a8ff506fd7673d53fe413546eb689351f479578 Mon Sep 17 00:00:00 2001 From: bounceme Date: Tue, 2 Aug 2016 15:10:04 -0700 Subject: [PATCH 1/2] for 585 #585 --- indent/javascript.vim | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index a23a4c4f..334cf84e 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -1,3 +1,4 @@ + " Vim indent file " Language: Javascript " Maintainer: vim-javascript community @@ -186,15 +187,16 @@ function GetJavascriptIndent() if line =~ s:line_pre . '[])}]' return indent(num) endif - let inb = num == 0 ? 1 : s:Onescope(num, s:StripLine(strpart(getline(num),0,b:js_cache[2] - 1)),1) + let pline = s:StripLine(getline(lnum)) + let inb = num == 0 ? 1 : (line !~ s:line_pre . ',' && pline !~ ',' . s:line_term) || + \ s:Onescope(num, s:StripLine(strpart(getline(num),0,b:js_cache[2] - 1)),1) let switch_offset = (!inb || num == 0) || expand("") !=# 'switch' ? 0 : &cino !~ ':' || !has('float') ? s:sw() : \ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (match(&cino,'.*:\zs[^,]*s') ? s:sw() : 1)) - let pline = s:StripLine(getline(lnum)) if ((line =~# g:javascript_opfirst || \ (pline =~# g:javascript_continuation && pline !~# s:expr_case && \ (pline !~ ':' . s:line_term || line !~# \ s:line_pre . '\%(d\%(o\|ebugger\)\|else\|f\%(or\|inally\)\|if\|let\|switch\|t\%(hrow\|ry\)\|w\%(hile\|ith\)\)\>'))) && - \ inb) || (s:Onescope(lnum,pline,0) && line !~ s:line_pre . '{') + \ inb) || (num < lnum && s:Onescope(lnum,pline,0) && line !~ s:line_pre . '{') return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset elseif num > 0 return indent(num) + s:sw() + switch_offset From bba5d92ef4d7243a8dbba6e5ead9056a5166bd1d Mon Sep 17 00:00:00 2001 From: bounceme Date: Tue, 2 Aug 2016 16:13:47 -0700 Subject: [PATCH 2/2] Update javascript.vim --- indent/javascript.vim | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 334cf84e..c47d7223 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -1,4 +1,3 @@ - " Vim indent file " Language: Javascript " Maintainer: vim-javascript community @@ -187,16 +186,17 @@ function GetJavascriptIndent() if line =~ s:line_pre . '[])}]' return indent(num) endif + let pline = s:StripLine(getline(lnum)) - let inb = num == 0 ? 1 : (line !~ s:line_pre . ',' && pline !~ ',' . s:line_term) || - \ s:Onescope(num, s:StripLine(strpart(getline(num),0,b:js_cache[2] - 1)),1) + let inb = num == 0 ? 1 : s:Onescope(num, s:StripLine(strpart(getline(num),0,b:js_cache[2] - 1)),1) || + \ (num < lnum && (line !~ s:line_pre . ',' && pline !~ ',' . s:line_term)) let switch_offset = (!inb || num == 0) || expand("") !=# 'switch' ? 0 : &cino !~ ':' || !has('float') ? s:sw() : \ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (match(&cino,'.*:\zs[^,]*s') ? s:sw() : 1)) - if ((line =~# g:javascript_opfirst || - \ (pline =~# g:javascript_continuation && pline !~# s:expr_case && - \ (pline !~ ':' . s:line_term || line !~# - \ s:line_pre . '\%(d\%(o\|ebugger\)\|else\|f\%(or\|inally\)\|if\|let\|switch\|t\%(hrow\|ry\)\|w\%(hile\|ith\)\)\>'))) && - \ inb) || (num < lnum && s:Onescope(lnum,pline,0) && line !~ s:line_pre . '{') + + if (inb && (line =~# g:javascript_opfirst || + \ (pline =~# g:javascript_continuation && pline !~# s:expr_case && (pline !~ ':' . s:line_term || line !~# + \ s:line_pre . '\%(d\%(o\|ebugger\)\|else\|f\%(or\|inally\)\|if\|let\|switch\|t\%(hrow\|ry\)\|w\%(hile\|ith\)\)\>')))) || + \ (num < lnum && s:Onescope(lnum,pline,0) && line !~ s:line_pre . '{') return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset elseif num > 0 return indent(num) + s:sw() + switch_offset