blob: 2c7fd17f56f32314cac9e7824f5ed2c34e4c157c [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001/* start of AUTO matically checked */
2{
3 if (test)
4 cmd1;
5 cmd2;
6}
7
8{
9 if (test)
10 cmd1;
11 else
12 cmd2;
13}
14
15{
16 if (test)
17 {
18 cmd1;
19 cmd2;
20 }
21}
22
23{
24 if (test)
25 {
26 cmd1;
27 else
28 }
29}
30
31{
32 while (this)
33 if (test)
34 cmd1;
35 cmd2;
36}
37
38{
39 while (this)
40 if (test)
41 cmd1;
42 else
43 cmd2;
44}
45
46{
47 if (test)
48 {
49 cmd;
50 }
51
52 if (test)
53 cmd;
54}
55
56{
57 if (test) {
58 cmd;
59 }
60
61 if (test) cmd;
62}
63
64{
65 cmd1;
66 for (blah)
67 while (this)
68 if (test)
69 cmd2;
70 cmd3;
71}
72
73{
74 cmd1;
75 for (blah)
76 while (this)
77 if (test)
78 cmd2;
79 cmd3;
80
81 if (test)
82 {
83 cmd1;
84 cmd2;
85 cmd3;
86 }
87}
88
89
90/* Test for 'cindent' do/while mixed with if/else: */
91
92{
93 do
94 if (asdf)
95 asdfasd;
96 while (cond);
97
98 do
99 if (asdf)
100 while (asdf)
101 asdf;
102 while (asdf);
103}
104
105/* Test for 'cindent' with two ) on a continuation line */
106{
107 if (asdfasdf;asldkfj asdlkfj as;ldkfj sal;d
108 aal;sdkjf ( ;asldfkja;sldfk
109 al;sdjfka ;slkdf ) sa;ldkjfsa dlk;)
110 line up here;
111}
112
113
114/* C++ tests: */
115
116// foo() these three lines should remain in column 0
117// {
118// }
119
120/* Test for continuation and unterminated lines: */
121{
122 i = 99 + 14325 +
123 21345 +
124 21345 +
125 21345 + ( 21345 +
126 21345) +
127 2345 +
128 1234;
129 c = 1;
130}
131
132/*
133 testje for indent with empty line
134
135 here */
136
137{
138 if (testing &&
139 not a joke ||
140 line up here)
141 hay;
142 if (testing &&
143 (not a joke || testing
144 )line up here)
145 hay;
146 if (testing &&
147 (not a joke || testing
148 line up here))
149 hay;
150}
151
152
153{
154 switch (c)
155 {
156 case xx:
157 do
158 if (asdf)
159 do
160 asdfasdf;
161 while (asdf);
162 else
163 asdfasdf;
164 while (cond);
165 case yy:
166 case xx:
167 case zz:
168 testing;
169 }
170}
171
172{
173 if (cond) {
174 foo;
175 }
176 else
177 {
178 bar;
179 }
180}
181
182{
183 if (alskdfj ;alsdkfjal;skdjf (;sadlkfsa ;dlkf j;alksdfj ;alskdjf
184 alsdkfj (asldk;fj
185 awith cino=(0 ;lf this one goes to below the paren with ==
186 ;laksjfd ;lsakdjf ;alskdf asd)
187 asdfasdf;)))
188 asdfasdf;
189}
190
191 int
192func(a, b)
193 int a;
194 int c;
195{
196 if (c1 && (c2 ||
197 c3))
198 foo;
199 if (c1 &&
200 (c2 || c3)
201 )
202}
203
204{
205 while (asd)
206 {
207 if (asdf)
208 if (test)
209 if (that)
210 {
211 if (asdf)
212 do
213 cdasd;
214 while (as
215 df);
216 }
217 else
218 if (asdf)
219 asdf;
220 else
221 asdf;
222 asdf;
223 }
224}
225
226{
227 s = "/*"; b = ';'
228 s = "/*"; b = ';';
229 a = b;
230}
231
232{
233 switch (a)
234 {
235 case a:
236 switch (t)
237 {
238 case 1:
239 cmd;
240 break;
241 case 2:
242 cmd;
243 break;
244 }
245 cmd;
246 break;
247 case b:
248 {
249 int i;
250 cmd;
251 }
252 break;
253 case c: {
254 int i;
255 cmd;
256 }
257 case d: if (cond &&
258 test) { /* this line doesn't work right */
259 int i;
260 cmd;
261 }
262 break;
263 }
264}
265
266{
267 if (!(vim_strchr(p_cpo, CPO_BUFOPTGLOB) != NULL && entering) &&
268 (bp_to->b_p_initialized ||
269 (!entering && vim_strchr(p_cpo, CPO_BUFOPT) != NULL)))
270 return;
271label :
272 asdf = asdf ?
273 asdf : asdf;
274 asdf = asdf ?
275 asdf: asdf;
276}
277
278/* Special Comments : This function has the added complexity (compared */
279/* : to addtolist) of having to check for a detail */
280/* : texture and add that to the list first. */
281
282char *(array[100]) = {
283 "testje",
284 "foo",
285 "bar",
286}
287
288enum soppie
289{
290 yes = 0,
291 no,
292 maybe
293};
294
295typedef enum soppie
296{
297 yes = 0,
298 no,
299 maybe
300};
301
302{
303 int a,
304 b;
305}
306
307{
308 struct Type
309 {
310 int i;
311 char *str;
312 } var[] =
313 {
314 0, "zero",
315 1, "one",
316 2, "two",
317 3, "three"
318 };
319
320 float matrix[3][3] =
321 {
322 {
323 0,
324 1,
325 2
326 },
327 {
328 3,
329 4,
330 5
331 },
332 {
333 6,
334 7,
335 8
336 }
337 };
338}
339
340{
341 /* blah ( blah */
342 /* where does this go? */
343
344 /* blah ( blah */
345 cmd;
346
347 func(arg1,
348 /* comment */
349 arg2);
350 a;
351 {
352 b;
353 {
354 c; /* Hey, NOW it indents?! */
355 }
356 }
357
358 {
359 func(arg1,
360 arg2,
361 arg3);
362 /* Hey, what am I doing here? Is this coz of the ","? */
363 }
364}
365
366main ()
367{
368 if (cond)
369 {
370 a = b;
371 }
372 if (cond) {
373 a = c;
374 }
375 if (cond)
376 a = d;
377 return;
378}
379
380{
381 case 2: if (asdf &&
382 asdfasdf)
383 aasdf;
384 a = 9;
385 case 3: if (asdf)
386 aasdf;
387 a = 9;
388 case 4: x = 1;
389 y = 2;
390
391label: if (asdf)
392 here;
393
394label: if (asdf &&
395 asdfasdf)
396 {
397 }
398
399label: if (asdf &&
400 asdfasdf) {
401 there;
402 }
403
404label: if (asdf &&
405 asdfasdf)
406 there;
407}
408
409{
410 /*
411 hello with ":set comments= cino=c5"
412 */
413
414 /*
415 hello with ":set comments= cino="
416 */
417}
418
419
420{
421 if (a < b) {
422 a = a + 1;
423 } else
424 a = a + 2;
425
426 if (a)
427 do {
428 testing;
429 } while (asdfasdf);
430 a = b + 1;
431 asdfasdf
432}
433
434class bob
435{
436 int foo() {return 1;}
437 int bar;
438}
439
440main()
441{
442 while(1)
443 if (foo)
444 {
445 bar;
446 }
447 else {
448 asdf;
449 }
450 misplacedline;
451}
452
453{
454 if (clipboard.state == SELECT_DONE
455 && ((row == clipboard.start.lnum
456 && col >= clipboard.start.col)
457 || row > clipboard.start.lnum))
458}
459
460{
461 if (1) {i += 4;}
462 where_am_i;
463 return 0;
464}
465
466{
467 {
468 } // sdf(asdf
469 if (asdf)
470 asd;
471}
472
473{
474label1:
475label2:
476}
477
478{
479 int fooRet = foo(pBar1, false /*fKB*/,
480 true /*fPTB*/, 3 /*nT*/, false /*fDF*/);
481 f() {
482 for ( i = 0;
483 i < m;
484 /* c */ i++ ) {
485 a = b;
486 }
487 }
488}
489
490{
491 f1(/*comment*/);
492 f2();
493}
494
495{
496 do {
497 if (foo) {
498 } else
499 ;
500 } while (foo);
501 foo(); // was wrong
502}
503
504int x; // no extra indent because of the ;
505void func()
506{
507}
508
509char *tab[] = {"aaa",
510 "};", /* }; */ NULL}
511 int indented;
512{}
513
514char *a[] = {"aaa", "bbb",
515 "ccc", NULL};
516// here
517
518char *tab[] = {"aaa",
519 "xx", /* xx */}; /* asdf */
520int not_indented;
521
522{
523 do {
524 switch (bla)
525 {
526 case 1: if (foo)
527 bar;
528 }
529 } while (boo);
530 wrong;
531}
532
533int foo,
534 bar;
535int foo;
536
537#if defined(foo) \
538 && defined(bar)
539char * xx = "asdf\
540 foo\
541 bor";
542int x;
543
544char *foo = "asdf\
545 asdf\
546 asdf",
547 *bar;
548
549void f()
550{
551#if defined(foo) \
552 && defined(bar)
553 char *foo = "asdf\
554 asdf\
555 asdf",
556 *bar;
557 {
558 int i;
559 char *foo = "asdf\
560 asdf\
561 asdf",
562 *bar;
563 }
564#endif
565}
566#endif
567
568int y; // comment
569// comment
570
571// comment
572
573{
574 Constructor(int a,
575 int b ) : BaseClass(a)
576 {
577 }
578}
579
580void foo()
581{
582 char one,
583 two;
584 struct bla piet,
585 jan;
586 enum foo kees,
587 jannie;
588 static unsigned sdf,
589 krap;
590 unsigned int piet,
591 jan;
592 int
593 kees,
594 jan;
595}
596
597{
598 t(int f,
599 int d); // )
600 d();
601}
602
603Constructor::Constructor(int a,
604 int b
605 ) :
606 BaseClass(a,
607 b,
608 c),
609 mMember(b),
610{
611}
612
613Constructor::Constructor(int a,
614 int b ) :
615 BaseClass(a)
616{
617}
618
619Constructor::Constructor(int a,
620 int b ) /*x*/ : /*x*/ BaseClass(a),
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000621 member(b)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000622{
623}
624
625class CAbc :
626 public BaseClass1,
627 protected BaseClass2
628{
629 int Test() { return FALSE; }
630 int Test1() { return TRUE; }
631
632 CAbc(int a, int b ) :
633 BaseClass(a)
634 {
635 switch(xxx)
636 {
637 case abc:
638 asdf();
639 break;
640
641 case 999:
642 baer();
643 break;
644 }
645 }
646
647 public: // <-- this was incoreectly indented before!!
648 void testfall();
649 protected:
650 void testfall();
651};
652
653class CAbc : public BaseClass1,
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000654 protected BaseClass2
Bram Moolenaar071d4272004-06-13 20:20:40 +0000655{
656};
657
658static struct
659{
660 int a;
661 int b;
662} variable[COUNT] =
663{
664 {
665 123,
666 456
667 },
668 {
669 123,
670 456
671 }
672};
673
674static struct
675{
676 int a;
677 int b;
678} variable[COUNT] =
679{
680 { 123, 456 },
681 { 123, 456 }
682};
683
684void asdf() /* ind_maxparen may cause trouble here */
685{
686 if ((0
687 && 1
688 && 1
689 && 1
690 && 1
691 && 1
692 && 1
693 && 1
694 && 1
695 && 1
696 && 1
697 && 1
698 && 1
699 && 1
700 && 1
701 && 1
702 && 1
703 && 1
704 && 1
705 && 1
706 && 1
707 && 1
708 && 1
709 && 1
710 && 1
711 && 1)) break;
712}
713
Bram Moolenaar18144c82006-04-12 21:52:12 +0000714foo()
715{
716 a = cond ? foo() : asdf
717 + asdf;
718
719 a = cond ?
720 foo() : asdf
721 + asdf;
722}
723
724int main(void)
725{
726 if (a)
727 if (b)
728 2;
729 else 3;
730 next_line_of_code();
731}
732
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000733barry()
734{
735 Foo::Foo (int one,
736 int two)
737 : something(4)
738 {}
739}
740
741barry()
742{
743 Foo::Foo (int one, int two)
744 : something(4)
745 {}
746}
747
748Constructor::Constructor(int a,
749 int b
750 ) :
751 BaseClass(a,
752 b,
753 c),
754 mMember(b)
755{
756}
757
Bram Moolenaar071d4272004-06-13 20:20:40 +0000758/* end of AUTO */
759
760
761{
762
763/* this is
764 * a real serious
765 * about life, the
766 * universe, and the
767 * rest important big
768 * comment
769 */
770 /* insert " about life, the universe, and the rest" after "serious" */
771}
772
773
774{
775 /*
776 * Testing for comments, without 'cin' set
777 */
778about life
779
780/*
781* what happens here?
782*/
783there
784
785 /*
786 the end of the comment, try inserting a line below */
787line
788
789 /* how about
790hello
791 this one */
792}
793
794
795{
796 var = this + that + vec[0] * vec[0]
797 + vec[1] * vec[1]
798 + vec2[2] * vec[2];
799}
800
801
802{
803 asdf asdflkajds f;
804 if (tes & ting) {
805 asdf asdf asdf ;
806 asdfa sdf asdf;
807 }
808 testing1;
809 if (tes & ting)
810 {
811 asdf asdf asdf ;
812 asdfa sdf asdf;
813 }
814 testing2;
815}
816
817
818main ( int first_par, /*
819 * Comment for
820 * first par
821 */
822 int second_par /*
823 * Comment for
824 * second par
825 */
826 )
827{
828 func( first_par, /*
829 * Comment for
830 * first par
831 */
832 second_par /*
833 * Comment for
834 * second par
835 */
836 );
837
838}
839
840
841{
842 do
843 {
844 if ()
845 {
846 if ()
847 asdf;
848 else
849 asdf;
850 }
851 } while ();
852 cmd; /* this should go under the } */
853}
854
855
856void f()
857{
858 if ( k() ) {
859 l();
860
861 } else { /* Start (two words) end */
862 m();
863 }
864
865 n();
866}
867
868
869void f()
870 {
871 if ( k() )
872 {
873 l();
874 } else { /* Start (two words) end */
875 m();
876 }
877 n(); /* should be under the if () */
878}
879
880
881void bar(void)
882 {
883 static array[2][2] =
884 {
885 { 1, 2 },
886 { 3, 4 },
887 }
888
889 while (a)
890 {
891 foo(&a);
892 }
893
894 {
895 int a;
896 {
897 a = a + 1;
898 }
899 }
900 b = a;
901 }
902
903void func(void)
904 {
905 a = 1;
906 {
907 b = 2;
908 }
909 c = 3;
910 d = 4;
911 }
912/* foo */
913
914
915a()
916{
917 do {
918 a = a +
919 a;
920 } while ( a ); /* add text under this line */
921 here
922 if ( a )
923 a;
924}
925
926
927a()
928{
929label1:
930 /* hmm */
931 // comment
932label2: b();
933label3 /* post */:
934/* pre */ label4:
935 f(/*com*/);
936 if (/*com*/)
937 cmd();
938}
939
940
941/*
942 * A simple comment
943 */
944
945/*
946** A different comment
947*/
948
949
950void f()
951{
952
953 /*********
954 A comment.
955 *********/
956}
957
958
959void f()
960{
961
962 /*********
963 A comment.
964 *********/
965}
966
967
968void f()
969{
970 c = c1 &&
971 (
972 c2 ||
973 c3
974 ) && c4;
975}
976
977
978void f()
979{
980 c = c1 &&
981 (
982 c2 ||
983 c3
984 ) && c4;
985}
986
987
988void f()
989{
990 c = c1 &&
991 (
992 c2 ||
993 c3
994 ) && c4;
995}
996
997
998void f()
999{
1000 if ( c1
1001 && ( c2
1002 || c3))
1003 foo;
1004}
1005
1006
1007void f()
1008{
1009 if ( c1
1010 && ( c2
1011 || c3))
1012 foo;
1013}
1014
1015
1016void f()
1017{
1018 c = c1 && (
1019 c2 ||
1020 c3
1021 ) && c4;
1022 if (
1023 c1 && c2
1024 )
1025 foo;
1026}
1027
1028
1029void f()
1030{
1031 c = c1 && (
1032 c2 ||
1033 c3
1034 ) && c4;
1035 if (
1036 c1 && c2
1037 )
1038 foo;
1039}
1040
1041
1042void f()
1043{
1044 switch (x)
1045 {
1046 case 1:
1047 a = b;
1048 break;
1049 default:
1050 a = 0;
1051 break;
1052 }
1053}
1054
1055
1056void f()
1057{
1058 invokeme(
1059 argu,
1060 ment);
1061 invokeme(
1062 argu,
1063 ment
1064 );
1065 invokeme(argu,
1066 ment
1067 );
1068}
1069
1070
1071void f()
1072{
1073 statement;
1074 // comment 1
1075 // comment 2
1076}
1077
1078
1079void f()
1080{
1081 statement;
1082 // comment 1
1083 // comment 2
1084}
1085
1086
1087class CAbc
1088{
1089 int Test() { return FALSE; }
1090
1091public: // comment
1092 void testfall();
1093protected:
1094 void testfall();
1095};
1096
1097
Bram Moolenaar7fc904b2006-04-13 20:37:35 +00001098 void
1099foo()
1100{
1101 if (a)
1102 {
1103 } else
1104 asdf;
1105}
1106
1107
Bram Moolenaar071d4272004-06-13 20:20:40 +00001108{
1109 averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd(
1110 asdasdf,
1111 func(asdf,
1112 asdfadsf),
1113 asdfasdf
1114 );
1115
1116 /* those are ugly, but consequent */
1117
1118 func()->asd(asdasdf,
1119 averylongfunctionname(
1120 abc,
1121 dec)->averylongfunctionname(
1122 asdfadsf,
1123 asdfasdf,
1124 asdfasdf,
1125 ),
1126 func(asdfadf,
1127 asdfasdf
1128 ),
1129 asdasdf
1130 );
1131
1132 averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf(
1133 abc,
1134 dec)->asdfasdfasdf(
1135 asdfadsf,
1136 asdfasdf,
1137 asdfasdf,
1138 ),
1139 func(asdfadf,
1140 asdfasdf),
1141 asdasdf
1142 );
1143}
1144