From 25537090e66d7ae1a7724a940aa1eb58a48e3320 Mon Sep 17 00:00:00 2001 From: Gui Lin Date: Sat, 7 Apr 2012 01:21:54 +0800 Subject: [PATCH 1/2] fix #9, operators start lines indent --- indent/javascript.vim | 21 +++++++++++++++++++++ test.js | 30 +++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 77b2453..14c94c3 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -50,6 +50,9 @@ let s:expr_comment_end = 'c\*/' let s:expr_comma_start = '^\s*,' let s:expr_var = '^\s*var\s' let s:expr_var_stop = ';' + +let s:expr_op_start = '^\s*\(\.\|+ \|&& || \)' + " add $ to Fix " ;(function() { " something; @@ -175,6 +178,24 @@ function! DoIndent(ind, str, pline) endif endif + " a + " .foo <- + " .bar <- + if (match(line, s:expr_op_start) != -1) + if (match(pline, s:expr_op_start) == -1) + let ind = ind + &sw + endif + endif + + " a + " .bar + " newline <- + if (match(pline, s:expr_op_start) != -1) + if (match(line, s:expr_op_start) == -1) + let ind = ind - &sw + endif + endif + if (match(line, s:expr_semic_start) != -1 && match(pline, s:expr_comma_start) != -1) let ind = ind - 2 endif diff --git a/test.js b/test.js index 1e304d6..04f809f 100644 --- a/test.js +++ b/test.js @@ -217,6 +217,9 @@ var a = a , b = b , c = c; +var a = a + , b = c + var a = a , b = b ; @@ -227,10 +230,35 @@ foo({ , c : c , d : { e : e - f : f + , f : f } , g : {[ h : h , i : i ]} }); + +foo() + .foo + .ff + +bar() + .foo + .bar + +if( a == b + && c == d + && e == f + || g == h + || i == j ) { + + a = b + + c + + d + + a = b + + c + + d +} + + From a4f5f23985468fc9bc76b6d92de45e93dbb3336f Mon Sep 17 00:00:00 2001 From: Gui Lin Date: Sat, 7 Apr 2012 09:41:37 +0800 Subject: [PATCH 2/2] fix && ||, add . to indent key --- indent/javascript.vim | 4 ++-- test.js | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/indent/javascript.vim b/indent/javascript.vim index 14c94c3..5af1977 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -34,7 +34,7 @@ let b:indented = 0 let b:in_comment = 0 setlocal indentexpr=GetJsIndent() -setlocal indentkeys+==},=),=],0=*/,0=/*,0=\,,0=;,* +setlocal indentkeys+==},=),=],0=*/,0=/*,0=\,,0=\.,0=;,* if exists("*GetJsIndent") finish endif @@ -51,7 +51,7 @@ let s:expr_comma_start = '^\s*,' let s:expr_var = '^\s*var\s' let s:expr_var_stop = ';' -let s:expr_op_start = '^\s*\(\.\|+ \|&& || \)' +let s:expr_op_start = '^\s*\(\.\|+ \|&&\|||\)' " add $ to Fix " ;(function() { diff --git a/test.js b/test.js index 04f809f..98f6b23 100644 --- a/test.js +++ b/test.js @@ -247,10 +247,10 @@ bar() .bar if( a == b - && c == d - && e == f - || g == h - || i == j ) { + && c == d + && e == f + || g == h + || i == j ) { a = b + c