diff options
Diffstat (limited to 'data/vim/patches/8.1.1434')
-rw-r--r-- | data/vim/patches/8.1.1434 | 9687 |
1 files changed, 0 insertions, 9687 deletions
diff --git a/data/vim/patches/8.1.1434 b/data/vim/patches/8.1.1434 deleted file mode 100644 index 12f9f9c92..000000000 --- a/data/vim/patches/8.1.1434 +++ /dev/null @@ -1,9687 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.1434 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 8.1.1434 -Problem: Test 3 is old style. -Solution: Turn into a new style test. (Yegappan Lakshmanan, closes #4460) -Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, - src/testdir/test3.in, src/testdir/test3.ok, - src/testdir/test_cindent.vim - - -*** ../vim-8.1.1433/src/Makefile 2019-05-27 22:21:41.309951907 +0200 ---- src/Makefile 2019-05-31 19:57:21.037036126 +0200 -*************** -*** 2181,2187 **** - # These do not depend on the executable, compile it when needed. - test1 \ - test_eval \ -- test3 \ - test39 \ - test42 test44 test48 test49 \ - test52 test59 \ ---- 2182,2187 ---- -*** ../vim-8.1.1433/src/testdir/Make_all.mak 2019-05-27 22:21:41.309951907 +0200 ---- src/testdir/Make_all.mak 2019-05-31 19:57:21.037036126 +0200 -*************** -*** 13,19 **** - - # Tests that run on all systems. - SCRIPTS_ALL = \ -- test3.out \ - test39.out \ - test42.out \ - test44.out \ ---- 13,18 ---- -*** ../vim-8.1.1433/src/testdir/Make_vms.mms 2019-05-27 22:21:41.309951907 +0200 ---- src/testdir/Make_vms.mms 2019-05-31 20:01:11.583773931 +0200 -*************** -*** 73,79 **** - - .SUFFIXES : .out .in - -! SCRIPT = test1.out test3.out \ - test39.out \ - test42.out test44.out test48.out test49.out \ - test64.out test69.out \ ---- 73,79 ---- - - .SUFFIXES : .out .in - -! SCRIPT = test1.out \ - test39.out \ - test42.out test44.out test48.out test49.out \ - test64.out test69.out \ -*** ../vim-8.1.1433/src/testdir/test3.in 2017-11-12 15:15:37.000000000 +0100 ---- src/testdir/test3.in 1970-01-01 01:00:00.000000000 +0100 -*************** -*** 1,2354 **** -- /* vim: set cin ts=4 sw=4 : */ -- -- Test for 'cindent'. -- For new tests, consider putting them in test_cindent.vim. -- -- STARTTEST -- :so small.vim -- :set nocompatible viminfo+=nviminfo modeline -- :edit " read modeline -- /start of AUTO -- =/end of AUTO -- ENDTEST -- -- /* start of AUTO matically checked vim: set ts=4 : */ -- { -- if (test) -- cmd1; -- cmd2; -- } -- -- { -- if (test) -- cmd1; -- else -- cmd2; -- } -- -- { -- if (test) -- { -- cmd1; -- cmd2; -- } -- } -- -- { -- if (test) -- { -- cmd1; -- else -- } -- } -- -- { -- while (this) -- if (test) -- cmd1; -- cmd2; -- } -- -- { -- while (this) -- if (test) -- cmd1; -- else -- cmd2; -- } -- -- { -- if (test) -- { -- cmd; -- } -- -- if (test) -- cmd; -- } -- -- { -- if (test) { -- cmd; -- } -- -- if (test) cmd; -- } -- -- { -- cmd1; -- for (blah) -- while (this) -- if (test) -- cmd2; -- cmd3; -- } -- -- { -- cmd1; -- for (blah) -- while (this) -- if (test) -- cmd2; -- cmd3; -- -- if (test) -- { -- cmd1; -- cmd2; -- cmd3; -- } -- } -- -- -- /* Test for 'cindent' do/while mixed with if/else: */ -- -- { -- do -- if (asdf) -- asdfasd; -- while (cond); -- -- do -- if (asdf) -- while (asdf) -- asdf; -- while (asdf); -- } -- -- /* Test for 'cindent' with two ) on a continuation line */ -- { -- if (asdfasdf;asldkfj asdlkfj as;ldkfj sal;d -- aal;sdkjf ( ;asldfkja;sldfk -- al;sdjfka ;slkdf ) sa;ldkjfsa dlk;) -- line up here; -- } -- -- -- /* C++ tests: */ -- -- // foo() these three lines should remain in column 0 -- // { -- // } -- -- /* Test for continuation and unterminated lines: */ -- { -- i = 99 + 14325 + -- 21345 + -- 21345 + -- 21345 + ( 21345 + -- 21345) + -- 2345 + -- 1234; -- c = 1; -- } -- -- /* -- testje for indent with empty line -- -- here */ -- -- { -- if (testing && -- not a joke || -- line up here) -- hay; -- if (testing && -- (not a joke || testing -- )line up here) -- hay; -- if (testing && -- (not a joke || testing -- line up here)) -- hay; -- } -- -- -- { -- switch (c) -- { -- case xx: -- do -- if (asdf) -- do -- asdfasdf; -- while (asdf); -- else -- asdfasdf; -- while (cond); -- case yy: -- case xx: -- case zz: -- testing; -- } -- } -- -- { -- if (cond) { -- foo; -- } -- else -- { -- bar; -- } -- } -- -- { -- if (alskdfj ;alsdkfjal;skdjf (;sadlkfsa ;dlkf j;alksdfj ;alskdjf -- alsdkfj (asldk;fj -- awith cino=(0 ;lf this one goes to below the paren with == -- ;laksjfd ;lsakdjf ;alskdf asd) -- asdfasdf;))) -- asdfasdf; -- } -- -- int -- func(a, b) -- int a; -- int c; -- { -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3) -- ) -- } -- -- { -- while (asd) -- { -- if (asdf) -- if (test) -- if (that) -- { -- if (asdf) -- do -- cdasd; -- while (as -- df); -- } -- else -- if (asdf) -- asdf; -- else -- asdf; -- asdf; -- } -- } -- -- { -- s = "/*"; b = ';' -- s = "/*"; b = ';'; -- a = b; -- } -- -- { -- switch (a) -- { -- case a: -- switch (t) -- { -- case 1: -- cmd; -- break; -- case 2: -- cmd; -- break; -- } -- cmd; -- break; -- case b: -- { -- int i; -- cmd; -- } -- break; -- case c: { -- int i; -- cmd; -- } -- case d: if (cond && -- test) { /* this line doesn't work right */ -- int i; -- cmd; -- } -- break; -- } -- } -- -- { -- if (!(vim_strchr(p_cpo, CPO_BUFOPTGLOB) != NULL && entering) && -- (bp_to->b_p_initialized || -- (!entering && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) -- return; -- label : -- asdf = asdf ? -- asdf : asdf; -- asdf = asdf ? -- asdf: asdf; -- } -- -- /* Special Comments : This function has the added complexity (compared */ -- /* : to addtolist) of having to check for a detail */ -- /* : texture and add that to the list first. */ -- -- char *(array[100]) = { -- "testje", -- "foo", -- "bar", -- } -- -- enum soppie -- { -- yes = 0, -- no, -- maybe -- }; -- -- typedef enum soppie -- { -- yes = 0, -- no, -- maybe -- }; -- -- static enum -- { -- yes = 0, -- no, -- maybe -- } soppie; -- -- public static enum -- { -- yes = 0, -- no, -- maybe -- } soppie; -- -- static private enum -- { -- yes = 0, -- no, -- maybe -- } soppie; -- -- { -- int a, -- b; -- } -- -- { -- struct Type -- { -- int i; -- char *str; -- } var[] = -- { -- 0, "zero", -- 1, "one", -- 2, "two", -- 3, "three" -- }; -- -- float matrix[3][3] = -- { -- { -- 0, -- 1, -- 2 -- }, -- { -- 3, -- 4, -- 5 -- }, -- { -- 6, -- 7, -- 8 -- } -- }; -- } -- -- { -- /* blah ( blah */ -- /* where does this go? */ -- -- /* blah ( blah */ -- cmd; -- -- func(arg1, -- /* comment */ -- arg2); -- a; -- { -- b; -- { -- c; /* Hey, NOW it indents?! */ -- } -- } -- -- { -- func(arg1, -- arg2, -- arg3); -- /* Hey, what am I doing here? Is this coz of the ","? */ -- } -- } -- -- main () -- { -- if (cond) -- { -- a = b; -- } -- if (cond) { -- a = c; -- } -- if (cond) -- a = d; -- return; -- } -- -- { -- case 2: if (asdf && -- asdfasdf) -- aasdf; -- a = 9; -- case 3: if (asdf) -- aasdf; -- a = 9; -- case 4: x = 1; -- y = 2; -- -- label: if (asdf) -- here; -- -- label: if (asdf && -- asdfasdf) -- { -- } -- -- label: if (asdf && -- asdfasdf) { -- there; -- } -- -- label: if (asdf && -- asdfasdf) -- there; -- } -- -- { -- /* -- hello with ":set comments= cino=c5" -- */ -- -- /* -- hello with ":set comments= cino=" -- */ -- } -- -- -- { -- if (a < b) { -- a = a + 1; -- } else -- a = a + 2; -- -- if (a) -- do { -- testing; -- } while (asdfasdf); -- a = b + 1; -- asdfasdf -- } -- -- { -- for ( int i = 0; -- i < 10; i++ ) -- { -- } -- i = 0; -- } -- -- class bob -- { -- int foo() {return 1;} -- int bar; -- } -- -- main() -- { -- while(1) -- if (foo) -- { -- bar; -- } -- else { -- asdf; -- } -- misplacedline; -- } -- -- { -- if (clipboard.state == SELECT_DONE -- && ((row == clipboard.start.lnum -- && col >= clipboard.start.col) -- || row > clipboard.start.lnum)) -- } -- -- { -- if (1) {i += 4;} -- where_am_i; -- return 0; -- } -- -- { -- { -- } // sdf(asdf -- if (asdf) -- asd; -- } -- -- { -- label1: -- label2: -- } -- -- { -- int fooRet = foo(pBar1, false /*fKB*/, -- true /*fPTB*/, 3 /*nT*/, false /*fDF*/); -- f() { -- for ( i = 0; -- i < m; -- /* c */ i++ ) { -- a = b; -- } -- } -- } -- -- { -- f1(/*comment*/); -- f2(); -- } -- -- { -- do { -- if (foo) { -- } else -- ; -- } while (foo); -- foo(); // was wrong -- } -- -- int x; // no extra indent because of the ; -- void func() -- { -- } -- -- char *tab[] = {"aaa", -- "};", /* }; */ NULL} -- int indented; -- {} -- -- char *a[] = {"aaa", "bbb", -- "ccc", NULL}; -- // here -- -- char *tab[] = {"aaa", -- "xx", /* xx */}; /* asdf */ -- int not_indented; -- -- { -- do { -- switch (bla) -- { -- case 1: if (foo) -- bar; -- } -- } while (boo); -- wrong; -- } -- -- int foo, -- bar; -- int foo; -- -- #if defined(foo) \ -- && defined(bar) -- char * xx = "asdf\ -- foo\ -- bor"; -- int x; -- -- char *foo = "asdf\ -- asdf\ -- asdf", -- *bar; -- -- void f() -- { -- #if defined(foo) \ -- && defined(bar) -- char *foo = "asdf\ -- asdf\ -- asdf", -- *bar; -- { -- int i; -- char *foo = "asdf\ -- asdf\ -- asdf", -- *bar; -- } -- #endif -- } -- #endif -- -- int y; // comment -- // comment -- -- // comment -- -- { -- Constructor(int a, -- int b ) : BaseClass(a) -- { -- } -- } -- -- void foo() -- { -- char one, -- two; -- struct bla piet, -- jan; -- enum foo kees, -- jannie; -- static unsigned sdf, -- krap; -- unsigned int piet, -- jan; -- int -- kees, -- jan; -- } -- -- { -- t(int f, -- int d); // ) -- d(); -- } -- -- Constructor::Constructor(int a, -- int b -- ) : -- BaseClass(a, -- b, -- c), -- mMember(b), -- { -- } -- -- Constructor::Constructor(int a, -- int b ) : -- BaseClass(a) -- { -- } -- -- Constructor::Constructor(int a, -- int b ) /*x*/ : /*x*/ BaseClass(a), -- member(b) -- { -- } -- -- A::A(int a, int b) -- : aa(a), -- bb(b), -- cc(c) -- { -- } -- -- class CAbc : -- public BaseClass1, -- protected BaseClass2 -- { -- int Test() { return FALSE; } -- int Test1() { return TRUE; } -- -- CAbc(int a, int b ) : -- BaseClass(a) -- { -- switch(xxx) -- { -- case abc: -- asdf(); -- break; -- -- case 999: -- baer(); -- break; -- } -- } -- -- public: // <-- this was incoreectly indented before!! -- void testfall(); -- protected: -- void testfall(); -- }; -- -- class CAbc : public BaseClass1, -- protected BaseClass2 -- { -- }; -- -- static struct -- { -- int a; -- int b; -- } variable[COUNT] = -- { -- { -- 123, -- 456 -- }, -- { -- 123, -- 456 -- } -- }; -- -- static struct -- { -- int a; -- int b; -- } variable[COUNT] = -- { -- { 123, 456 }, -- { 123, 456 } -- }; -- -- void asdf() /* ind_maxparen may cause trouble here */ -- { -- if ((0 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1)) break; -- } -- -- foo() -- { -- a = cond ? foo() : asdf -- + asdf; -- -- a = cond ? -- foo() : asdf -- + asdf; -- } -- -- int main(void) -- { -- if (a) -- if (b) -- 2; -- else 3; -- next_line_of_code(); -- } -- -- barry() -- { -- Foo::Foo (int one, -- int two) -- : something(4) -- {} -- } -- -- barry() -- { -- Foo::Foo (int one, int two) -- : something(4) -- {} -- } -- -- Constructor::Constructor(int a, -- int b -- ) : -- BaseClass(a, -- b, -- c), -- mMember(b) -- { -- } -- int main () -- { -- if (lala) -- do -- ++(*lolo); -- while (lili -- && lele); -- lulu; -- } -- -- int main () -- { -- switch (c) -- { -- case 'c': if (cond) -- { -- } -- } -- } -- -- main() -- { -- (void) MyFancyFuasdfadsfnction( -- argument); -- } -- -- main() -- { -- char foo[] = "/*"; -- /* as -- df */ -- hello -- } -- -- /* valid namespaces with normal indent */ -- namespace -- { -- { -- 111111111111; -- } -- } -- namespace /* test */ -- { -- 11111111111111111; -- } -- namespace // test -- { -- 111111111111111111; -- } -- namespace -- { -- 111111111111111111; -- } -- namespace test -- { -- 111111111111111111; -- } -- namespace{ -- 111111111111111111; -- } -- namespace test{ -- 111111111111111111; -- } -- namespace { -- 111111111111111111; -- } -- namespace test { -- 111111111111111111; -- namespace test2 { -- 22222222222222222; -- } -- } -- -- /* invalid namespaces use block indent */ -- namespace test test2 { -- 111111111111111111111; -- } -- namespace11111111111 { -- 111111111111; -- } -- namespace() { -- 1111111111111; -- } -- namespace() -- { -- 111111111111111111; -- } -- namespace test test2 -- { -- 1111111111111111111; -- } -- namespace111111111 -- { -- 111111111111111111; -- } -- -- void getstring() { -- /* Raw strings */ -- const char* s = R"( -- test { -- # comment -- field: 123 -- } -- )"; -- } -- -- void getstring() { -- const char* s = R"foo( -- test { -- # comment -- field: 123 -- } -- )foo"; -- } -- -- { -- int a[4] = { -- [0] = 0, -- [1] = 1, -- [2] = 2, -- [3] = 3, -- }; -- } -- -- { -- a = b[2] -- + 3; -- } -- -- { -- if (1) -- /* aaaaa -- * bbbbb -- */ -- a = 1; -- } -- -- void func() -- { -- switch (foo) -- { -- case (bar): -- if (baz()) -- quux(); -- break; -- case (shmoo): -- if (!bar) -- { -- } -- case (foo1): -- switch (bar) -- { -- case baz: -- baz_f(); -- break; -- } -- break; -- default: -- baz(); -- baz(); -- break; -- } -- } -- -- /* end of AUTO */ -- -- STARTTEST -- :set tw=0 noai fo=croq -- :let &wm = &columns - 20 -- /serious/e -- a about life, the universe, and the rest -- ENDTEST -- -- { -- -- /* this is -- * a real serious important big -- * comment -- */ -- /* insert " about life, the universe, and the rest" after "serious" */ -- } -- -- STARTTEST -- :set nocin -- /comments -- joabout life/happens -- jothere/below -- oline/this -- Ohello -- ENDTEST -- -- { -- /* -- * Testing for comments, without 'cin' set -- */ -- -- /* -- * what happens here? -- */ -- -- /* -- the end of the comment, try inserting a line below */ -- -- /* how about -- this one */ -- } -- -- STARTTEST -- :set cin -- /vec2 -- == -- ENDTEST -- -- { -- var = this + that + vec[0] * vec[0] -- + vec[1] * vec[1] -- + vec2[2] * vec[2]; -- } -- -- STARTTEST -- :set cin -- :set cino=}4 -- /testing1 -- k2==/testing2 -- k2== -- ENDTEST -- -- { -- asdf asdflkajds f; -- if (tes & ting) { -- asdf asdf asdf ; -- asdfa sdf asdf; -- } -- testing1; -- if (tes & ting) -- { -- asdf asdf asdf ; -- asdfa sdf asdf; -- } -- testing2; -- } -- -- STARTTEST -- :set cin -- :set cino=(0,)20 -- /main -- =][ -- ENDTEST -- -- main ( int first_par, /* -- * Comment for -- * first par -- */ -- int second_par /* -- * Comment for -- * second par -- */ -- ) -- { -- func( first_par, /* -- * Comment for -- * first par -- */ -- second_par /* -- * Comment for -- * second par -- */ -- ); -- -- } -- -- STARTTEST -- :set cin -- :set cino=es,n0s -- /main -- =][ -- ENDTEST -- -- main(void) -- { -- /* Make sure that cino=X0s is not parsed like cino=Xs. */ -- if (cond) -- foo(); -- else -- { -- bar(); -- } -- } -- -- STARTTEST -- :set cin -- :set cino= -- ]]=][ -- ENDTEST -- -- { -- do -- { -- if () -- { -- if () -- asdf; -- else -- asdf; -- } -- } while (); -- cmd; /* this should go under the } */ -- } -- -- STARTTEST -- ]]=][ -- ENDTEST -- -- void f() -- { -- if ( k() ) { -- l(); -- -- } else { /* Start (two words) end */ -- m(); -- } -- -- n(); -- } -- -- STARTTEST -- :set cino={s,e-s -- ]]=][ -- ENDTEST -- -- void f() -- { -- if ( k() ) -- { -- l(); -- } else { /* Start (two words) end */ -- m(); -- } -- n(); /* should be under the if () */ -- } -- -- STARTTEST -- :set cino={s,fs -- ]]=/ foo -- ENDTEST -- -- void bar(void) -- { -- static array[2][2] = -- { -- { 1, 2 }, -- { 3, 4 }, -- } -- -- while (a) -- { -- foo(&a); -- } -- -- { -- int a; -- { -- a = a + 1; -- } -- } -- b = a; -- } -- -- void func(void) -- { -- a = 1; -- { -- b = 2; -- } -- c = 3; -- d = 4; -- } -- /* foo */ -- -- STARTTEST -- :set cino= -- /while -- ohere -- ENDTEST -- -- a() -- { -- do { -- a = a + -- a; -- } while ( a ); /* add text under this line */ -- if ( a ) -- a; -- } -- -- STARTTEST -- :set cino= com= -- /comment -- olabel2: b();
label3 /* post */:
/* pre */ label4:
f(/*com*/);
if (/*com*/)
cmd(); -- ENDTEST -- -- a() -- { -- label1: -- /* hmm */ -- // comment -- } -- -- STARTTEST -- :set comments& comments^=s:/*,m:**,ex:*/ -- /simple -- =5j -- ENDTEST -- -- /* -- * A simple comment -- */ -- -- /* -- ** A different comment -- */ -- -- STARTTEST -- :set cino=c0 -- :set comments& comments-=s1:/* comments^=s0:/* -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- -- /********* -- A comment. -- *********/ -- } -- -- STARTTEST -- :set cino=c0,C1 -- :set comments& comments-=s1:/* comments^=s0:/* -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- -- /********* -- A comment. -- *********/ -- } -- -- STARTTEST -- :set cino= -- ]]=][ -- ENDTEST -- -- void f() -- { -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- STARTTEST -- :set cino=(s -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- STARTTEST -- :set cino=(s,U1 -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- STARTTEST -- :set cino=(0 -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- STARTTEST -- :set cino=(0,w1 -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- STARTTEST -- :set cino=(s -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- c = c1 && ( -- c2 || -- c3 -- ) && c4; -- if ( -- c1 && c2 -- ) -- foo; -- } -- -- STARTTEST -- :set cino=(s,m1 -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- c = c1 && ( -- c2 || -- c3 -- ) && c4; -- if ( -- c1 && c2 -- ) -- foo; -- } -- -- STARTTEST -- :set cino=b1 -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- switch (x) -- { -- case 1: -- a = b; -- break; -- default: -- a = 0; -- break; -- } -- } -- -- STARTTEST -- :set cino=(0,W5 -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- invokeme( -- argu, -- ment); -- invokeme( -- argu, -- ment -- ); -- invokeme(argu, -- ment -- ); -- } -- -- STARTTEST -- :set cino=/6 -- 2kdd]]=][ -- ENDTEST -- -- void f() -- { -- statement; -- // comment 1 -- // comment 2 -- } -- -- STARTTEST -- :set cino= -- 2kdd]]/comment 1/+1 -- == -- ENDTEST -- -- void f() -- { -- statement; -- // comment 1 -- // comment 2 -- } -- -- STARTTEST -- :set cino=g0 -- 2kdd]]=][ -- ENDTEST -- -- class CAbc -- { -- int Test() { return FALSE; } -- -- public: // comment -- void testfall(); -- protected: -- void testfall(); -- }; -- -- STARTTEST -- :set cino=(0,gs,hs -- 2kdd]]=][ -- ENDTEST -- -- class Foo : public Bar -- { -- public: -- virtual void method1(void) = 0; -- virtual void method2(int arg1, -- int arg2, -- int arg3) = 0; -- }; -- -- STARTTEST -- :set cino=+20 -- 2kdd]]=][ -- ENDTEST -- -- void -- foo() -- { -- if (a) -- { -- } else -- asdf; -- } -- -- STARTTEST -- :set cino=(0,W2s -- 2kdd]]=][ -- ENDTEST -- -- { -- averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( -- asdasdf, -- func(asdf, -- asdfadsf), -- asdfasdf -- ); -- -- /* those are ugly, but consequent */ -- -- func()->asd(asdasdf, -- averylongfunctionname( -- abc, -- dec)->averylongfunctionname( -- asdfadsf, -- asdfasdf, -- asdfasdf, -- ), -- func(asdfadf, -- asdfasdf -- ), -- asdasdf -- ); -- -- averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf( -- abc, -- dec)->asdfasdfasdf( -- asdfadsf, -- asdfasdf, -- asdfasdf, -- ), -- func(asdfadf, -- asdfasdf), -- asdasdf -- ); -- } -- -- STARTTEST -- :set cino=M1 -- 2kdd]]=][ -- ENDTEST -- -- int main () -- { -- if (cond1 && -- cond2 -- ) -- foo; -- } -- -- STARTTEST -- :set cino=(0,ts -- 2kdd2j=][ -- ENDTEST -- -- void func(int a -- #if defined(FOO) -- , int b -- , int c -- #endif -- ) -- { -- } -- -- STARTTEST -- :set cino=(0 -- 2kdd2j=][ -- ENDTEST -- -- void -- func(int a -- #if defined(FOO) -- , int b -- , int c -- #endif -- ) -- { -- } -- -- STARTTEST -- :set cino& -- 2kdd2j=7][ -- ENDTEST -- -- void func(void) -- { -- if(x==y) -- if(y==z) -- foo=1; -- else { bar=1; -- baz=2; -- } -- printf("Foo!\n"); -- } -- -- void func1(void) -- { -- char* tab[] = {"foo", "bar", -- "baz", "quux", -- "this line used", "to be indented incorrectly"}; -- foo(); -- } -- -- void func2(void) -- { -- int tab[] = -- {1, 2, -- 3, 4, -- 5, 6}; -- -- printf("This line used to be indented incorrectly.\n"); -- } -- -- int foo[] -- #ifdef BAR -- -- = { 1, 2, 3, -- 4, 5, 6 } -- -- #endif -- ; -- int baz; -- -- void func3(void) -- { -- int tab[] = { -- 1, 2, -- 3, 4, -- 5, 6}; -- -- printf("Don't you dare indent this line incorrectly!\n"); -- } -- -- void -- func4(a, b, -- c) -- int a; -- int b; -- int c; -- { -- } -- -- void -- func5( -- int a, -- int b) -- { -- } -- -- void -- func6( -- int a) -- { -- } -- -- STARTTEST -- :set cino& -- :set cino+=l1 -- 2kdd2j=][ -- ENDTEST -- -- void func(void) -- { -- int tab[] = -- { -- 1, 2, 3, -- 4, 5, 6}; -- -- printf("Indent this line correctly!\n"); -- -- switch (foo) -- { -- case bar: -- printf("bar"); -- break; -- case baz: { -- printf("baz"); -- break; -- } -- case quux: -- printf("But don't break the indentation of this instruction\n"); -- break; -- } -- } -- -- STARTTEST -- :set cino& -- 2kdd2j=][ -- ENDTEST -- -- void func(void) -- { -- cout << "a" -- << "b" -- << ") :" -- << "c"; -- } -- -- STARTTEST -- :set com=s1:/*,m:*,ex:*/ -- ]]3jofoo(); -- ENDTEST -- -- void func(void) -- { -- /* -- * This is a comment. -- */ -- } -- -- STARTTEST -- :set cino& -- 2kdd2j=][ -- ENDTEST -- -- void func(void) -- { -- for (int i = 0; i < 10; ++i) -- if (i & 1) { -- foo(1); -- } else -- foo(0); -- baz(); -- } -- -- STARTTEST -- :set cino=k2s,(0 -- 2kdd3j=][ -- ENDTEST -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- func( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- STARTTEST -- :set cino=k2s,(s -- 2kdd3j=][ -- ENDTEST -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- func( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- STARTTEST -- :set cino=k2s,(s,U1 -- 2kdd3j=][ -- ENDTEST -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- STARTTEST -- :set cino=k2s,(0,W4 -- 2kdd3j=][ -- ENDTEST -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- -- a_long_line( -- argument, -- argument); -- a_short_line(argument, -- argument); -- } -- -- STARTTEST -- :set cino=k2s,u2 -- 2kdd3j=][ -- ENDTEST -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- } -- -- STARTTEST -- :set cino=k2s,(0,w1 -- 2kdd3j=][ -- ENDTEST -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- func( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- STARTTEST -- :set cino=k2,(s -- 2kdd3j=][ -- ENDTEST -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- } -- -- STARTTEST -- :set cino=N-s -- /^NAMESPACESTART -- =/^NAMESPACEEND -- ENDTEST -- -- NAMESPACESTART -- /* valid namespaces with normal indent */ -- namespace -- { -- { -- 111111111111; -- } -- } -- namespace /* test */ -- { -- 11111111111111111; -- } -- namespace // test -- { -- 111111111111111111; -- } -- namespace -- { -- 111111111111111111; -- } -- namespace test -- { -- 111111111111111111; -- } -- namespace test::cpp17 -- { -- 111111111111111111; -- } -- namespace ::incorrectcpp17 -- { -- 111111111111111111; -- } -- namespace test::incorrectcpp17:: -- { -- 111111111111111111; -- } -- namespace test:incorrectcpp17 -- { -- 111111111111111111; -- } -- namespace test:::incorrectcpp17 -- { -- 111111111111111111; -- } -- namespace{ -- 111111111111111111; -- } -- namespace test{ -- 111111111111111111; -- } -- namespace { -- 111111111111111111; -- } -- namespace test { -- 111111111111111111; -- namespace test2 { -- 22222222222222222; -- } -- } -- -- /* invalid namespaces use block indent */ -- namespace test test2 { -- 111111111111111111111; -- } -- namespace11111111111 { -- 111111111111; -- } -- namespace() { -- 1111111111111; -- } -- namespace() -- { -- 111111111111111111; -- } -- namespace test test2 -- { -- 1111111111111111111; -- } -- namespace111111111 -- { -- 111111111111111111; -- } -- NAMESPACEEND -- -- -- STARTTEST -- :set cino=j1,J1 -- /^JSSTART -- =/^JSEND -- ENDTEST -- -- JSSTART -- var bar = { -- foo: { -- that: this, -- some: ok, -- }, -- "bar":{ -- a : 2, -- b: "123abc", -- x: 4, -- "y": 5 -- } -- } -- JSEND -- -- STARTTEST -- :set cino=j1,J1 -- /^JSSTART -- =/^JSEND -- ENDTEST -- -- JSSTART -- var foo = [ -- 1, -- 2, -- 3 -- ]; -- JSEND -- -- STARTTEST -- :set cino=j1,J1 -- /^JSSTART -- =/^JSEND -- ENDTEST -- -- JSSTART -- function bar() { -- var foo = [ -- 1, -- 2, -- 3 -- ]; -- } -- JSEND -- -- STARTTEST -- :set cino=j1,J1 -- /^JSSTART -- =/^JSEND -- ENDTEST -- -- JSSTART -- (function($){ -- -- if (cond && -- cond) { -- stmt; -- } -- window.something.left = -- (width - 50 + offset) + "px"; -- 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, -- foobar: [ -- 1, -- 2, -- 3 -- ], -- callback: function(){ -- return true; -- } -- }, 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, -- 2, -- 3 -- ], -- 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, -- foobar: [ -- 1, -- 2, -- 3 -- ], -- callback: function(){ -- return true; -- } -- }, options||{})); -- } -- })(jQuery); -- JSEND -- -- STARTTEST -- :set cino=j1,J1,+2 -- /^JSSTART -- =/^JSEND -- ENDTEST -- -- JSSTART -- // Results of JavaScript indent -- // 1 -- (function(){ -- var a = [ -- 'a', -- 'b', -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- }()) -- -- // 2 -- (function(){ -- var a = [ -- 0 + -- 5 * -- 9 * -- 'a', -- 'b', -- 0 + -- 5 * -- 9 * -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- }()) -- -- // 3 -- (function(){ -- var a = [ -- 0 + -- // comment 1 -- 5 * -- /* comment 2 */ -- 9 * -- 'a', -- 'b', -- 0 + -- 5 * -- 9 * -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- }()) -- -- // 4 -- { -- var a = [ -- 0, -- 1 -- ]; -- var b; -- var c; -- } -- -- // 5 -- { -- var a = [ -- [ -- 0 -- ], -- 2, -- 3 -- ]; -- } -- -- // 6 -- { -- var a = [ -- [ -- 0, -- 1 -- ], -- 2, -- 3 -- ]; -- } -- -- // 7 -- { -- var a = [ -- // [ -- 0, -- // 1 -- // ], -- 2, -- 3 -- ]; -- } -- -- // 8 -- var x = [ -- (function(){ -- var a, -- b, -- c, -- d, -- e, -- f, -- g, -- h, -- i; -- }) -- ]; -- -- // 9 -- var a = [ -- 0 + -- 5 * -- 9 * -- 'a', -- 'b', -- 0 + -- 5 * -- 9 * -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- -- // 10 -- var a, -- b, -- c, -- d, -- e, -- f, -- g, -- h, -- i; -- JSEND -- -- STARTTEST -- :set cin cino& -- /start of define -- =/end of define -- ENDTEST -- -- /* start of define */ -- { -- } -- #define AAA \ -- BBB\ -- CCC -- -- #define CNT \ -- 1 + \ -- 2 + \ -- 4 -- /* end of define */ -- -- STARTTEST -- :set cin cino& -- /a = second -- ox -- ENDTEST -- -- { -- a = second/*bug*/*line; -- } -- -- STARTTEST -- :g/^STARTTEST/.,/^ENDTEST/d -- :1;/start of AUTO/,$wq! test.out -- ENDTEST ---- 0 ---- -*** ../vim-8.1.1433/src/testdir/test3.ok 2017-11-12 15:32:20.000000000 +0100 ---- src/testdir/test3.ok 1970-01-01 01:00:00.000000000 +0100 -*************** -*** 1,2102 **** -- /* start of AUTO matically checked vim: set ts=4 : */ -- { -- if (test) -- cmd1; -- cmd2; -- } -- -- { -- if (test) -- cmd1; -- else -- cmd2; -- } -- -- { -- if (test) -- { -- cmd1; -- cmd2; -- } -- } -- -- { -- if (test) -- { -- cmd1; -- else -- } -- } -- -- { -- while (this) -- if (test) -- cmd1; -- cmd2; -- } -- -- { -- while (this) -- if (test) -- cmd1; -- else -- cmd2; -- } -- -- { -- if (test) -- { -- cmd; -- } -- -- if (test) -- cmd; -- } -- -- { -- if (test) { -- cmd; -- } -- -- if (test) cmd; -- } -- -- { -- cmd1; -- for (blah) -- while (this) -- if (test) -- cmd2; -- cmd3; -- } -- -- { -- cmd1; -- for (blah) -- while (this) -- if (test) -- cmd2; -- cmd3; -- -- if (test) -- { -- cmd1; -- cmd2; -- cmd3; -- } -- } -- -- -- /* Test for 'cindent' do/while mixed with if/else: */ -- -- { -- do -- if (asdf) -- asdfasd; -- while (cond); -- -- do -- if (asdf) -- while (asdf) -- asdf; -- while (asdf); -- } -- -- /* Test for 'cindent' with two ) on a continuation line */ -- { -- if (asdfasdf;asldkfj asdlkfj as;ldkfj sal;d -- aal;sdkjf ( ;asldfkja;sldfk -- al;sdjfka ;slkdf ) sa;ldkjfsa dlk;) -- line up here; -- } -- -- -- /* C++ tests: */ -- -- // foo() these three lines should remain in column 0 -- // { -- // } -- -- /* Test for continuation and unterminated lines: */ -- { -- i = 99 + 14325 + -- 21345 + -- 21345 + -- 21345 + ( 21345 + -- 21345) + -- 2345 + -- 1234; -- c = 1; -- } -- -- /* -- testje for indent with empty line -- -- here */ -- -- { -- if (testing && -- not a joke || -- line up here) -- hay; -- if (testing && -- (not a joke || testing -- )line up here) -- hay; -- if (testing && -- (not a joke || testing -- line up here)) -- hay; -- } -- -- -- { -- switch (c) -- { -- case xx: -- do -- if (asdf) -- do -- asdfasdf; -- while (asdf); -- else -- asdfasdf; -- while (cond); -- case yy: -- case xx: -- case zz: -- testing; -- } -- } -- -- { -- if (cond) { -- foo; -- } -- else -- { -- bar; -- } -- } -- -- { -- if (alskdfj ;alsdkfjal;skdjf (;sadlkfsa ;dlkf j;alksdfj ;alskdjf -- alsdkfj (asldk;fj -- awith cino=(0 ;lf this one goes to below the paren with == -- ;laksjfd ;lsakdjf ;alskdf asd) -- asdfasdf;))) -- asdfasdf; -- } -- -- int -- func(a, b) -- int a; -- int c; -- { -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3) -- ) -- } -- -- { -- while (asd) -- { -- if (asdf) -- if (test) -- if (that) -- { -- if (asdf) -- do -- cdasd; -- while (as -- df); -- } -- else -- if (asdf) -- asdf; -- else -- asdf; -- asdf; -- } -- } -- -- { -- s = "/*"; b = ';' -- s = "/*"; b = ';'; -- a = b; -- } -- -- { -- switch (a) -- { -- case a: -- switch (t) -- { -- case 1: -- cmd; -- break; -- case 2: -- cmd; -- break; -- } -- cmd; -- break; -- case b: -- { -- int i; -- cmd; -- } -- break; -- case c: { -- int i; -- cmd; -- } -- case d: if (cond && -- test) { /* this line doesn't work right */ -- int i; -- cmd; -- } -- break; -- } -- } -- -- { -- if (!(vim_strchr(p_cpo, CPO_BUFOPTGLOB) != NULL && entering) && -- (bp_to->b_p_initialized || -- (!entering && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) -- return; -- label : -- asdf = asdf ? -- asdf : asdf; -- asdf = asdf ? -- asdf: asdf; -- } -- -- /* Special Comments : This function has the added complexity (compared */ -- /* : to addtolist) of having to check for a detail */ -- /* : texture and add that to the list first. */ -- -- char *(array[100]) = { -- "testje", -- "foo", -- "bar", -- } -- -- enum soppie -- { -- yes = 0, -- no, -- maybe -- }; -- -- typedef enum soppie -- { -- yes = 0, -- no, -- maybe -- }; -- -- static enum -- { -- yes = 0, -- no, -- maybe -- } soppie; -- -- public static enum -- { -- yes = 0, -- no, -- maybe -- } soppie; -- -- static private enum -- { -- yes = 0, -- no, -- maybe -- } soppie; -- -- { -- int a, -- b; -- } -- -- { -- struct Type -- { -- int i; -- char *str; -- } var[] = -- { -- 0, "zero", -- 1, "one", -- 2, "two", -- 3, "three" -- }; -- -- float matrix[3][3] = -- { -- { -- 0, -- 1, -- 2 -- }, -- { -- 3, -- 4, -- 5 -- }, -- { -- 6, -- 7, -- 8 -- } -- }; -- } -- -- { -- /* blah ( blah */ -- /* where does this go? */ -- -- /* blah ( blah */ -- cmd; -- -- func(arg1, -- /* comment */ -- arg2); -- a; -- { -- b; -- { -- c; /* Hey, NOW it indents?! */ -- } -- } -- -- { -- func(arg1, -- arg2, -- arg3); -- /* Hey, what am I doing here? Is this coz of the ","? */ -- } -- } -- -- main () -- { -- if (cond) -- { -- a = b; -- } -- if (cond) { -- a = c; -- } -- if (cond) -- a = d; -- return; -- } -- -- { -- case 2: if (asdf && -- asdfasdf) -- aasdf; -- a = 9; -- case 3: if (asdf) -- aasdf; -- a = 9; -- case 4: x = 1; -- y = 2; -- -- label: if (asdf) -- here; -- -- label: if (asdf && -- asdfasdf) -- { -- } -- -- label: if (asdf && -- asdfasdf) { -- there; -- } -- -- label: if (asdf && -- asdfasdf) -- there; -- } -- -- { -- /* -- hello with ":set comments= cino=c5" -- */ -- -- /* -- hello with ":set comments= cino=" -- */ -- } -- -- -- { -- if (a < b) { -- a = a + 1; -- } else -- a = a + 2; -- -- if (a) -- do { -- testing; -- } while (asdfasdf); -- a = b + 1; -- asdfasdf -- } -- -- { -- for ( int i = 0; -- i < 10; i++ ) -- { -- } -- i = 0; -- } -- -- class bob -- { -- int foo() {return 1;} -- int bar; -- } -- -- main() -- { -- while(1) -- if (foo) -- { -- bar; -- } -- else { -- asdf; -- } -- misplacedline; -- } -- -- { -- if (clipboard.state == SELECT_DONE -- && ((row == clipboard.start.lnum -- && col >= clipboard.start.col) -- || row > clipboard.start.lnum)) -- } -- -- { -- if (1) {i += 4;} -- where_am_i; -- return 0; -- } -- -- { -- { -- } // sdf(asdf -- if (asdf) -- asd; -- } -- -- { -- label1: -- label2: -- } -- -- { -- int fooRet = foo(pBar1, false /*fKB*/, -- true /*fPTB*/, 3 /*nT*/, false /*fDF*/); -- f() { -- for ( i = 0; -- i < m; -- /* c */ i++ ) { -- a = b; -- } -- } -- } -- -- { -- f1(/*comment*/); -- f2(); -- } -- -- { -- do { -- if (foo) { -- } else -- ; -- } while (foo); -- foo(); // was wrong -- } -- -- int x; // no extra indent because of the ; -- void func() -- { -- } -- -- char *tab[] = {"aaa", -- "};", /* }; */ NULL} -- int indented; -- {} -- -- char *a[] = {"aaa", "bbb", -- "ccc", NULL}; -- // here -- -- char *tab[] = {"aaa", -- "xx", /* xx */}; /* asdf */ -- int not_indented; -- -- { -- do { -- switch (bla) -- { -- case 1: if (foo) -- bar; -- } -- } while (boo); -- wrong; -- } -- -- int foo, -- bar; -- int foo; -- -- #if defined(foo) \ -- && defined(bar) -- char * xx = "asdf\ -- foo\ -- bor"; -- int x; -- -- char *foo = "asdf\ -- asdf\ -- asdf", -- *bar; -- -- void f() -- { -- #if defined(foo) \ -- && defined(bar) -- char *foo = "asdf\ -- asdf\ -- asdf", -- *bar; -- { -- int i; -- char *foo = "asdf\ -- asdf\ -- asdf", -- *bar; -- } -- #endif -- } -- #endif -- -- int y; // comment -- // comment -- -- // comment -- -- { -- Constructor(int a, -- int b ) : BaseClass(a) -- { -- } -- } -- -- void foo() -- { -- char one, -- two; -- struct bla piet, -- jan; -- enum foo kees, -- jannie; -- static unsigned sdf, -- krap; -- unsigned int piet, -- jan; -- int -- kees, -- jan; -- } -- -- { -- t(int f, -- int d); // ) -- d(); -- } -- -- Constructor::Constructor(int a, -- int b -- ) : -- BaseClass(a, -- b, -- c), -- mMember(b), -- { -- } -- -- Constructor::Constructor(int a, -- int b ) : -- BaseClass(a) -- { -- } -- -- Constructor::Constructor(int a, -- int b ) /*x*/ : /*x*/ BaseClass(a), -- member(b) -- { -- } -- -- A::A(int a, int b) -- : aa(a), -- bb(b), -- cc(c) -- { -- } -- -- class CAbc : -- public BaseClass1, -- protected BaseClass2 -- { -- int Test() { return FALSE; } -- int Test1() { return TRUE; } -- -- CAbc(int a, int b ) : -- BaseClass(a) -- { -- switch(xxx) -- { -- case abc: -- asdf(); -- break; -- -- case 999: -- baer(); -- break; -- } -- } -- -- public: // <-- this was incoreectly indented before!! -- void testfall(); -- protected: -- void testfall(); -- }; -- -- class CAbc : public BaseClass1, -- protected BaseClass2 -- { -- }; -- -- static struct -- { -- int a; -- int b; -- } variable[COUNT] = -- { -- { -- 123, -- 456 -- }, -- { -- 123, -- 456 -- } -- }; -- -- static struct -- { -- int a; -- int b; -- } variable[COUNT] = -- { -- { 123, 456 }, -- { 123, 456 } -- }; -- -- void asdf() /* ind_maxparen may cause trouble here */ -- { -- if ((0 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1 -- && 1)) break; -- } -- -- foo() -- { -- a = cond ? foo() : asdf -- + asdf; -- -- a = cond ? -- foo() : asdf -- + asdf; -- } -- -- int main(void) -- { -- if (a) -- if (b) -- 2; -- else 3; -- next_line_of_code(); -- } -- -- barry() -- { -- Foo::Foo (int one, -- int two) -- : something(4) -- {} -- } -- -- barry() -- { -- Foo::Foo (int one, int two) -- : something(4) -- {} -- } -- -- Constructor::Constructor(int a, -- int b -- ) : -- BaseClass(a, -- b, -- c), -- mMember(b) -- { -- } -- int main () -- { -- if (lala) -- do -- ++(*lolo); -- while (lili -- && lele); -- lulu; -- } -- -- int main () -- { -- switch (c) -- { -- case 'c': if (cond) -- { -- } -- } -- } -- -- main() -- { -- (void) MyFancyFuasdfadsfnction( -- argument); -- } -- -- main() -- { -- char foo[] = "/*"; -- /* as -- df */ -- hello -- } -- -- /* valid namespaces with normal indent */ -- namespace -- { -- { -- 111111111111; -- } -- } -- namespace /* test */ -- { -- 11111111111111111; -- } -- namespace // test -- { -- 111111111111111111; -- } -- namespace -- { -- 111111111111111111; -- } -- namespace test -- { -- 111111111111111111; -- } -- namespace{ -- 111111111111111111; -- } -- namespace test{ -- 111111111111111111; -- } -- namespace { -- 111111111111111111; -- } -- namespace test { -- 111111111111111111; -- namespace test2 { -- 22222222222222222; -- } -- } -- -- /* invalid namespaces use block indent */ -- namespace test test2 { -- 111111111111111111111; -- } -- namespace11111111111 { -- 111111111111; -- } -- namespace() { -- 1111111111111; -- } -- namespace() -- { -- 111111111111111111; -- } -- namespace test test2 -- { -- 1111111111111111111; -- } -- namespace111111111 -- { -- 111111111111111111; -- } -- -- void getstring() { -- /* Raw strings */ -- const char* s = R"( -- test { -- # comment -- field: 123 -- } -- )"; -- } -- -- void getstring() { -- const char* s = R"foo( -- test { -- # comment -- field: 123 -- } -- )foo"; -- } -- -- { -- int a[4] = { -- [0] = 0, -- [1] = 1, -- [2] = 2, -- [3] = 3, -- }; -- } -- -- { -- a = b[2] -- + 3; -- } -- -- { -- if (1) -- /* aaaaa -- * bbbbb -- */ -- a = 1; -- } -- -- void func() -- { -- switch (foo) -- { -- case (bar): -- if (baz()) -- quux(); -- break; -- case (shmoo): -- if (!bar) -- { -- } -- case (foo1): -- switch (bar) -- { -- case baz: -- baz_f(); -- break; -- } -- break; -- default: -- baz(); -- baz(); -- break; -- } -- } -- -- /* end of AUTO */ -- -- -- { -- -- /* this is -- * a real serious -- * about life, the -- * universe, and the -- * rest important big -- * comment -- */ -- /* insert " about life, the universe, and the rest" after "serious" */ -- } -- -- -- { -- /* -- * Testing for comments, without 'cin' set -- */ -- about life -- -- /* -- * what happens here? -- */ -- there -- -- /* -- the end of the comment, try inserting a line below */ -- line -- -- /* how about -- hello -- this one */ -- } -- -- -- { -- var = this + that + vec[0] * vec[0] -- + vec[1] * vec[1] -- + vec2[2] * vec[2]; -- } -- -- -- { -- asdf asdflkajds f; -- if (tes & ting) { -- asdf asdf asdf ; -- asdfa sdf asdf; -- } -- testing1; -- if (tes & ting) -- { -- asdf asdf asdf ; -- asdfa sdf asdf; -- } -- testing2; -- } -- -- -- main ( int first_par, /* -- * Comment for -- * first par -- */ -- int second_par /* -- * Comment for -- * second par -- */ -- ) -- { -- func( first_par, /* -- * Comment for -- * first par -- */ -- second_par /* -- * Comment for -- * second par -- */ -- ); -- -- } -- -- -- main(void) -- { -- /* Make sure that cino=X0s is not parsed like cino=Xs. */ -- if (cond) -- foo(); -- else -- { -- bar(); -- } -- } -- -- -- { -- do -- { -- if () -- { -- if () -- asdf; -- else -- asdf; -- } -- } while (); -- cmd; /* this should go under the } */ -- } -- -- -- void f() -- { -- if ( k() ) { -- l(); -- -- } else { /* Start (two words) end */ -- m(); -- } -- -- n(); -- } -- -- -- void f() -- { -- if ( k() ) -- { -- l(); -- } else { /* Start (two words) end */ -- m(); -- } -- n(); /* should be under the if () */ -- } -- -- -- void bar(void) -- { -- static array[2][2] = -- { -- { 1, 2 }, -- { 3, 4 }, -- } -- -- while (a) -- { -- foo(&a); -- } -- -- { -- int a; -- { -- a = a + 1; -- } -- } -- b = a; -- } -- -- void func(void) -- { -- a = 1; -- { -- b = 2; -- } -- c = 3; -- d = 4; -- } -- /* foo */ -- -- -- a() -- { -- do { -- a = a + -- a; -- } while ( a ); /* add text under this line */ -- here -- if ( a ) -- a; -- } -- -- -- a() -- { -- label1: -- /* hmm */ -- // comment -- label2: b(); -- label3 /* post */: -- /* pre */ label4: -- f(/*com*/); -- if (/*com*/) -- cmd(); -- } -- -- -- /* -- * A simple comment -- */ -- -- /* -- ** A different comment -- */ -- -- -- void f() -- { -- -- /********* -- A comment. -- *********/ -- } -- -- -- void f() -- { -- -- /********* -- A comment. -- *********/ -- } -- -- -- void f() -- { -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- -- void f() -- { -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- -- void f() -- { -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- -- void f() -- { -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- -- void f() -- { -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- -- void f() -- { -- c = c1 && ( -- c2 || -- c3 -- ) && c4; -- if ( -- c1 && c2 -- ) -- foo; -- } -- -- -- void f() -- { -- c = c1 && ( -- c2 || -- c3 -- ) && c4; -- if ( -- c1 && c2 -- ) -- foo; -- } -- -- -- void f() -- { -- switch (x) -- { -- case 1: -- a = b; -- break; -- default: -- a = 0; -- break; -- } -- } -- -- -- void f() -- { -- invokeme( -- argu, -- ment); -- invokeme( -- argu, -- ment -- ); -- invokeme(argu, -- ment -- ); -- } -- -- -- void f() -- { -- statement; -- // comment 1 -- // comment 2 -- } -- -- -- void f() -- { -- statement; -- // comment 1 -- // comment 2 -- } -- -- -- class CAbc -- { -- int Test() { return FALSE; } -- -- public: // comment -- void testfall(); -- protected: -- void testfall(); -- }; -- -- -- class Foo : public Bar -- { -- public: -- virtual void method1(void) = 0; -- virtual void method2(int arg1, -- int arg2, -- int arg3) = 0; -- }; -- -- -- void -- foo() -- { -- if (a) -- { -- } else -- asdf; -- } -- -- -- { -- averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( -- asdasdf, -- func(asdf, -- asdfadsf), -- asdfasdf -- ); -- -- /* those are ugly, but consequent */ -- -- func()->asd(asdasdf, -- averylongfunctionname( -- abc, -- dec)->averylongfunctionname( -- asdfadsf, -- asdfasdf, -- asdfasdf, -- ), -- func(asdfadf, -- asdfasdf -- ), -- asdasdf -- ); -- -- averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf( -- abc, -- dec)->asdfasdfasdf( -- asdfadsf, -- asdfasdf, -- asdfasdf, -- ), -- func(asdfadf, -- asdfasdf), -- asdasdf -- ); -- } -- -- -- int main () -- { -- if (cond1 && -- cond2 -- ) -- foo; -- } -- -- -- void func(int a -- #if defined(FOO) -- , int b -- , int c -- #endif -- ) -- { -- } -- -- -- void -- func(int a -- #if defined(FOO) -- , int b -- , int c -- #endif -- ) -- { -- } -- -- -- void func(void) -- { -- if(x==y) -- if(y==z) -- foo=1; -- else { bar=1; -- baz=2; -- } -- printf("Foo!\n"); -- } -- -- void func1(void) -- { -- char* tab[] = {"foo", "bar", -- "baz", "quux", -- "this line used", "to be indented incorrectly"}; -- foo(); -- } -- -- void func2(void) -- { -- int tab[] = -- {1, 2, -- 3, 4, -- 5, 6}; -- -- printf("This line used to be indented incorrectly.\n"); -- } -- -- int foo[] -- #ifdef BAR -- -- = { 1, 2, 3, -- 4, 5, 6 } -- -- #endif -- ; -- int baz; -- -- void func3(void) -- { -- int tab[] = { -- 1, 2, -- 3, 4, -- 5, 6}; -- -- printf("Don't you dare indent this line incorrectly!\n"); -- } -- -- void -- func4(a, b, -- c) -- int a; -- int b; -- int c; -- { -- } -- -- void -- func5( -- int a, -- int b) -- { -- } -- -- void -- func6( -- int a) -- { -- } -- -- -- void func(void) -- { -- int tab[] = -- { -- 1, 2, 3, -- 4, 5, 6}; -- -- printf("Indent this line correctly!\n"); -- -- switch (foo) -- { -- case bar: -- printf("bar"); -- break; -- case baz: { -- printf("baz"); -- break; -- } -- case quux: -- printf("But don't break the indentation of this instruction\n"); -- break; -- } -- } -- -- -- void func(void) -- { -- cout << "a" -- << "b" -- << ") :" -- << "c"; -- } -- -- -- void func(void) -- { -- /* -- * This is a comment. -- */ -- foo(); -- } -- -- -- void func(void) -- { -- for (int i = 0; i < 10; ++i) -- if (i & 1) { -- foo(1); -- } else -- foo(0); -- baz(); -- } -- -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- func( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- func( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- -- c = c1 && -- ( -- c2 || -- c3 -- ) && c4; -- } -- -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- -- a_long_line( -- argument, -- argument); -- a_short_line(argument, -- argument); -- } -- -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- } -- -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- if (c123456789 -- && (c22345 -- || c3)) -- printf("foo\n"); -- -- if ( c1 -- && ( c2 -- || c3)) -- foo; -- func( c1 -- && ( c2 -- || c3)) -- foo; -- } -- -- -- void func(void) -- { -- if (condition1 -- && condition2) -- action(); -- function(argument1 -- && argument2); -- -- if (c1 && (c2 || -- c3)) -- foo; -- if (c1 && -- (c2 || c3)) -- { -- } -- } -- -- -- NAMESPACESTART -- /* valid namespaces with normal indent */ -- namespace -- { -- { -- 111111111111; -- } -- } -- namespace /* test */ -- { -- 11111111111111111; -- } -- namespace // test -- { -- 111111111111111111; -- } -- namespace -- { -- 111111111111111111; -- } -- namespace test -- { -- 111111111111111111; -- } -- namespace test::cpp17 -- { -- 111111111111111111; -- } -- namespace ::incorrectcpp17 -- { -- 111111111111111111; -- } -- namespace test::incorrectcpp17:: -- { -- 111111111111111111; -- } -- namespace test:incorrectcpp17 -- { -- 111111111111111111; -- } -- namespace test:::incorrectcpp17 -- { -- 111111111111111111; -- } -- namespace{ -- 111111111111111111; -- } -- namespace test{ -- 111111111111111111; -- } -- namespace { -- 111111111111111111; -- } -- namespace test { -- 111111111111111111; -- namespace test2 { -- 22222222222222222; -- } -- } -- -- /* invalid namespaces use block indent */ -- namespace test test2 { -- 111111111111111111111; -- } -- namespace11111111111 { -- 111111111111; -- } -- namespace() { -- 1111111111111; -- } -- namespace() -- { -- 111111111111111111; -- } -- namespace test test2 -- { -- 1111111111111111111; -- } -- namespace111111111 -- { -- 111111111111111111; -- } -- NAMESPACEEND -- -- -- -- JSSTART -- var bar = { -- foo: { -- that: this, -- some: ok, -- }, -- "bar":{ -- a : 2, -- b: "123abc", -- x: 4, -- "y": 5 -- } -- } -- JSEND -- -- -- JSSTART -- var foo = [ -- 1, -- 2, -- 3 -- ]; -- JSEND -- -- -- JSSTART -- function bar() { -- var foo = [ -- 1, -- 2, -- 3 -- ]; -- } -- JSEND -- -- -- JSSTART -- (function($){ -- -- if (cond && -- cond) { -- stmt; -- } -- window.something.left = -- (width - 50 + offset) + "px"; -- 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, -- foobar: [ -- 1, -- 2, -- 3 -- ], -- callback: function(){ -- return true; -- } -- }, 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, -- 2, -- 3 -- ], -- callback: function(){ -- return true; -- } -- }, options||{})); -- } -- JSEND -- -- -- JSSTART -- (function($){ -- function init(options) { -- $(this).data(class_name+'_public',$.extend({},{ -- foo: 'bar', -- bar: 2, -- foobar: [ -- 1, -- 2, -- 3 -- ], -- callback: function(){ -- return true; -- } -- }, options||{})); -- } -- })(jQuery); -- JSEND -- -- -- JSSTART -- // Results of JavaScript indent -- // 1 -- (function(){ -- var a = [ -- 'a', -- 'b', -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- }()) -- -- // 2 -- (function(){ -- var a = [ -- 0 + -- 5 * -- 9 * -- 'a', -- 'b', -- 0 + -- 5 * -- 9 * -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- }()) -- -- // 3 -- (function(){ -- var a = [ -- 0 + -- // comment 1 -- 5 * -- /* comment 2 */ -- 9 * -- 'a', -- 'b', -- 0 + -- 5 * -- 9 * -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- }()) -- -- // 4 -- { -- var a = [ -- 0, -- 1 -- ]; -- var b; -- var c; -- } -- -- // 5 -- { -- var a = [ -- [ -- 0 -- ], -- 2, -- 3 -- ]; -- } -- -- // 6 -- { -- var a = [ -- [ -- 0, -- 1 -- ], -- 2, -- 3 -- ]; -- } -- -- // 7 -- { -- var a = [ -- // [ -- 0, -- // 1 -- // ], -- 2, -- 3 -- ]; -- } -- -- // 8 -- var x = [ -- (function(){ -- var a, -- b, -- c, -- d, -- e, -- f, -- g, -- h, -- i; -- }) -- ]; -- -- // 9 -- var a = [ -- 0 + -- 5 * -- 9 * -- 'a', -- 'b', -- 0 + -- 5 * -- 9 * -- 'c', -- 'd', -- 'e', -- 'f', -- 'g', -- 'h', -- 'i' -- ]; -- -- // 10 -- var a, -- b, -- c, -- d, -- e, -- f, -- g, -- h, -- i; -- JSEND -- -- -- /* start of define */ -- { -- } -- #define AAA \ -- BBB\ -- CCC -- -- #define CNT \ -- 1 + \ -- 2 + \ -- 4 -- /* end of define */ -- -- -- { -- a = second/*bug*/*line; -- x -- } -- ---- 0 ---- -*** ../vim-8.1.1433/src/testdir/test_cindent.vim 2019-05-20 22:12:30.720442793 +0200 ---- src/testdir/test_cindent.vim 2019-05-31 19:57:21.037036126 +0200 -*************** -*** 1,6 **** - " Test for cinoptions and cindent - " -- " TODO: rewrite test3.in into this new style test - - func Test_cino_hash() - " Test that curbuf->b_ind_hash_comment is correctly reset ---- 1,5 ---- -*************** -*** 128,131 **** ---- 127,5254 ---- - bwipe! - endfunc - -+ func Test_cindent_1() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino& sts& -+ -+ let code =<< trim [CODE] -+ /* start of AUTO matically checked vim: set ts=4 : */ -+ { -+ if (test) -+ cmd1; -+ cmd2; -+ } -+ -+ { -+ if (test) -+ cmd1; -+ else -+ cmd2; -+ } -+ -+ { -+ if (test) -+ { -+ cmd1; -+ cmd2; -+ } -+ } -+ -+ { -+ if (test) -+ { -+ cmd1; -+ else -+ } -+ } -+ -+ { -+ while (this) -+ if (test) -+ cmd1; -+ cmd2; -+ } -+ -+ { -+ while (this) -+ if (test) -+ cmd1; -+ else -+ cmd2; -+ } -+ -+ { -+ if (test) -+ { -+ cmd; -+ } -+ -+ if (test) -+ cmd; -+ } -+ -+ { -+ if (test) { -+ cmd; -+ } -+ -+ if (test) cmd; -+ } -+ -+ { -+ cmd1; -+ for (blah) -+ while (this) -+ if (test) -+ cmd2; -+ cmd3; -+ } -+ -+ { -+ cmd1; -+ for (blah) -+ while (this) -+ if (test) -+ cmd2; -+ cmd3; -+ -+ if (test) -+ { -+ cmd1; -+ cmd2; -+ cmd3; -+ } -+ } -+ -+ -+ /* Test for 'cindent' do/while mixed with if/else: */ -+ -+ { -+ do -+ if (asdf) -+ asdfasd; -+ while (cond); -+ -+ do -+ if (asdf) -+ while (asdf) -+ asdf; -+ while (asdf); -+ } -+ -+ /* Test for 'cindent' with two ) on a continuation line */ -+ { -+ if (asdfasdf;asldkfj asdlkfj as;ldkfj sal;d -+ aal;sdkjf ( ;asldfkja;sldfk -+ al;sdjfka ;slkdf ) sa;ldkjfsa dlk;) -+ line up here; -+ } -+ -+ -+ /* C++ tests: */ -+ -+ // foo() these three lines should remain in column 0 -+ // { -+ // } -+ -+ /* Test for continuation and unterminated lines: */ -+ { -+ i = 99 + 14325 + -+ 21345 + -+ 21345 + -+ 21345 + ( 21345 + -+ 21345) + -+ 2345 + -+ 1234; -+ c = 1; -+ } -+ -+ /* -+ testje for indent with empty line -+ -+ here */ -+ -+ { -+ if (testing && -+ not a joke || -+ line up here) -+ hay; -+ if (testing && -+ (not a joke || testing -+ )line up here) -+ hay; -+ if (testing && -+ (not a joke || testing -+ line up here)) -+ hay; -+ } -+ -+ -+ { -+ switch (c) -+ { -+ case xx: -+ do -+ if (asdf) -+ do -+ asdfasdf; -+ while (asdf); -+ else -+ asdfasdf; -+ while (cond); -+ case yy: -+ case xx: -+ case zz: -+ testing; -+ } -+ } -+ -+ { -+ if (cond) { -+ foo; -+ } -+ else -+ { -+ bar; -+ } -+ } -+ -+ { -+ if (alskdfj ;alsdkfjal;skdjf (;sadlkfsa ;dlkf j;alksdfj ;alskdjf -+ alsdkfj (asldk;fj -+ awith cino=(0 ;lf this one goes to below the paren with == -+ ;laksjfd ;lsakdjf ;alskdf asd) -+ asdfasdf;))) -+ asdfasdf; -+ } -+ -+ int -+ func(a, b) -+ int a; -+ int c; -+ { -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3) -+ ) -+ } -+ -+ { -+ while (asd) -+ { -+ if (asdf) -+ if (test) -+ if (that) -+ { -+ if (asdf) -+ do -+ cdasd; -+ while (as -+ df); -+ } -+ else -+ if (asdf) -+ asdf; -+ else -+ asdf; -+ asdf; -+ } -+ } -+ -+ { -+ s = "/*"; b = ';' -+ s = "/*"; b = ';'; -+ a = b; -+ } -+ -+ { -+ switch (a) -+ { -+ case a: -+ switch (t) -+ { -+ case 1: -+ cmd; -+ break; -+ case 2: -+ cmd; -+ break; -+ } -+ cmd; -+ break; -+ case b: -+ { -+ int i; -+ cmd; -+ } -+ break; -+ case c: { -+ int i; -+ cmd; -+ } -+ case d: if (cond && -+ test) { /* this line doesn't work right */ -+ int i; -+ cmd; -+ } -+ break; -+ } -+ } -+ -+ { -+ if (!(vim_strchr(p_cpo, CPO_BUFOPTGLOB) != NULL && entering) && -+ (bp_to->b_p_initialized || -+ (!entering && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) -+ return; -+ label : -+ asdf = asdf ? -+ asdf : asdf; -+ asdf = asdf ? -+ asdf: asdf; -+ } -+ -+ /* Special Comments : This function has the added complexity (compared */ -+ /* : to addtolist) of having to check for a detail */ -+ /* : texture and add that to the list first. */ -+ -+ char *(array[100]) = { -+ "testje", -+ "foo", -+ "bar", -+ } -+ -+ enum soppie -+ { -+ yes = 0, -+ no, -+ maybe -+ }; -+ -+ typedef enum soppie -+ { -+ yes = 0, -+ no, -+ maybe -+ }; -+ -+ static enum -+ { -+ yes = 0, -+ no, -+ maybe -+ } soppie; -+ -+ public static enum -+ { -+ yes = 0, -+ no, -+ maybe -+ } soppie; -+ -+ static private enum -+ { -+ yes = 0, -+ no, -+ maybe -+ } soppie; -+ -+ { -+ int a, -+ b; -+ } -+ -+ { -+ struct Type -+ { -+ int i; -+ char *str; -+ } var[] = -+ { -+ 0, "zero", -+ 1, "one", -+ 2, "two", -+ 3, "three" -+ }; -+ -+ float matrix[3][3] = -+ { -+ { -+ 0, -+ 1, -+ 2 -+ }, -+ { -+ 3, -+ 4, -+ 5 -+ }, -+ { -+ 6, -+ 7, -+ 8 -+ } -+ }; -+ } -+ -+ { -+ /* blah ( blah */ -+ /* where does this go? */ -+ -+ /* blah ( blah */ -+ cmd; -+ -+ func(arg1, -+ /* comment */ -+ arg2); -+ a; -+ { -+ b; -+ { -+ c; /* Hey, NOW it indents?! */ -+ } -+ } -+ -+ { -+ func(arg1, -+ arg2, -+ arg3); -+ /* Hey, what am I doing here? Is this coz of the ","? */ -+ } -+ } -+ -+ main () -+ { -+ if (cond) -+ { -+ a = b; -+ } -+ if (cond) { -+ a = c; -+ } -+ if (cond) -+ a = d; -+ return; -+ } -+ -+ { -+ case 2: if (asdf && -+ asdfasdf) -+ aasdf; -+ a = 9; -+ case 3: if (asdf) -+ aasdf; -+ a = 9; -+ case 4: x = 1; -+ y = 2; -+ -+ label: if (asdf) -+ here; -+ -+ label: if (asdf && -+ asdfasdf) -+ { -+ } -+ -+ label: if (asdf && -+ asdfasdf) { -+ there; -+ } -+ -+ label: if (asdf && -+ asdfasdf) -+ there; -+ } -+ -+ { -+ /* -+ hello with ":set comments= cino=c5" -+ */ -+ -+ /* -+ hello with ":set comments= cino=" -+ */ -+ } -+ -+ -+ { -+ if (a < b) { -+ a = a + 1; -+ } else -+ a = a + 2; -+ -+ if (a) -+ do { -+ testing; -+ } while (asdfasdf); -+ a = b + 1; -+ asdfasdf -+ } -+ -+ { -+ for ( int i = 0; -+ i < 10; i++ ) -+ { -+ } -+ i = 0; -+ } -+ -+ class bob -+ { -+ int foo() {return 1;} -+ int bar; -+ } -+ -+ main() -+ { -+ while(1) -+ if (foo) -+ { -+ bar; -+ } -+ else { -+ asdf; -+ } -+ misplacedline; -+ } -+ -+ { -+ if (clipboard.state == SELECT_DONE -+ && ((row == clipboard.start.lnum -+ && col >= clipboard.start.col) -+ || row > clipboard.start.lnum)) -+ } -+ -+ { -+ if (1) {i += 4;} -+ where_am_i; -+ return 0; -+ } -+ -+ { -+ { -+ } // sdf(asdf -+ if (asdf) -+ asd; -+ } -+ -+ { -+ label1: -+ label2: -+ } -+ -+ { -+ int fooRet = foo(pBar1, false /*fKB*/, -+ true /*fPTB*/, 3 /*nT*/, false /*fDF*/); -+ f() { -+ for ( i = 0; -+ i < m; -+ /* c */ i++ ) { -+ a = b; -+ } -+ } -+ } -+ -+ { -+ f1(/*comment*/); -+ f2(); -+ } -+ -+ { -+ do { -+ if (foo) { -+ } else -+ ; -+ } while (foo); -+ foo(); // was wrong -+ } -+ -+ int x; // no extra indent because of the ; -+ void func() -+ { -+ } -+ -+ char *tab[] = {"aaa", -+ "};", /* }; */ NULL} -+ int indented; -+ {} -+ -+ char *a[] = {"aaa", "bbb", -+ "ccc", NULL}; -+ // here -+ -+ char *tab[] = {"aaa", -+ "xx", /* xx */}; /* asdf */ -+ int not_indented; -+ -+ { -+ do { -+ switch (bla) -+ { -+ case 1: if (foo) -+ bar; -+ } -+ } while (boo); -+ wrong; -+ } -+ -+ int foo, -+ bar; -+ int foo; -+ -+ #if defined(foo) \ -+ && defined(bar) -+ char * xx = "asdf\ -+ foo\ -+ bor"; -+ int x; -+ -+ char *foo = "asdf\ -+ asdf\ -+ asdf", -+ *bar; -+ -+ void f() -+ { -+ #if defined(foo) \ -+ && defined(bar) -+ char *foo = "asdf\ -+ asdf\ -+ asdf", -+ *bar; -+ { -+ int i; -+ char *foo = "asdf\ -+ asdf\ -+ asdf", -+ *bar; -+ } -+ #endif -+ } -+ #endif -+ -+ int y; // comment -+ // comment -+ -+ // comment -+ -+ { -+ Constructor(int a, -+ int b ) : BaseClass(a) -+ { -+ } -+ } -+ -+ void foo() -+ { -+ char one, -+ two; -+ struct bla piet, -+ jan; -+ enum foo kees, -+ jannie; -+ static unsigned sdf, -+ krap; -+ unsigned int piet, -+ jan; -+ int -+ kees, -+ jan; -+ } -+ -+ { -+ t(int f, -+ int d); // ) -+ d(); -+ } -+ -+ Constructor::Constructor(int a, -+ int b -+ ) : -+ BaseClass(a, -+ b, -+ c), -+ mMember(b), -+ { -+ } -+ -+ Constructor::Constructor(int a, -+ int b ) : -+ BaseClass(a) -+ { -+ } -+ -+ Constructor::Constructor(int a, -+ int b ) /*x*/ : /*x*/ BaseClass(a), -+ member(b) -+ { -+ } -+ -+ A::A(int a, int b) -+ : aa(a), -+ bb(b), -+ cc(c) -+ { -+ } -+ -+ class CAbc : -+ public BaseClass1, -+ protected BaseClass2 -+ { -+ int Test() { return FALSE; } -+ int Test1() { return TRUE; } -+ -+ CAbc(int a, int b ) : -+ BaseClass(a) -+ { -+ switch(xxx) -+ { -+ case abc: -+ asdf(); -+ break; -+ -+ case 999: -+ baer(); -+ break; -+ } -+ } -+ -+ public: // <-- this was incoreectly indented before!! -+ void testfall(); -+ protected: -+ void testfall(); -+ }; -+ -+ class CAbc : public BaseClass1, -+ protected BaseClass2 -+ { -+ }; -+ -+ static struct -+ { -+ int a; -+ int b; -+ } variable[COUNT] = -+ { -+ { -+ 123, -+ 456 -+ }, -+ { -+ 123, -+ 456 -+ } -+ }; -+ -+ static struct -+ { -+ int a; -+ int b; -+ } variable[COUNT] = -+ { -+ { 123, 456 }, -+ { 123, 456 } -+ }; -+ -+ void asdf() /* ind_maxparen may cause trouble here */ -+ { -+ if ((0 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1)) break; -+ } -+ -+ foo() -+ { -+ a = cond ? foo() : asdf -+ + asdf; -+ -+ a = cond ? -+ foo() : asdf -+ + asdf; -+ } -+ -+ int main(void) -+ { -+ if (a) -+ if (b) -+ 2; -+ else 3; -+ next_line_of_code(); -+ } -+ -+ barry() -+ { -+ Foo::Foo (int one, -+ int two) -+ : something(4) -+ {} -+ } -+ -+ barry() -+ { -+ Foo::Foo (int one, int two) -+ : something(4) -+ {} -+ } -+ -+ Constructor::Constructor(int a, -+ int b -+ ) : -+ BaseClass(a, -+ b, -+ c), -+ mMember(b) -+ { -+ } -+ int main () -+ { -+ if (lala) -+ do -+ ++(*lolo); -+ while (lili -+ && lele); -+ lulu; -+ } -+ -+ int main () -+ { -+ switch (c) -+ { -+ case 'c': if (cond) -+ { -+ } -+ } -+ } -+ -+ main() -+ { -+ (void) MyFancyFuasdfadsfnction( -+ argument); -+ } -+ -+ main() -+ { -+ char foo[] = "/*"; -+ /* as -+ df */ -+ hello -+ } -+ -+ /* valid namespaces with normal indent */ -+ namespace -+ { -+ { -+ 111111111111; -+ } -+ } -+ namespace /* test */ -+ { -+ 11111111111111111; -+ } -+ namespace // test -+ { -+ 111111111111111111; -+ } -+ namespace -+ { -+ 111111111111111111; -+ } -+ namespace test -+ { -+ 111111111111111111; -+ } -+ namespace{ -+ 111111111111111111; -+ } -+ namespace test{ -+ 111111111111111111; -+ } -+ namespace { -+ 111111111111111111; -+ } -+ namespace test { -+ 111111111111111111; -+ namespace test2 { -+ 22222222222222222; -+ } -+ } -+ -+ /* invalid namespaces use block indent */ -+ namespace test test2 { -+ 111111111111111111111; -+ } -+ namespace11111111111 { -+ 111111111111; -+ } -+ namespace() { -+ 1111111111111; -+ } -+ namespace() -+ { -+ 111111111111111111; -+ } -+ namespace test test2 -+ { -+ 1111111111111111111; -+ } -+ namespace111111111 -+ { -+ 111111111111111111; -+ } -+ -+ void getstring() { -+ /* Raw strings */ -+ const char* s = R"( -+ test { -+ # comment -+ field: 123 -+ } -+ )"; -+ } -+ -+ void getstring() { -+ const char* s = R"foo( -+ test { -+ # comment -+ field: 123 -+ } -+ )foo"; -+ } -+ -+ { -+ int a[4] = { -+ [0] = 0, -+ [1] = 1, -+ [2] = 2, -+ [3] = 3, -+ }; -+ } -+ -+ { -+ a = b[2] -+ + 3; -+ } -+ -+ { -+ if (1) -+ /* aaaaa -+ * bbbbb -+ */ -+ a = 1; -+ } -+ -+ void func() -+ { -+ switch (foo) -+ { -+ case (bar): -+ if (baz()) -+ quux(); -+ break; -+ case (shmoo): -+ if (!bar) -+ { -+ } -+ case (foo1): -+ switch (bar) -+ { -+ case baz: -+ baz_f(); -+ break; -+ } -+ break; -+ default: -+ baz(); -+ baz(); -+ break; -+ } -+ } -+ -+ /* end of AUTO */ -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('start of AUTO') -+ exe "normal =/end of AUTO\<CR>" -+ -+ let expected =<< trim [CODE] -+ /* start of AUTO matically checked vim: set ts=4 : */ -+ { -+ if (test) -+ cmd1; -+ cmd2; -+ } -+ -+ { -+ if (test) -+ cmd1; -+ else -+ cmd2; -+ } -+ -+ { -+ if (test) -+ { -+ cmd1; -+ cmd2; -+ } -+ } -+ -+ { -+ if (test) -+ { -+ cmd1; -+ else -+ } -+ } -+ -+ { -+ while (this) -+ if (test) -+ cmd1; -+ cmd2; -+ } -+ -+ { -+ while (this) -+ if (test) -+ cmd1; -+ else -+ cmd2; -+ } -+ -+ { -+ if (test) -+ { -+ cmd; -+ } -+ -+ if (test) -+ cmd; -+ } -+ -+ { -+ if (test) { -+ cmd; -+ } -+ -+ if (test) cmd; -+ } -+ -+ { -+ cmd1; -+ for (blah) -+ while (this) -+ if (test) -+ cmd2; -+ cmd3; -+ } -+ -+ { -+ cmd1; -+ for (blah) -+ while (this) -+ if (test) -+ cmd2; -+ cmd3; -+ -+ if (test) -+ { -+ cmd1; -+ cmd2; -+ cmd3; -+ } -+ } -+ -+ -+ /* Test for 'cindent' do/while mixed with if/else: */ -+ -+ { -+ do -+ if (asdf) -+ asdfasd; -+ while (cond); -+ -+ do -+ if (asdf) -+ while (asdf) -+ asdf; -+ while (asdf); -+ } -+ -+ /* Test for 'cindent' with two ) on a continuation line */ -+ { -+ if (asdfasdf;asldkfj asdlkfj as;ldkfj sal;d -+ aal;sdkjf ( ;asldfkja;sldfk -+ al;sdjfka ;slkdf ) sa;ldkjfsa dlk;) -+ line up here; -+ } -+ -+ -+ /* C++ tests: */ -+ -+ // foo() these three lines should remain in column 0 -+ // { -+ // } -+ -+ /* Test for continuation and unterminated lines: */ -+ { -+ i = 99 + 14325 + -+ 21345 + -+ 21345 + -+ 21345 + ( 21345 + -+ 21345) + -+ 2345 + -+ 1234; -+ c = 1; -+ } -+ -+ /* -+ testje for indent with empty line -+ -+ here */ -+ -+ { -+ if (testing && -+ not a joke || -+ line up here) -+ hay; -+ if (testing && -+ (not a joke || testing -+ )line up here) -+ hay; -+ if (testing && -+ (not a joke || testing -+ line up here)) -+ hay; -+ } -+ -+ -+ { -+ switch (c) -+ { -+ case xx: -+ do -+ if (asdf) -+ do -+ asdfasdf; -+ while (asdf); -+ else -+ asdfasdf; -+ while (cond); -+ case yy: -+ case xx: -+ case zz: -+ testing; -+ } -+ } -+ -+ { -+ if (cond) { -+ foo; -+ } -+ else -+ { -+ bar; -+ } -+ } -+ -+ { -+ if (alskdfj ;alsdkfjal;skdjf (;sadlkfsa ;dlkf j;alksdfj ;alskdjf -+ alsdkfj (asldk;fj -+ awith cino=(0 ;lf this one goes to below the paren with == -+ ;laksjfd ;lsakdjf ;alskdf asd) -+ asdfasdf;))) -+ asdfasdf; -+ } -+ -+ int -+ func(a, b) -+ int a; -+ int c; -+ { -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3) -+ ) -+ } -+ -+ { -+ while (asd) -+ { -+ if (asdf) -+ if (test) -+ if (that) -+ { -+ if (asdf) -+ do -+ cdasd; -+ while (as -+ df); -+ } -+ else -+ if (asdf) -+ asdf; -+ else -+ asdf; -+ asdf; -+ } -+ } -+ -+ { -+ s = "/*"; b = ';' -+ s = "/*"; b = ';'; -+ a = b; -+ } -+ -+ { -+ switch (a) -+ { -+ case a: -+ switch (t) -+ { -+ case 1: -+ cmd; -+ break; -+ case 2: -+ cmd; -+ break; -+ } -+ cmd; -+ break; -+ case b: -+ { -+ int i; -+ cmd; -+ } -+ break; -+ case c: { -+ int i; -+ cmd; -+ } -+ case d: if (cond && -+ test) { /* this line doesn't work right */ -+ int i; -+ cmd; -+ } -+ break; -+ } -+ } -+ -+ { -+ if (!(vim_strchr(p_cpo, CPO_BUFOPTGLOB) != NULL && entering) && -+ (bp_to->b_p_initialized || -+ (!entering && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) -+ return; -+ label : -+ asdf = asdf ? -+ asdf : asdf; -+ asdf = asdf ? -+ asdf: asdf; -+ } -+ -+ /* Special Comments : This function has the added complexity (compared */ -+ /* : to addtolist) of having to check for a detail */ -+ /* : texture and add that to the list first. */ -+ -+ char *(array[100]) = { -+ "testje", -+ "foo", -+ "bar", -+ } -+ -+ enum soppie -+ { -+ yes = 0, -+ no, -+ maybe -+ }; -+ -+ typedef enum soppie -+ { -+ yes = 0, -+ no, -+ maybe -+ }; -+ -+ static enum -+ { -+ yes = 0, -+ no, -+ maybe -+ } soppie; -+ -+ public static enum -+ { -+ yes = 0, -+ no, -+ maybe -+ } soppie; -+ -+ static private enum -+ { -+ yes = 0, -+ no, -+ maybe -+ } soppie; -+ -+ { -+ int a, -+ b; -+ } -+ -+ { -+ struct Type -+ { -+ int i; -+ char *str; -+ } var[] = -+ { -+ 0, "zero", -+ 1, "one", -+ 2, "two", -+ 3, "three" -+ }; -+ -+ float matrix[3][3] = -+ { -+ { -+ 0, -+ 1, -+ 2 -+ }, -+ { -+ 3, -+ 4, -+ 5 -+ }, -+ { -+ 6, -+ 7, -+ 8 -+ } -+ }; -+ } -+ -+ { -+ /* blah ( blah */ -+ /* where does this go? */ -+ -+ /* blah ( blah */ -+ cmd; -+ -+ func(arg1, -+ /* comment */ -+ arg2); -+ a; -+ { -+ b; -+ { -+ c; /* Hey, NOW it indents?! */ -+ } -+ } -+ -+ { -+ func(arg1, -+ arg2, -+ arg3); -+ /* Hey, what am I doing here? Is this coz of the ","? */ -+ } -+ } -+ -+ main () -+ { -+ if (cond) -+ { -+ a = b; -+ } -+ if (cond) { -+ a = c; -+ } -+ if (cond) -+ a = d; -+ return; -+ } -+ -+ { -+ case 2: if (asdf && -+ asdfasdf) -+ aasdf; -+ a = 9; -+ case 3: if (asdf) -+ aasdf; -+ a = 9; -+ case 4: x = 1; -+ y = 2; -+ -+ label: if (asdf) -+ here; -+ -+ label: if (asdf && -+ asdfasdf) -+ { -+ } -+ -+ label: if (asdf && -+ asdfasdf) { -+ there; -+ } -+ -+ label: if (asdf && -+ asdfasdf) -+ there; -+ } -+ -+ { -+ /* -+ hello with ":set comments= cino=c5" -+ */ -+ -+ /* -+ hello with ":set comments= cino=" -+ */ -+ } -+ -+ -+ { -+ if (a < b) { -+ a = a + 1; -+ } else -+ a = a + 2; -+ -+ if (a) -+ do { -+ testing; -+ } while (asdfasdf); -+ a = b + 1; -+ asdfasdf -+ } -+ -+ { -+ for ( int i = 0; -+ i < 10; i++ ) -+ { -+ } -+ i = 0; -+ } -+ -+ class bob -+ { -+ int foo() {return 1;} -+ int bar; -+ } -+ -+ main() -+ { -+ while(1) -+ if (foo) -+ { -+ bar; -+ } -+ else { -+ asdf; -+ } -+ misplacedline; -+ } -+ -+ { -+ if (clipboard.state == SELECT_DONE -+ && ((row == clipboard.start.lnum -+ && col >= clipboard.start.col) -+ || row > clipboard.start.lnum)) -+ } -+ -+ { -+ if (1) {i += 4;} -+ where_am_i; -+ return 0; -+ } -+ -+ { -+ { -+ } // sdf(asdf -+ if (asdf) -+ asd; -+ } -+ -+ { -+ label1: -+ label2: -+ } -+ -+ { -+ int fooRet = foo(pBar1, false /*fKB*/, -+ true /*fPTB*/, 3 /*nT*/, false /*fDF*/); -+ f() { -+ for ( i = 0; -+ i < m; -+ /* c */ i++ ) { -+ a = b; -+ } -+ } -+ } -+ -+ { -+ f1(/*comment*/); -+ f2(); -+ } -+ -+ { -+ do { -+ if (foo) { -+ } else -+ ; -+ } while (foo); -+ foo(); // was wrong -+ } -+ -+ int x; // no extra indent because of the ; -+ void func() -+ { -+ } -+ -+ char *tab[] = {"aaa", -+ "};", /* }; */ NULL} -+ int indented; -+ {} -+ -+ char *a[] = {"aaa", "bbb", -+ "ccc", NULL}; -+ // here -+ -+ char *tab[] = {"aaa", -+ "xx", /* xx */}; /* asdf */ -+ int not_indented; -+ -+ { -+ do { -+ switch (bla) -+ { -+ case 1: if (foo) -+ bar; -+ } -+ } while (boo); -+ wrong; -+ } -+ -+ int foo, -+ bar; -+ int foo; -+ -+ #if defined(foo) \ -+ && defined(bar) -+ char * xx = "asdf\ -+ foo\ -+ bor"; -+ int x; -+ -+ char *foo = "asdf\ -+ asdf\ -+ asdf", -+ *bar; -+ -+ void f() -+ { -+ #if defined(foo) \ -+ && defined(bar) -+ char *foo = "asdf\ -+ asdf\ -+ asdf", -+ *bar; -+ { -+ int i; -+ char *foo = "asdf\ -+ asdf\ -+ asdf", -+ *bar; -+ } -+ #endif -+ } -+ #endif -+ -+ int y; // comment -+ // comment -+ -+ // comment -+ -+ { -+ Constructor(int a, -+ int b ) : BaseClass(a) -+ { -+ } -+ } -+ -+ void foo() -+ { -+ char one, -+ two; -+ struct bla piet, -+ jan; -+ enum foo kees, -+ jannie; -+ static unsigned sdf, -+ krap; -+ unsigned int piet, -+ jan; -+ int -+ kees, -+ jan; -+ } -+ -+ { -+ t(int f, -+ int d); // ) -+ d(); -+ } -+ -+ Constructor::Constructor(int a, -+ int b -+ ) : -+ BaseClass(a, -+ b, -+ c), -+ mMember(b), -+ { -+ } -+ -+ Constructor::Constructor(int a, -+ int b ) : -+ BaseClass(a) -+ { -+ } -+ -+ Constructor::Constructor(int a, -+ int b ) /*x*/ : /*x*/ BaseClass(a), -+ member(b) -+ { -+ } -+ -+ A::A(int a, int b) -+ : aa(a), -+ bb(b), -+ cc(c) -+ { -+ } -+ -+ class CAbc : -+ public BaseClass1, -+ protected BaseClass2 -+ { -+ int Test() { return FALSE; } -+ int Test1() { return TRUE; } -+ -+ CAbc(int a, int b ) : -+ BaseClass(a) -+ { -+ switch(xxx) -+ { -+ case abc: -+ asdf(); -+ break; -+ -+ case 999: -+ baer(); -+ break; -+ } -+ } -+ -+ public: // <-- this was incoreectly indented before!! -+ void testfall(); -+ protected: -+ void testfall(); -+ }; -+ -+ class CAbc : public BaseClass1, -+ protected BaseClass2 -+ { -+ }; -+ -+ static struct -+ { -+ int a; -+ int b; -+ } variable[COUNT] = -+ { -+ { -+ 123, -+ 456 -+ }, -+ { -+ 123, -+ 456 -+ } -+ }; -+ -+ static struct -+ { -+ int a; -+ int b; -+ } variable[COUNT] = -+ { -+ { 123, 456 }, -+ { 123, 456 } -+ }; -+ -+ void asdf() /* ind_maxparen may cause trouble here */ -+ { -+ if ((0 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1 -+ && 1)) break; -+ } -+ -+ foo() -+ { -+ a = cond ? foo() : asdf -+ + asdf; -+ -+ a = cond ? -+ foo() : asdf -+ + asdf; -+ } -+ -+ int main(void) -+ { -+ if (a) -+ if (b) -+ 2; -+ else 3; -+ next_line_of_code(); -+ } -+ -+ barry() -+ { -+ Foo::Foo (int one, -+ int two) -+ : something(4) -+ {} -+ } -+ -+ barry() -+ { -+ Foo::Foo (int one, int two) -+ : something(4) -+ {} -+ } -+ -+ Constructor::Constructor(int a, -+ int b -+ ) : -+ BaseClass(a, -+ b, -+ c), -+ mMember(b) -+ { -+ } -+ int main () -+ { -+ if (lala) -+ do -+ ++(*lolo); -+ while (lili -+ && lele); -+ lulu; -+ } -+ -+ int main () -+ { -+ switch (c) -+ { -+ case 'c': if (cond) -+ { -+ } -+ } -+ } -+ -+ main() -+ { -+ (void) MyFancyFuasdfadsfnction( -+ argument); -+ } -+ -+ main() -+ { -+ char foo[] = "/*"; -+ /* as -+ df */ -+ hello -+ } -+ -+ /* valid namespaces with normal indent */ -+ namespace -+ { -+ { -+ 111111111111; -+ } -+ } -+ namespace /* test */ -+ { -+ 11111111111111111; -+ } -+ namespace // test -+ { -+ 111111111111111111; -+ } -+ namespace -+ { -+ 111111111111111111; -+ } -+ namespace test -+ { -+ 111111111111111111; -+ } -+ namespace{ -+ 111111111111111111; -+ } -+ namespace test{ -+ 111111111111111111; -+ } -+ namespace { -+ 111111111111111111; -+ } -+ namespace test { -+ 111111111111111111; -+ namespace test2 { -+ 22222222222222222; -+ } -+ } -+ -+ /* invalid namespaces use block indent */ -+ namespace test test2 { -+ 111111111111111111111; -+ } -+ namespace11111111111 { -+ 111111111111; -+ } -+ namespace() { -+ 1111111111111; -+ } -+ namespace() -+ { -+ 111111111111111111; -+ } -+ namespace test test2 -+ { -+ 1111111111111111111; -+ } -+ namespace111111111 -+ { -+ 111111111111111111; -+ } -+ -+ void getstring() { -+ /* Raw strings */ -+ const char* s = R"( -+ test { -+ # comment -+ field: 123 -+ } -+ )"; -+ } -+ -+ void getstring() { -+ const char* s = R"foo( -+ test { -+ # comment -+ field: 123 -+ } -+ )foo"; -+ } -+ -+ { -+ int a[4] = { -+ [0] = 0, -+ [1] = 1, -+ [2] = 2, -+ [3] = 3, -+ }; -+ } -+ -+ { -+ a = b[2] -+ + 3; -+ } -+ -+ { -+ if (1) -+ /* aaaaa -+ * bbbbb -+ */ -+ a = 1; -+ } -+ -+ void func() -+ { -+ switch (foo) -+ { -+ case (bar): -+ if (baz()) -+ quux(); -+ break; -+ case (shmoo): -+ if (!bar) -+ { -+ } -+ case (foo1): -+ switch (bar) -+ { -+ case baz: -+ baz_f(); -+ break; -+ } -+ break; -+ default: -+ baz(); -+ baz(); -+ break; -+ } -+ } -+ -+ /* end of AUTO */ -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_2() -+ new -+ setl cindent ts=4 sw=4 -+ setl tw=0 noai fo=croq -+ let &wm = &columns - 20 -+ -+ let code =<< trim [CODE] -+ { -+ -+ /* this is -+ * a real serious important big -+ * comment -+ */ -+ /* insert " about life, the universe, and the rest" after "serious" */ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('serious', 'e') -+ normal a about life, the universe, and the rest -+ -+ let expected =<< trim [CODE] -+ { -+ -+ /* this is -+ * a real serious -+ * about life, the -+ * universe, and the -+ * rest important big -+ * comment -+ */ -+ /* insert " about life, the universe, and the rest" after "serious" */ -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ set wm& -+ enew! | close -+ endfunc -+ -+ func Test_cindent_3() -+ new -+ setl nocindent ts=4 sw=4 -+ -+ let code =<< trim [CODE] -+ { -+ /* -+ * Testing for comments, without 'cin' set -+ */ -+ -+ /* -+ * what happens here? -+ */ -+ -+ /* -+ the end of the comment, try inserting a line below */ -+ -+ /* how about -+ this one */ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('comments') -+ normal joabout life -+ call search('happens') -+ normal jothere -+ call search('below') -+ normal oline -+ call search('this') -+ normal Ohello -+ -+ let expected =<< trim [CODE] -+ { -+ /* -+ * Testing for comments, without 'cin' set -+ */ -+ about life -+ -+ /* -+ * what happens here? -+ */ -+ there -+ -+ /* -+ the end of the comment, try inserting a line below */ -+ line -+ -+ /* how about -+ hello -+ this one */ -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_4() -+ new -+ setl cindent ts=4 sw=4 -+ -+ let code =<< trim [CODE] -+ { -+ var = this + that + vec[0] * vec[0] -+ + vec[1] * vec[1] -+ + vec2[2] * vec[2]; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('vec2') -+ normal == -+ -+ let expected =<< trim [CODE] -+ { -+ var = this + that + vec[0] * vec[0] -+ + vec[1] * vec[1] -+ + vec2[2] * vec[2]; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_5() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=}4 -+ -+ let code =<< trim [CODE] -+ { -+ asdf asdflkajds f; -+ if (tes & ting) { -+ asdf asdf asdf ; -+ asdfa sdf asdf; -+ } -+ testing1; -+ if (tes & ting) -+ { -+ asdf asdf asdf ; -+ asdfa sdf asdf; -+ } -+ testing2; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('testing1') -+ exe "normal k2==/testing2\<CR>" -+ normal k2== -+ -+ let expected =<< trim [CODE] -+ { -+ asdf asdflkajds f; -+ if (tes & ting) { -+ asdf asdf asdf ; -+ asdfa sdf asdf; -+ } -+ testing1; -+ if (tes & ting) -+ { -+ asdf asdf asdf ; -+ asdfa sdf asdf; -+ } -+ testing2; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_6() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0,)20 -+ -+ let code =<< trim [CODE] -+ main ( int first_par, /* -+ * Comment for -+ * first par -+ */ -+ int second_par /* -+ * Comment for -+ * second par -+ */ -+ ) -+ { -+ func( first_par, /* -+ * Comment for -+ * first par -+ */ -+ second_par /* -+ * Comment for -+ * second par -+ */ -+ ); -+ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('main') -+ normal =][ -+ -+ let expected =<< trim [CODE] -+ main ( int first_par, /* -+ * Comment for -+ * first par -+ */ -+ int second_par /* -+ * Comment for -+ * second par -+ */ -+ ) -+ { -+ func( first_par, /* -+ * Comment for -+ * first par -+ */ -+ second_par /* -+ * Comment for -+ * second par -+ */ -+ ); -+ -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_7() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=es,n0s -+ -+ let code =<< trim [CODE] -+ main(void) -+ { -+ /* Make sure that cino=X0s is not parsed like cino=Xs. */ -+ if (cond) -+ foo(); -+ else -+ { -+ bar(); -+ } -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('main') -+ normal =][ -+ -+ let expected =<< trim [CODE] -+ main(void) -+ { -+ /* Make sure that cino=X0s is not parsed like cino=Xs. */ -+ if (cond) -+ foo(); -+ else -+ { -+ bar(); -+ } -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_8() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino= -+ -+ let code =<< trim [CODE] -+ -+ { -+ do -+ { -+ if () -+ { -+ if () -+ asdf; -+ else -+ asdf; -+ } -+ } while (); -+ cmd; /* this should go under the } */ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ -+ { -+ do -+ { -+ if () -+ { -+ if () -+ asdf; -+ else -+ asdf; -+ } -+ } while (); -+ cmd; /* this should go under the } */ -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_9() -+ new -+ setl cindent ts=4 sw=4 -+ -+ let code =<< trim [CODE] -+ -+ void f() -+ { -+ if ( k() ) { -+ l(); -+ -+ } else { /* Start (two words) end */ -+ m(); -+ } -+ -+ n(); -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ -+ void f() -+ { -+ if ( k() ) { -+ l(); -+ -+ } else { /* Start (two words) end */ -+ m(); -+ } -+ -+ n(); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_10() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino={s,e-s -+ -+ let code =<< trim [CODE] -+ -+ void f() -+ { -+ if ( k() ) -+ { -+ l(); -+ } else { /* Start (two words) end */ -+ m(); -+ } -+ n(); /* should be under the if () */ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ -+ void f() -+ { -+ if ( k() ) -+ { -+ l(); -+ } else { /* Start (two words) end */ -+ m(); -+ } -+ n(); /* should be under the if () */ -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_11() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino={s,fs -+ -+ let code =<< trim [CODE] -+ void bar(void) -+ { -+ static array[2][2] = -+ { -+ { 1, 2 }, -+ { 3, 4 }, -+ } -+ -+ while (a) -+ { -+ foo(&a); -+ } -+ -+ { -+ int a; -+ { -+ a = a + 1; -+ } -+ } -+ b = a; -+ } -+ -+ void func(void) -+ { -+ a = 1; -+ { -+ b = 2; -+ } -+ c = 3; -+ d = 4; -+ } -+ /* foo */ -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ exe "normal ]]=/ foo\<CR>" -+ -+ let expected =<< trim [CODE] -+ void bar(void) -+ { -+ static array[2][2] = -+ { -+ { 1, 2 }, -+ { 3, 4 }, -+ } -+ -+ while (a) -+ { -+ foo(&a); -+ } -+ -+ { -+ int a; -+ { -+ a = a + 1; -+ } -+ } -+ b = a; -+ } -+ -+ void func(void) -+ { -+ a = 1; -+ { -+ b = 2; -+ } -+ c = 3; -+ d = 4; -+ } -+ /* foo */ -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_12() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino= -+ -+ let code =<< trim [CODE] -+ a() -+ { -+ do { -+ a = a + -+ a; -+ } while ( a ); /* add text under this line */ -+ if ( a ) -+ a; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('while') -+ normal ohere -+ -+ let expected =<< trim [CODE] -+ a() -+ { -+ do { -+ a = a + -+ a; -+ } while ( a ); /* add text under this line */ -+ here -+ if ( a ) -+ a; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_13() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino= com= -+ -+ let code =<< trim [CODE] -+ a() -+ { -+ label1: -+ /* hmm */ -+ // comment -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('comment') -+ exe "normal olabel2: b();\rlabel3 /* post */:\r/* pre */ label4:\r" . -+ \ "f(/*com*/);\rif (/*com*/)\rcmd();" -+ -+ let expected =<< trim [CODE] -+ a() -+ { -+ label1: -+ /* hmm */ -+ // comment -+ label2: b(); -+ label3 /* post */: -+ /* pre */ label4: -+ f(/*com*/); -+ if (/*com*/) -+ cmd(); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_14() -+ new -+ setl cindent ts=4 sw=4 -+ setl comments& comments^=s:/*,m:**,ex:*/ -+ -+ let code =<< trim [CODE] -+ /* -+ * A simple comment -+ */ -+ -+ /* -+ ** A different comment -+ */ -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('simple') -+ normal =5j -+ -+ let expected =<< trim [CODE] -+ /* -+ * A simple comment -+ */ -+ -+ /* -+ ** A different comment -+ */ -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_15() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=c0 -+ setl comments& comments-=s1:/* comments^=s0:/* -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ -+ /********* -+ A comment. -+ *********/ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ -+ /********* -+ A comment. -+ *********/ -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_16() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=c0,C1 -+ setl comments& comments-=s1:/* comments^=s0:/* -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ -+ /********* -+ A comment. -+ *********/ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ -+ /********* -+ A comment. -+ *********/ -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_17() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino= -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_18() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(s -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_19() -+ new -+ setl cindent ts=4 sw=4 -+ set cino=(s,U1 -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_20() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0 -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_21() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0,w1 -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_22() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(s -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ c = c1 && ( -+ c2 || -+ c3 -+ ) && c4; -+ if ( -+ c1 && c2 -+ ) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ c = c1 && ( -+ c2 || -+ c3 -+ ) && c4; -+ if ( -+ c1 && c2 -+ ) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_23() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(s,m1 -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ c = c1 && ( -+ c2 || -+ c3 -+ ) && c4; -+ if ( -+ c1 && c2 -+ ) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ c = c1 && ( -+ c2 || -+ c3 -+ ) && c4; -+ if ( -+ c1 && c2 -+ ) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_24() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=b1 -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ switch (x) -+ { -+ case 1: -+ a = b; -+ break; -+ default: -+ a = 0; -+ break; -+ } -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ switch (x) -+ { -+ case 1: -+ a = b; -+ break; -+ default: -+ a = 0; -+ break; -+ } -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_25() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0,W5 -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ invokeme( -+ argu, -+ ment); -+ invokeme( -+ argu, -+ ment -+ ); -+ invokeme(argu, -+ ment -+ ); -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ invokeme( -+ argu, -+ ment); -+ invokeme( -+ argu, -+ ment -+ ); -+ invokeme(argu, -+ ment -+ ); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_26() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=/6 -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ statement; -+ // comment 1 -+ // comment 2 -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ statement; -+ // comment 1 -+ // comment 2 -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_27() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino= -+ -+ let code =<< trim [CODE] -+ void f() -+ { -+ statement; -+ // comment 1 -+ // comment 2 -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ exe "normal ]]/comment 1/+1\<CR>==" -+ -+ let expected =<< trim [CODE] -+ void f() -+ { -+ statement; -+ // comment 1 -+ // comment 2 -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_28() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=g0 -+ -+ let code =<< trim [CODE] -+ class CAbc -+ { -+ int Test() { return FALSE; } -+ -+ public: // comment -+ void testfall(); -+ protected: -+ void testfall(); -+ }; -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ class CAbc -+ { -+ int Test() { return FALSE; } -+ -+ public: // comment -+ void testfall(); -+ protected: -+ void testfall(); -+ }; -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_29() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0,gs,hs -+ -+ let code =<< trim [CODE] -+ class Foo : public Bar -+ { -+ public: -+ virtual void method1(void) = 0; -+ virtual void method2(int arg1, -+ int arg2, -+ int arg3) = 0; -+ }; -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ class Foo : public Bar -+ { -+ public: -+ virtual void method1(void) = 0; -+ virtual void method2(int arg1, -+ int arg2, -+ int arg3) = 0; -+ }; -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_30() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=+20 -+ -+ let code =<< trim [CODE] -+ void -+ foo() -+ { -+ if (a) -+ { -+ } else -+ asdf; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void -+ foo() -+ { -+ if (a) -+ { -+ } else -+ asdf; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_31() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0,W2s -+ -+ let code =<< trim [CODE] -+ -+ { -+ averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( -+ asdasdf, -+ func(asdf, -+ asdfadsf), -+ asdfasdf -+ ); -+ -+ /* those are ugly, but consequent */ -+ -+ func()->asd(asdasdf, -+ averylongfunctionname( -+ abc, -+ dec)->averylongfunctionname( -+ asdfadsf, -+ asdfasdf, -+ asdfasdf, -+ ), -+ func(asdfadf, -+ asdfasdf -+ ), -+ asdasdf -+ ); -+ -+ averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf( -+ abc, -+ dec)->asdfasdfasdf( -+ asdfadsf, -+ asdfasdf, -+ asdfasdf, -+ ), -+ func(asdfadf, -+ asdfasdf), -+ asdasdf -+ ); -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ -+ { -+ averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( -+ asdasdf, -+ func(asdf, -+ asdfadsf), -+ asdfasdf -+ ); -+ -+ /* those are ugly, but consequent */ -+ -+ func()->asd(asdasdf, -+ averylongfunctionname( -+ abc, -+ dec)->averylongfunctionname( -+ asdfadsf, -+ asdfasdf, -+ asdfasdf, -+ ), -+ func(asdfadf, -+ asdfasdf -+ ), -+ asdasdf -+ ); -+ -+ averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf( -+ abc, -+ dec)->asdfasdfasdf( -+ asdfadsf, -+ asdfasdf, -+ asdfasdf, -+ ), -+ func(asdfadf, -+ asdfasdf), -+ asdasdf -+ ); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_32() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=M1 -+ -+ let code =<< trim [CODE] -+ int main () -+ { -+ if (cond1 && -+ cond2 -+ ) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ int main () -+ { -+ if (cond1 && -+ cond2 -+ ) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_33() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0,ts -+ -+ let code =<< trim [CODE] -+ void func(int a -+ #if defined(FOO) -+ , int b -+ , int c -+ #endif -+ ) -+ { -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal 2j=][ -+ -+ let expected =<< trim [CODE] -+ void func(int a -+ #if defined(FOO) -+ , int b -+ , int c -+ #endif -+ ) -+ { -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_34() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=(0 -+ -+ let code =<< trim [CODE] -+ -+ void -+ func(int a -+ #if defined(FOO) -+ , int b -+ , int c -+ #endif -+ ) -+ { -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal =][ -+ -+ let expected =<< trim [CODE] -+ -+ void -+ func(int a -+ #if defined(FOO) -+ , int b -+ , int c -+ #endif -+ ) -+ { -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_35() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino& -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if(x==y) -+ if(y==z) -+ foo=1; -+ else { bar=1; -+ baz=2; -+ } -+ printf("Foo!\n"); -+ } -+ -+ void func1(void) -+ { -+ char* tab[] = {"foo", "bar", -+ "baz", "quux", -+ "this line used", "to be indented incorrectly"}; -+ foo(); -+ } -+ -+ void func2(void) -+ { -+ int tab[] = -+ {1, 2, -+ 3, 4, -+ 5, 6}; -+ -+ printf("This line used to be indented incorrectly.\n"); -+ } -+ -+ int foo[] -+ #ifdef BAR -+ -+ = { 1, 2, 3, -+ 4, 5, 6 } -+ -+ #endif -+ ; -+ int baz; -+ -+ void func3(void) -+ { -+ int tab[] = { -+ 1, 2, -+ 3, 4, -+ 5, 6}; -+ -+ printf("Don't you dare indent this line incorrectly!\n"); -+ } -+ -+ void -+ func4(a, b, -+ c) -+ int a; -+ int b; -+ int c; -+ { -+ } -+ -+ void -+ func5( -+ int a, -+ int b) -+ { -+ } -+ -+ void -+ func6( -+ int a) -+ { -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=7][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if(x==y) -+ if(y==z) -+ foo=1; -+ else { bar=1; -+ baz=2; -+ } -+ printf("Foo!\n"); -+ } -+ -+ void func1(void) -+ { -+ char* tab[] = {"foo", "bar", -+ "baz", "quux", -+ "this line used", "to be indented incorrectly"}; -+ foo(); -+ } -+ -+ void func2(void) -+ { -+ int tab[] = -+ {1, 2, -+ 3, 4, -+ 5, 6}; -+ -+ printf("This line used to be indented incorrectly.\n"); -+ } -+ -+ int foo[] -+ #ifdef BAR -+ -+ = { 1, 2, 3, -+ 4, 5, 6 } -+ -+ #endif -+ ; -+ int baz; -+ -+ void func3(void) -+ { -+ int tab[] = { -+ 1, 2, -+ 3, 4, -+ 5, 6}; -+ -+ printf("Don't you dare indent this line incorrectly!\n"); -+ } -+ -+ void -+ func4(a, b, -+ c) -+ int a; -+ int b; -+ int c; -+ { -+ } -+ -+ void -+ func5( -+ int a, -+ int b) -+ { -+ } -+ -+ void -+ func6( -+ int a) -+ { -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_36() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino& -+ setl cino+=l1 -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ int tab[] = -+ { -+ 1, 2, 3, -+ 4, 5, 6}; -+ -+ printf("Indent this line correctly!\n"); -+ -+ switch (foo) -+ { -+ case bar: -+ printf("bar"); -+ break; -+ case baz: { -+ printf("baz"); -+ break; -+ } -+ case quux: -+ printf("But don't break the indentation of this instruction\n"); -+ break; -+ } -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ int tab[] = -+ { -+ 1, 2, 3, -+ 4, 5, 6}; -+ -+ printf("Indent this line correctly!\n"); -+ -+ switch (foo) -+ { -+ case bar: -+ printf("bar"); -+ break; -+ case baz: { -+ printf("baz"); -+ break; -+ } -+ case quux: -+ printf("But don't break the indentation of this instruction\n"); -+ break; -+ } -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_37() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino& -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ cout << "a" -+ << "b" -+ << ") :" -+ << "c"; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ cout << "a" -+ << "b" -+ << ") :" -+ << "c"; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_38() -+ new -+ setl cindent ts=4 sw=4 -+ setl com=s1:/*,m:*,ex:*/ -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ /* -+ * This is a comment. -+ */ -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]3jofoo(); -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ /* -+ * This is a comment. -+ */ -+ foo(); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_39() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino& -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ for (int i = 0; i < 10; ++i) -+ if (i & 1) { -+ foo(1); -+ } else -+ foo(0); -+ baz(); -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ for (int i = 0; i < 10; ++i) -+ if (i & 1) { -+ foo(1); -+ } else -+ foo(0); -+ baz(); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_40() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=k2s,(0 -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ func( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ func( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_41() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=k2s,(s -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ func( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ func( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_42() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=k2s,(s,U1 -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ -+ c = c1 && -+ ( -+ c2 || -+ c3 -+ ) && c4; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_43() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=k2s,(0,W4 -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ -+ a_long_line( -+ argument, -+ argument); -+ a_short_line(argument, -+ argument); -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ -+ a_long_line( -+ argument, -+ argument); -+ a_short_line(argument, -+ argument); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_44() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=k2s,u2 -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_45() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=k2s,(0,w1 -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ func( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ if (c123456789 -+ && (c22345 -+ || c3)) -+ printf("foo\n"); -+ -+ if ( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ func( c1 -+ && ( c2 -+ || c3)) -+ foo; -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_46() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=k2,(s -+ -+ let code =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ normal ]]=][ -+ -+ let expected =<< trim [CODE] -+ void func(void) -+ { -+ if (condition1 -+ && condition2) -+ action(); -+ function(argument1 -+ && argument2); -+ -+ if (c1 && (c2 || -+ c3)) -+ foo; -+ if (c1 && -+ (c2 || c3)) -+ { -+ } -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_47() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=N-s -+ -+ let code =<< trim [CODE] -+ NAMESPACESTART -+ /* valid namespaces with normal indent */ -+ namespace -+ { -+ { -+ 111111111111; -+ } -+ } -+ namespace /* test */ -+ { -+ 11111111111111111; -+ } -+ namespace // test -+ { -+ 111111111111111111; -+ } -+ namespace -+ { -+ 111111111111111111; -+ } -+ namespace test -+ { -+ 111111111111111111; -+ } -+ namespace test::cpp17 -+ { -+ 111111111111111111; -+ } -+ namespace ::incorrectcpp17 -+ { -+ 111111111111111111; -+ } -+ namespace test::incorrectcpp17:: -+ { -+ 111111111111111111; -+ } -+ namespace test:incorrectcpp17 -+ { -+ 111111111111111111; -+ } -+ namespace test:::incorrectcpp17 -+ { -+ 111111111111111111; -+ } -+ namespace{ -+ 111111111111111111; -+ } -+ namespace test{ -+ 111111111111111111; -+ } -+ namespace { -+ 111111111111111111; -+ } -+ namespace test { -+ 111111111111111111; -+ namespace test2 { -+ 22222222222222222; -+ } -+ } -+ -+ /* invalid namespaces use block indent */ -+ namespace test test2 { -+ 111111111111111111111; -+ } -+ namespace11111111111 { -+ 111111111111; -+ } -+ namespace() { -+ 1111111111111; -+ } -+ namespace() -+ { -+ 111111111111111111; -+ } -+ namespace test test2 -+ { -+ 1111111111111111111; -+ } -+ namespace111111111 -+ { -+ 111111111111111111; -+ } -+ NAMESPACEEND -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^NAMESPACESTART') -+ exe "normal =/^NAMESPACEEND\n" -+ -+ let expected =<< trim [CODE] -+ NAMESPACESTART -+ /* valid namespaces with normal indent */ -+ namespace -+ { -+ { -+ 111111111111; -+ } -+ } -+ namespace /* test */ -+ { -+ 11111111111111111; -+ } -+ namespace // test -+ { -+ 111111111111111111; -+ } -+ namespace -+ { -+ 111111111111111111; -+ } -+ namespace test -+ { -+ 111111111111111111; -+ } -+ namespace test::cpp17 -+ { -+ 111111111111111111; -+ } -+ namespace ::incorrectcpp17 -+ { -+ 111111111111111111; -+ } -+ namespace test::incorrectcpp17:: -+ { -+ 111111111111111111; -+ } -+ namespace test:incorrectcpp17 -+ { -+ 111111111111111111; -+ } -+ namespace test:::incorrectcpp17 -+ { -+ 111111111111111111; -+ } -+ namespace{ -+ 111111111111111111; -+ } -+ namespace test{ -+ 111111111111111111; -+ } -+ namespace { -+ 111111111111111111; -+ } -+ namespace test { -+ 111111111111111111; -+ namespace test2 { -+ 22222222222222222; -+ } -+ } -+ -+ /* invalid namespaces use block indent */ -+ namespace test test2 { -+ 111111111111111111111; -+ } -+ namespace11111111111 { -+ 111111111111; -+ } -+ namespace() { -+ 1111111111111; -+ } -+ namespace() -+ { -+ 111111111111111111; -+ } -+ namespace test test2 -+ { -+ 1111111111111111111; -+ } -+ namespace111111111 -+ { -+ 111111111111111111; -+ } -+ NAMESPACEEND -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_48() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=j1,J1 -+ -+ let code =<< trim [CODE] -+ JSSTART -+ var bar = { -+ foo: { -+ that: this, -+ some: ok, -+ }, -+ "bar":{ -+ a : 2, -+ b: "123abc", -+ x: 4, -+ "y": 5 -+ } -+ } -+ JSEND -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^JSSTART') -+ exe "normal =/^JSEND\n" -+ -+ let expected =<< trim [CODE] -+ JSSTART -+ var bar = { -+ foo: { -+ that: this, -+ some: ok, -+ }, -+ "bar":{ -+ a : 2, -+ b: "123abc", -+ x: 4, -+ "y": 5 -+ } -+ } -+ JSEND -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_49() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=j1,J1 -+ -+ let code =<< trim [CODE] -+ JSSTART -+ var foo = [ -+ 1, -+ 2, -+ 3 -+ ]; -+ JSEND -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^JSSTART') -+ exe "normal =/^JSEND\n" -+ -+ let expected =<< trim [CODE] -+ JSSTART -+ var foo = [ -+ 1, -+ 2, -+ 3 -+ ]; -+ JSEND -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_50() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=j1,J1 -+ -+ let code =<< trim [CODE] -+ JSSTART -+ function bar() { -+ var foo = [ -+ 1, -+ 2, -+ 3 -+ ]; -+ } -+ JSEND -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^JSSTART') -+ exe "normal =/^JSEND\n" -+ -+ let expected =<< trim [CODE] -+ JSSTART -+ function bar() { -+ var foo = [ -+ 1, -+ 2, -+ 3 -+ ]; -+ } -+ JSEND -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_51() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=j1,J1 -+ -+ let code =<< trim [CODE] -+ JSSTART -+ (function($){ -+ -+ if (cond && -+ cond) { -+ stmt; -+ } -+ window.something.left = -+ (width - 50 + offset) + "px"; -+ 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, -+ foobar: [ -+ 1, -+ 2, -+ 3 -+ ], -+ callback: function(){ -+ return true; -+ } -+ }, 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 -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^JSSTART') -+ exe "normal =/^JSEND\n" -+ -+ let expected =<< trim [CODE] -+ JSSTART -+ (function($){ -+ -+ if (cond && -+ cond) { -+ stmt; -+ } -+ window.something.left = -+ (width - 50 + offset) + "px"; -+ 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, -+ foobar: [ -+ 1, -+ 2, -+ 3 -+ ], -+ callback: function(){ -+ return true; -+ } -+ }, 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 -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_52() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=j1,J1 -+ -+ let code =<< trim [CODE] -+ JSSTART -+ function init(options) { -+ $(this).data(class_name+'_public',$.extend({},{ -+ foo: 'bar', -+ bar: 2, -+ foobar: [ -+ 1, -+ 2, -+ 3 -+ ], -+ callback: function(){ -+ return true; -+ } -+ }, options||{})); -+ } -+ JSEND -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^JSSTART') -+ exe "normal =/^JSEND\n" -+ -+ let expected =<< trim [CODE] -+ JSSTART -+ function init(options) { -+ $(this).data(class_name+'_public',$.extend({},{ -+ foo: 'bar', -+ bar: 2, -+ foobar: [ -+ 1, -+ 2, -+ 3 -+ ], -+ callback: function(){ -+ return true; -+ } -+ }, options||{})); -+ } -+ JSEND -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_53() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=j1,J1 -+ -+ let code =<< trim [CODE] -+ JSSTART -+ (function($){ -+ function init(options) { -+ $(this).data(class_name+'_public',$.extend({},{ -+ foo: 'bar', -+ bar: 2, -+ foobar: [ -+ 1, -+ 2, -+ 3 -+ ], -+ callback: function(){ -+ return true; -+ } -+ }, options||{})); -+ } -+ })(jQuery); -+ JSEND -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^JSSTART') -+ exe "normal =/^JSEND\n" -+ -+ let expected =<< trim [CODE] -+ JSSTART -+ (function($){ -+ function init(options) { -+ $(this).data(class_name+'_public',$.extend({},{ -+ foo: 'bar', -+ bar: 2, -+ foobar: [ -+ 1, -+ 2, -+ 3 -+ ], -+ callback: function(){ -+ return true; -+ } -+ }, options||{})); -+ } -+ })(jQuery); -+ JSEND -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_54() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino=j1,J1,+2 -+ -+ let code =<< trim [CODE] -+ JSSTART -+ // Results of JavaScript indent -+ // 1 -+ (function(){ -+ var a = [ -+ 'a', -+ 'b', -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ }()) -+ -+ // 2 -+ (function(){ -+ var a = [ -+ 0 + -+ 5 * -+ 9 * -+ 'a', -+ 'b', -+ 0 + -+ 5 * -+ 9 * -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ }()) -+ -+ // 3 -+ (function(){ -+ var a = [ -+ 0 + -+ // comment 1 -+ 5 * -+ /* comment 2 */ -+ 9 * -+ 'a', -+ 'b', -+ 0 + -+ 5 * -+ 9 * -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ }()) -+ -+ // 4 -+ { -+ var a = [ -+ 0, -+ 1 -+ ]; -+ var b; -+ var c; -+ } -+ -+ // 5 -+ { -+ var a = [ -+ [ -+ 0 -+ ], -+ 2, -+ 3 -+ ]; -+ } -+ -+ // 6 -+ { -+ var a = [ -+ [ -+ 0, -+ 1 -+ ], -+ 2, -+ 3 -+ ]; -+ } -+ -+ // 7 -+ { -+ var a = [ -+ // [ -+ 0, -+ // 1 -+ // ], -+ 2, -+ 3 -+ ]; -+ } -+ -+ // 8 -+ var x = [ -+ (function(){ -+ var a, -+ b, -+ c, -+ d, -+ e, -+ f, -+ g, -+ h, -+ i; -+ }) -+ ]; -+ -+ // 9 -+ var a = [ -+ 0 + -+ 5 * -+ 9 * -+ 'a', -+ 'b', -+ 0 + -+ 5 * -+ 9 * -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ -+ // 10 -+ var a, -+ b, -+ c, -+ d, -+ e, -+ f, -+ g, -+ h, -+ i; -+ JSEND -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('^JSSTART') -+ exe "normal =/^JSEND\n" -+ -+ let expected =<< trim [CODE] -+ JSSTART -+ // Results of JavaScript indent -+ // 1 -+ (function(){ -+ var a = [ -+ 'a', -+ 'b', -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ }()) -+ -+ // 2 -+ (function(){ -+ var a = [ -+ 0 + -+ 5 * -+ 9 * -+ 'a', -+ 'b', -+ 0 + -+ 5 * -+ 9 * -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ }()) -+ -+ // 3 -+ (function(){ -+ var a = [ -+ 0 + -+ // comment 1 -+ 5 * -+ /* comment 2 */ -+ 9 * -+ 'a', -+ 'b', -+ 0 + -+ 5 * -+ 9 * -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ }()) -+ -+ // 4 -+ { -+ var a = [ -+ 0, -+ 1 -+ ]; -+ var b; -+ var c; -+ } -+ -+ // 5 -+ { -+ var a = [ -+ [ -+ 0 -+ ], -+ 2, -+ 3 -+ ]; -+ } -+ -+ // 6 -+ { -+ var a = [ -+ [ -+ 0, -+ 1 -+ ], -+ 2, -+ 3 -+ ]; -+ } -+ -+ // 7 -+ { -+ var a = [ -+ // [ -+ 0, -+ // 1 -+ // ], -+ 2, -+ 3 -+ ]; -+ } -+ -+ // 8 -+ var x = [ -+ (function(){ -+ var a, -+ b, -+ c, -+ d, -+ e, -+ f, -+ g, -+ h, -+ i; -+ }) -+ ]; -+ -+ // 9 -+ var a = [ -+ 0 + -+ 5 * -+ 9 * -+ 'a', -+ 'b', -+ 0 + -+ 5 * -+ 9 * -+ 'c', -+ 'd', -+ 'e', -+ 'f', -+ 'g', -+ 'h', -+ 'i' -+ ]; -+ -+ // 10 -+ var a, -+ b, -+ c, -+ d, -+ e, -+ f, -+ g, -+ h, -+ i; -+ JSEND -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_55() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino& -+ -+ let code =<< trim [CODE] -+ /* start of define */ -+ { -+ } -+ #define AAA \ -+ BBB\ -+ CCC -+ -+ #define CNT \ -+ 1 + \ -+ 2 + \ -+ 4 -+ /* end of define */ -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('start of define') -+ exe "normal =/end of define\n" -+ -+ let expected =<< trim [CODE] -+ /* start of define */ -+ { -+ } -+ #define AAA \ -+ BBB\ -+ CCC -+ -+ #define CNT \ -+ 1 + \ -+ 2 + \ -+ 4 -+ /* end of define */ -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ -+ func Test_cindent_56() -+ new -+ setl cindent ts=4 sw=4 -+ setl cino& -+ -+ let code =<< trim [CODE] -+ { -+ a = second/*bug*/*line; -+ } -+ [CODE] -+ -+ call append(0, code) -+ normal gg -+ call search('a = second') -+ normal ox -+ -+ let expected =<< trim [CODE] -+ { -+ a = second/*bug*/*line; -+ x -+ } -+ -+ [CODE] -+ -+ call assert_equal(expected, getline(1, '$')) -+ enew! | close -+ endfunc -+ - " vim: shiftwidth=2 sts=2 expandtab -*** ../vim-8.1.1433/src/version.c 2019-05-31 17:34:44.195465656 +0200 ---- src/version.c 2019-05-31 19:58:35.792627365 +0200 -*************** -*** 769,770 **** ---- 769,772 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 1434, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -62. If your doorbell rings, you think that new mail has arrived. And then - you're disappointed that it's only someone at the door. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ an exciting new programming language -- http://www.Zimbu.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |