From ac79fd3beea839b3c7b25b3ed0e1ee635ed0bad8 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 20 Jul 2011 15:09:43 +0200 Subject: [PATCH] updated for version 7.3.256 Problem: Javascript indenting not sufficiently tested. Solution: Add more tests. (Luc Deschenaux) Mark the lines that are indented wrong. --- src/testdir/test3.in | 141 ++++++++++++++++++++++++++++++++++++++++++- src/testdir/test3.ok | 114 ++++++++++++++++++++++++++++++++++ src/version.c | 2 + 3 files changed, 256 insertions(+), 1 deletion(-) diff --git a/src/testdir/test3.in b/src/testdir/test3.in index aea055fb3a..55ca2a5a7a 100644 --- a/src/testdir/test3.in +++ b/src/testdir/test3.in @@ -1592,7 +1592,7 @@ NAMESPACEEND STARTTEST -:set cino=J1 +:set cino=j1,J1 /^JSSTART =/^JSEND ENDTEST @@ -1612,6 +1612,145 @@ x: 4, } JSEND +STARTTEST +:set cino=j1,J1 +/^JSSTART +=/^JSEND +ENDTEST + +JSSTART +var foo = [ +1, // indent 8 more +2, +3 +]; // indent 8 less +JSEND + +STARTTEST +:set cino=j1,J1 +/^JSSTART +=/^JSEND +ENDTEST + +JSSTART +function bar() { +var foo = [ +1, +2, +3 +]; // indent 16 less +} +JSEND + +STARTTEST +:set cino=j1,J1 +/^JSSTART +=/^JSEND +ENDTEST + +JSSTART +(function($){ + +var class_name='myclass'; + +function private_method() { +} + +var public_method={ +method: function(options,args){ +private_method(); +} +} + +function init(options) { + +$(this).data(class_name+'_public',$.extend({},{ +foo: 'bar', +bar: 2, // indent 8 more +foobar: [ // indent 8 more +1, // indent 8 more +2, // indent 16 more +3 // indent 16 more +], +callback: function(){ // indent 8 more +return true; // indent 8 more +} // indent 8 more +}, options||{})); +} + +$.fn[class_name]=function() { + +var _arguments=arguments; +return this.each(function(){ + +var options=$(this).data(class_name+'_public'); +if (!options) { +init.apply(this,_arguments); + +} else { +var method=public_method[_arguments[0]]; + +if (typeof(method)!='function') { +console.log(class_name+' has no method "'+_arguments[0]+'"'); +return false; +} +_arguments[0]=options; +method.apply(this,_arguments); +} +}); +} + +})(jQuery); +JSEND + +STARTTEST +:set cino=j1,J1 +/^JSSTART +=/^JSEND +ENDTEST + +JSSTART +function init(options) { +$(this).data(class_name+'_public',$.extend({},{ +foo: 'bar', +bar: 2, +foobar: [ +1, // indent 8 more +2, // indent 8 more +3 // indent 8 more +], +callback: function(){ +return true; +} +}, options||{})); +} +JSEND + +STARTTEST +:set cino=j1,J1 +/^JSSTART +=/^JSEND +ENDTEST + +JSSTART +(function($){ +function init(options) { +$(this).data(class_name+'_public',$.extend({},{ +foo: 'bar', +bar: 2, // indent 8 more +foobar: [ // indent 8 more +1, // indent 8 more +2, // indent 16 more +3 // indent 16 more +], +callback: function(){ // indent 8 more +return true; // indent 8 more +} // indent 8 more +}, options||{})); +} +})(jQuery); +JSEND + STARTTEST :g/^STARTTEST/.,/^ENDTEST/d :1;/start of AUTO/,$wq! test.out diff --git a/src/testdir/test3.ok b/src/testdir/test3.ok index a475669310..3962307442 100644 --- a/src/testdir/test3.ok +++ b/src/testdir/test3.ok @@ -1443,3 +1443,117 @@ var bar = { } JSEND + +JSSTART +var foo = [ +1, // indent 8 more + 2, + 3 + ]; // indent 8 less +JSEND + + +JSSTART +function bar() { + var foo = [ + 1, + 2, + 3 + ]; // indent 16 less +} +JSEND + + +JSSTART +(function($){ + + var class_name='myclass'; + + function private_method() { + } + + var public_method={ + method: function(options,args){ + private_method(); + } + } + + function init(options) { + + $(this).data(class_name+'_public',$.extend({},{ + foo: 'bar', + bar: 2, // indent 8 more + foobar: [ // indent 8 more + 1, // indent 8 more + 2, // indent 16 more + 3 // indent 16 more + ], + callback: function(){ // indent 8 more + return true; // indent 8 more + } // indent 8 more + }, options||{})); + } + + $.fn[class_name]=function() { + + var _arguments=arguments; + return this.each(function(){ + + var options=$(this).data(class_name+'_public'); + if (!options) { + init.apply(this,_arguments); + + } else { + var method=public_method[_arguments[0]]; + + if (typeof(method)!='function') { + console.log(class_name+' has no method "'+_arguments[0]+'"'); + return false; + } + _arguments[0]=options; + method.apply(this,_arguments); + } + }); + } + +})(jQuery); +JSEND + + +JSSTART +function init(options) { + $(this).data(class_name+'_public',$.extend({},{ + foo: 'bar', + bar: 2, + foobar: [ + 1, // indent 8 more + 2, // indent 8 more + 3 // indent 8 more + ], + callback: function(){ + return true; + } + }, options||{})); +} +JSEND + + +JSSTART +(function($){ + function init(options) { + $(this).data(class_name+'_public',$.extend({},{ + foo: 'bar', + bar: 2, // indent 8 more + foobar: [ // indent 8 more + 1, // indent 8 more + 2, // indent 16 more + 3 // indent 16 more + ], + callback: function(){ // indent 8 more + return true; // indent 8 more + } // indent 8 more + }, options||{})); + } +})(jQuery); +JSEND + diff --git a/src/version.c b/src/version.c index 2f2307f1e4..3783bbf0c6 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 256, /**/ 255, /**/