changeset 2879:493897f8bf90 v7.3.213

updated for version 7.3.213 Problem: Javascript object literal is not indented correctly. Solution: Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
author Bram Moolenaar <bram@vim.org>
date Sun, 12 Jun 2011 21:51:08 +0200
parents 334771ad5bd7
children b23052d0a187
files src/misc1.c src/testdir/test3.in src/testdir/test3.ok src/version.c
diffstat 4 files changed, 43 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -6965,7 +6965,7 @@ get_c_indent()
 	     *			ldfd) {
 	     *		    }
 	     */
-	    if ((ind_keep_case_label
+	    if (ind_js || (ind_keep_case_label
 			   && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
 		amount = get_indent();
 	    else
--- a/src/testdir/test3.in
+++ b/src/testdir/test3.in
@@ -1492,10 +1492,11 @@ baz();
 
 STARTTEST
 :set cino=N-s
-/namespaces
+/^NAMESPACESTART
 =/^NAMESPACEEND
 ENDTEST
 
+NAMESPACESTART
 /* valid namespaces with normal indent */
 namespace
 {
@@ -1561,6 +1562,27 @@ NAMESPACEEND
 
 
 STARTTEST
+:set cino=J1
+/^JSSTART
+=/^JSEND
+ENDTEST
+
+JSSTART
+var bar = {
+foo: {
+that: this,
+some: ok,
+},
+"bar":{
+a : 2,
+b: "123abc",
+x: 4,
+"y": 5
+}
+}
+JSEND
+
+STARTTEST
 :g/^STARTTEST/.,/^ENDTEST/d
 :1;/start of AUTO/,$wq! test.out
 ENDTEST
--- a/src/testdir/test3.ok
+++ b/src/testdir/test3.ok
@@ -1337,6 +1337,7 @@ void func(void)
 }
 
 
+NAMESPACESTART
 /* valid namespaces with normal indent */
 namespace
 {
@@ -1401,3 +1402,19 @@ namespace111111111
 NAMESPACEEND
 
 
+
+JSSTART
+var bar = {
+	foo: {
+		that: this,
+		some: ok,
+	},
+	"bar":{
+		a : 2,
+		b: "123abc",
+		x: 4,
+		"y": 5
+	}
+}
+JSEND
+
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    213,
+/**/
     212,
 /**/
     211,