From 21c9e9d2750a8199294ec93aedea1c9cdceaf527 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 11:54:58 -0700 Subject: [PATCH 01/19] multi-braceless statements very unrefined so far This changes: ``` if (1) for (;;) i += l ``` to: ``` if (1) for (;;) i += l ``` --- indent/javascript.vim | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 1591dac0..ae05b384 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -79,11 +79,11 @@ let g:javascript_opfirst = s:line_pre . g:javascript_opfirst let g:javascript_continuation .= s:line_term function s:OneScope(lnum,text) - return a:text =~# '\%(\\)' . s:line_term ? 'no b' : + return a:text =~# '\%(\\)' . s:line_term || \ cursor(a:lnum, match(' ' . a:text, ')' . s:line_term)) > -1 && - \ s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && search('\C\l\+\_s*\%#','bW') && + \ s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && search('\C\<\%(for\|each\|if\|let\|w\%(hile\|ith\)\)\>\_s*\%#','bW') && \ (expand('') !=# 'while' || s:GetPair('\C\', '\C\','nbW',s:skip_expr,100) <= 0) && - \ (expand('') !=# 'each' || search('\C\') : '' + \ (expand('') !=# 'each' || search('\C\ 0 ? a:num : 1 + let ind = indent(l:i) + (!a:cont ? s:sw() : 0) + let bL = 0 + while l:i >= l:num && ind >= indent(l:num) + s:sw() + if indent(l:i) < ind + if s:OneScope(l:i,getline(l:i)) + let bL += 1 + let l:cont = 0 + let l:i = line('.') + if !search(s:line_pre . '\%#','bnW') + break + endif + elseif !l:cont + break + endif + let ind = indent(l:i) + endif + let l:i = s:PrevCodeLine(l:i - 1) + endwhile + return bL * s:sw() +endfunction + " Check if line 'lnum' has a balanced amount of parentheses. function s:Balanced(lnum) let [open_0,open_2,open_4] = [0,0,0] @@ -189,12 +214,13 @@ function GetJavascriptIndent() " most significant, find the indent amount let isOp = l:line =~# g:javascript_opfirst || pline =~# g:javascript_continuation - if isOp && (num <= 0 || cursor(b:js_cache[1],b:js_cache[2]) || s:IsBlock()) || - \ s:OneScope(l:lnum,pline) =~# '\<\%(for\|each\|if\|let\|no\sb\|w\%(hile\|ith\)\)\>' && - \ l:line !~ s:line_pre . '{' - return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset + let bL = s:iscontOne(l:lnum,num,isOp) + if isOp && (num <= 0 || cursor(b:js_cache[1],b:js_cache[2]) || s:IsBlock()) + return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset + bL elseif num > 0 - return indent(num) + s:sw() + switch_offset + return indent(num) + s:sw() + switch_offset + bL + else + return bL endif endfunction From 672b695a4f47938393435bab5a46772fb717d5d8 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 13:17:33 -0700 Subject: [PATCH 02/19] Update javascript.vim --- indent/javascript.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index ae05b384..e97ab8d1 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -110,9 +110,10 @@ function s:iscontOne(i,num,cont) let l:i = a:i let l:cont = a:cont let l:num = a:num > 0 ? a:num : 1 - let ind = indent(l:i) + (!a:cont ? s:sw() : 0) + let pind = indent(l:num) < 0 ? -s:sw() : indent(l:num) + let ind = indent(l:i) + (!l:cont ? s:sw() : 0) let bL = 0 - while l:i >= l:num && ind >= indent(l:num) + s:sw() + while l:i >= l:num && (!l:cont || ind > pind + s:sw()) if indent(l:i) < ind if s:OneScope(l:i,getline(l:i)) let bL += 1 From ab42b0d98f87bd6da40e9cc0d12d2eaa3b50aaf1 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 13:18:54 -0700 Subject: [PATCH 03/19] Update javascript.vim --- indent/javascript.vim | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index e97ab8d1..fbd6d49f 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -220,10 +220,8 @@ function GetJavascriptIndent() return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset + bL elseif num > 0 return indent(num) + s:sw() + switch_offset + bL - else - return bL endif - + return bL endfunction From 34925d201974404606e01c4129f0143d441cbc87 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 13:34:11 -0700 Subject: [PATCH 04/19] Update javascript.vim --- indent/javascript.vim | 3 --- 1 file changed, 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index fbd6d49f..ee760e06 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -119,9 +119,6 @@ function s:iscontOne(i,num,cont) let bL += 1 let l:cont = 0 let l:i = line('.') - if !search(s:line_pre . '\%#','bnW') - break - endif elseif !l:cont break endif From 88016303abfda92a2efbef9a57a3d98d92d1811f Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 17:19:45 -0700 Subject: [PATCH 05/19] Update javascript.vim --- indent/javascript.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index ee760e06..f01bd48d 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -81,9 +81,9 @@ let g:javascript_continuation .= s:line_term function s:OneScope(lnum,text) return a:text =~# '\%(\\)' . s:line_term || \ cursor(a:lnum, match(' ' . a:text, ')' . s:line_term)) > -1 && - \ s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && search('\C\<\%(for\|each\|if\|let\|w\%(hile\|ith\)\)\>\_s*\%#','bW') && - \ (expand('') !=# 'while' || s:GetPair('\C\', '\C\','nbW',s:skip_expr,100) <= 0) && - \ (expand('') !=# 'each' || search('\C\ 0 && + \ search('\C\<\%(for\%(\_s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)\>\_s*\%#','bW') && + \ (expand('') !=# 'while' || s:GetPair('\C\', '\C\','nbW',s:skip_expr,100) <= 0) endfunction " https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader From b64f20a7bae5888428bf34c02ff7bc304e360753 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 17:25:05 -0700 Subject: [PATCH 06/19] Update javascript.vim --- indent/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index f01bd48d..9f7b8af4 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -82,7 +82,7 @@ function s:OneScope(lnum,text) return a:text =~# '\%(\\)' . s:line_term || \ cursor(a:lnum, match(' ' . a:text, ')' . s:line_term)) > -1 && \ s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && - \ search('\C\<\%(for\%(\_s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)\>\_s*\%#','bW') && + \ search('\C\<\%(for\%(\_s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)\_s*\%#','bW') && \ (expand('') !=# 'while' || s:GetPair('\C\', '\C\','nbW',s:skip_expr,100) <= 0) endfunction From a73e06f5ba3fc4b146ed6846e72d8960ffded954 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 18:53:51 -0700 Subject: [PATCH 07/19] Update javascript.vim --- indent/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 9f7b8af4..4296679b 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -79,7 +79,7 @@ let g:javascript_opfirst = s:line_pre . g:javascript_opfirst let g:javascript_continuation .= s:line_term function s:OneScope(lnum,text) - return a:text =~# '\%(\\)' . s:line_term || + return cursor(a:lnum, match(' ' . a:text, '\%(\\)' . s:line_term)) > -1 || \ cursor(a:lnum, match(' ' . a:text, ')' . s:line_term)) > -1 && \ s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && \ search('\C\<\%(for\%(\_s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)\_s*\%#','bW') && From 0f31cbd4a93674d1282bd4fbbecfd6f1aa7a3ab3 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 21:04:09 -0700 Subject: [PATCH 08/19] Update javascript.vim --- indent/javascript.vim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/indent/javascript.vim b/indent/javascript.vim index 4296679b..b5500bc2 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -202,6 +202,10 @@ function GetJavascriptIndent() if l:line =~ s:line_pre . '[])}]' return indent(num) endif + call cursor(v:lnum,1) + if l:line =~# s:line_pre . 'while\>' && s:GetPair('\C\', '\C\','bW',s:skip_expr,100) > 0 + return indent(line('.')) + endif let pline = substitute(substitute(getline(l:lnum),s:expr_case,'\=repeat(" ",strlen(submatch(0)))',''), '\%(:\@ Date: Fri, 16 Sep 2016 21:53:02 -0700 Subject: [PATCH 09/19] Update javascript.vim --- indent/javascript.vim | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index b5500bc2..01029bd5 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -82,8 +82,7 @@ function s:OneScope(lnum,text) return cursor(a:lnum, match(' ' . a:text, '\%(\\)' . s:line_term)) > -1 || \ cursor(a:lnum, match(' ' . a:text, ')' . s:line_term)) > -1 && \ s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && - \ search('\C\<\%(for\%(\_s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)\_s*\%#','bW') && - \ (expand('') !=# 'while' || s:GetPair('\C\', '\C\','nbW',s:skip_expr,100) <= 0) + \ search('\C\<\%(for\%(\_s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)\_s*\%#','bW') endfunction " https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader @@ -116,6 +115,9 @@ function s:iscontOne(i,num,cont) while l:i >= l:num && (!l:cont || ind > pind + s:sw()) if indent(l:i) < ind if s:OneScope(l:i,getline(l:i)) + if expand('') ==# 'while' && s:GetPair('\C\', '\C\','bW',s:skip_expr,100) + return 0 + endif let bL += 1 let l:cont = 0 let l:i = line('.') @@ -203,7 +205,7 @@ function GetJavascriptIndent() return indent(num) endif call cursor(v:lnum,1) - if l:line =~# s:line_pre . 'while\>' && s:GetPair('\C\', '\C\','bW',s:skip_expr,100) > 0 + if l:line =~# s:line_pre . 'while\>' && s:GetPair(s:line_pre . '\C\', '\C\','bW',s:skip_expr,100) > 0 return indent(line('.')) endif From ae06a40c9bc9e8ad13fc65743476727ffa90c19a Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 22:50:53 -0700 Subject: [PATCH 10/19] Update javascript.vim --- indent/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 01029bd5..f925f1b6 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -109,7 +109,7 @@ function s:iscontOne(i,num,cont) let l:i = a:i let l:cont = a:cont let l:num = a:num > 0 ? a:num : 1 - let pind = indent(l:num) < 0 ? -s:sw() : indent(l:num) + let pind = l:num <= 0 ? -s:sw() : indent(l:num) let ind = indent(l:i) + (!l:cont ? s:sw() : 0) let bL = 0 while l:i >= l:num && (!l:cont || ind > pind + s:sw()) From 8b2643b3d5a26c5e47f4f67b2dc53a67fb23ff80 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Fri, 16 Sep 2016 22:55:24 -0700 Subject: [PATCH 11/19] Update javascript.vim --- indent/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index f925f1b6..6216513f 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -109,7 +109,7 @@ function s:iscontOne(i,num,cont) let l:i = a:i let l:cont = a:cont let l:num = a:num > 0 ? a:num : 1 - let pind = l:num <= 0 ? -s:sw() : indent(l:num) + let pind = a:num > 0 ? indent(l:num) : -s:sw() let ind = indent(l:i) + (!l:cont ? s:sw() : 0) let bL = 0 while l:i >= l:num && (!l:cont || ind > pind + s:sw()) From eb297444fd552f874e74f038c58dec75e0a237e7 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Sat, 17 Sep 2016 12:15:22 -0700 Subject: [PATCH 12/19] Update javascript.vim --- indent/javascript.vim | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 6216513f..a5ffc8fd 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -69,13 +69,12 @@ let s:line_term = '\s*\%(\%(\/\%(\%(\*.\{-}\*\/\)\|\%(\*\+\)\)\)\s*\)\=$' " configurable regexes that define continuation lines, not including (, {, or [. if !exists('g:javascript_opfirst') - let g:javascript_opfirst = '\%([<>,?^%|*&]\|\/[^/*]\|\([-.:+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)' + let g:javascript_opfirst = '^\%([<>,?^%|*&]\|\/[^/*]\|\([-.:+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)' endif if !exists('g:javascript_continuation') let g:javascript_continuation = '\%([<=,.?/*^%|&:]\|+\@\|\= l:num && (!l:cont || ind > pind + s:sw()) if indent(l:i) < ind if s:OneScope(l:i,getline(l:i)) - if expand('') ==# 'while' && s:GetPair('\C\', '\C\','bW',s:skip_expr,100) + if expand('') ==# 'while' && searchpair(s:line_pre . '\C\','','\C\','bW',s:skip_expr,l:num,100) return 0 endif let bL += 1 @@ -201,11 +200,12 @@ function GetJavascriptIndent() let b:js_cache = [v:lnum,num,line('.') == v:lnum ? b:js_cache[2] : col('.')] - if l:line =~ s:line_pre . '[])}]' + let l:line = substitute(l:line,s:line_pre,'','') + if l:line =~ '^[])}]' return indent(num) endif call cursor(v:lnum,1) - if l:line =~# s:line_pre . 'while\>' && s:GetPair(s:line_pre . '\C\', '\C\','bW',s:skip_expr,100) > 0 + if l:line =~# '^while\>' && searchpair(s:line_pre . '\C\','','\C\','bW',s:skip_expr,num,100) > 0 return indent(line('.')) endif @@ -219,6 +219,7 @@ function GetJavascriptIndent() " most significant, find the indent amount let isOp = l:line =~# g:javascript_opfirst || pline =~# g:javascript_continuation let bL = s:iscontOne(l:lnum,num,isOp) + let bL = bL ? bL - (l:line =~ '^{') * s:sw() : bL if isOp && (num <= 0 || cursor(b:js_cache[1],b:js_cache[2]) || s:IsBlock()) return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset + bL elseif num > 0 From a07f76e3027017ad71b46b1a592e5be995126834 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Sat, 17 Sep 2016 12:28:28 -0700 Subject: [PATCH 13/19] Update javascript.vim --- indent/javascript.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index a5ffc8fd..20385923 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -69,12 +69,13 @@ let s:line_term = '\s*\%(\%(\/\%(\%(\*.\{-}\*\/\)\|\%(\*\+\)\)\)\s*\)\=$' " configurable regexes that define continuation lines, not including (, {, or [. if !exists('g:javascript_opfirst') - let g:javascript_opfirst = '^\%([<>,?^%|*&]\|\/[^/*]\|\([-.:+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)' + let g:javascript_opfirst = '\%([<>,?^%|*&]\|\/[^/*]\|\([-.:+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)' endif if !exists('g:javascript_continuation') let g:javascript_continuation = '\%([<=,.?/*^%|&:]\|+\@\|\ Date: Sat, 17 Sep 2016 14:56:18 -0700 Subject: [PATCH 14/19] Update javascript.vim --- indent/javascript.vim | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 20385923..e16a32ac 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -106,9 +106,7 @@ function s:PrevCodeLine(lnum) endfunction function s:iscontOne(i,num,cont) - let l:i = a:i - let l:cont = a:cont - let l:num = a:num > 0 ? a:num : 1 + let [l:i, l:cont, l:num] = [a:i, a:cont, a:num > 0 ? a:num : 1] let pind = a:num > 0 ? indent(l:num) : -s:sw() let ind = indent(l:i) + (!l:cont ? s:sw() : 0) let bL = 0 From 61b8587fe8e86679c2fead45f7416b21a6b5c8cd Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Sat, 17 Sep 2016 19:31:13 -0700 Subject: [PATCH 15/19] Update javascript.vim --- indent/javascript.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index e16a32ac..5501acf2 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -111,8 +111,8 @@ function s:iscontOne(i,num,cont) let ind = indent(l:i) + (!l:cont ? s:sw() : 0) let bL = 0 while l:i >= l:num && (!l:cont || ind > pind + s:sw()) - if indent(l:i) < ind - if s:OneScope(l:i,getline(l:i)) + if indent(l:i) < ind " first line always true for !cont, false for cont + if s:OneScope(l:i,substitute(getline(l:i),':\@') ==# 'while' && searchpair(s:line_pre . '\C\','','\C\','bW',s:skip_expr,l:num,100) return 0 endif @@ -208,7 +208,7 @@ function GetJavascriptIndent() return indent(line('.')) endif - let pline = substitute(substitute(getline(l:lnum),s:expr_case,'\=repeat(" ",strlen(submatch(0)))',''), '\%(:\@ 0 && search('\C\ Date: Sat, 17 Sep 2016 19:39:11 -0700 Subject: [PATCH 16/19] Update javascript.vim --- indent/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 5501acf2..c17f4840 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -113,7 +113,7 @@ function s:iscontOne(i,num,cont) while l:i >= l:num && (!l:cont || ind > pind + s:sw()) if indent(l:i) < ind " first line always true for !cont, false for cont if s:OneScope(l:i,substitute(getline(l:i),':\@') ==# 'while' && searchpair(s:line_pre . '\C\','','\C\','bW',s:skip_expr,l:num,100) + if expand('') ==# 'while' && searchpair(s:line_pre . '\C\','','\C\','bW',s:skip_expr,l:num,100) > 0 return 0 endif let bL += 1 From 099952a30d5b91702290d25836694ecf22a02103 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Sat, 17 Sep 2016 21:04:32 -0700 Subject: [PATCH 17/19] parens --- indent/javascript.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index c17f4840..b99a09b1 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -161,8 +161,8 @@ function GetJavascriptIndent() let syns = synIDattr(synID(v:lnum, 1, 0), 'name') " start with strings,comments,etc.{{{2 - if (l:line !~ '^[''"]' && syns =~? '\%(string\|template\)') || - \ (l:line !~ '^\s*[/*]' && syns =~? s:syng_comment) + if l:line !~ '^[''"]' && syns =~? '\%(string\|template\)' || + \ l:line !~ '^\s*[/*]' && syns =~? s:syng_comment return -1 endif if l:line !~ '^\%(\/\*\|\s*\/\/\)' && syns =~? s:syng_comment @@ -173,7 +173,7 @@ function GetJavascriptIndent() return 0 endif - if (l:line =~# s:expr_case) + if l:line =~# s:expr_case let cpo_switch = &cpo set cpo+=% let ind = cindent(v:lnum) From 20b3e807473f3f7261f5de65a8ccf66e28890eb0 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Sat, 17 Sep 2016 21:18:14 -0700 Subject: [PATCH 18/19] Update javascript.vim --- indent/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index b99a09b1..e0cd2501 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -111,7 +111,7 @@ function s:iscontOne(i,num,cont) let ind = indent(l:i) + (!l:cont ? s:sw() : 0) let bL = 0 while l:i >= l:num && (!l:cont || ind > pind + s:sw()) - if indent(l:i) < ind " first line always true for !cont, false for cont + if indent(l:i) < ind " first line always true for !cont, false for !!cont if s:OneScope(l:i,substitute(getline(l:i),':\@') ==# 'while' && searchpair(s:line_pre . '\C\','','\C\','bW',s:skip_expr,l:num,100) > 0 return 0 From c5a091bcd7d49d7178e69160d61af83a815aa5d6 Mon Sep 17 00:00:00 2001 From: Chris Paul Date: Sat, 17 Sep 2016 22:00:03 -0700 Subject: [PATCH 19/19] Update javascript.vim --- indent/javascript.vim | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index e0cd2501..b890a43a 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -85,26 +85,6 @@ function s:OneScope(lnum,text) \ search('\C\<\%(for\%(\_s\+each\)\=\|if\|let\|w\%(hile\|ith\)\)\_s*\%#','bW') endfunction -" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader -function s:IsBlock() - return getline(line('.'))[col('.')-1] == '{' && !search( - \ '\C\%(\\|\*\@ 0 ? a:num : 1] let pind = a:num > 0 ? indent(l:num) : -s:sw() @@ -129,6 +109,26 @@ function s:iscontOne(i,num,cont) return bL * s:sw() endfunction +" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader +function s:IsBlock() + return getline(line('.'))[col('.')-1] == '{' && !search( + \ '\C\%(\\|\*\@