blob: 570f8f63d79cae66a2da3896186788c76e07b3c6 [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),
621 member(b)
622{
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,
654 protected BaseClass2
655{
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
714/* end of AUTO */
715
716
717{
718
719/* this is
720 * a real serious
721 * about life, the
722 * universe, and the
723 * rest important big
724 * comment
725 */
726 /* insert " about life, the universe, and the rest" after "serious" */
727}
728
729
730{
731 /*
732 * Testing for comments, without 'cin' set
733 */
734about life
735
736/*
737* what happens here?
738*/
739there
740
741 /*
742 the end of the comment, try inserting a line below */
743line
744
745 /* how about
746hello
747 this one */
748}
749
750
751{
752 var = this + that + vec[0] * vec[0]
753 + vec[1] * vec[1]
754 + vec2[2] * vec[2];
755}
756
757
758{
759 asdf asdflkajds f;
760 if (tes & ting) {
761 asdf asdf asdf ;
762 asdfa sdf asdf;
763 }
764 testing1;
765 if (tes & ting)
766 {
767 asdf asdf asdf ;
768 asdfa sdf asdf;
769 }
770 testing2;
771}
772
773
774main ( int first_par, /*
775 * Comment for
776 * first par
777 */
778 int second_par /*
779 * Comment for
780 * second par
781 */
782 )
783{
784 func( first_par, /*
785 * Comment for
786 * first par
787 */
788 second_par /*
789 * Comment for
790 * second par
791 */
792 );
793
794}
795
796
797{
798 do
799 {
800 if ()
801 {
802 if ()
803 asdf;
804 else
805 asdf;
806 }
807 } while ();
808 cmd; /* this should go under the } */
809}
810
811
812void f()
813{
814 if ( k() ) {
815 l();
816
817 } else { /* Start (two words) end */
818 m();
819 }
820
821 n();
822}
823
824
825void f()
826 {
827 if ( k() )
828 {
829 l();
830 } else { /* Start (two words) end */
831 m();
832 }
833 n(); /* should be under the if () */
834}
835
836
837void bar(void)
838 {
839 static array[2][2] =
840 {
841 { 1, 2 },
842 { 3, 4 },
843 }
844
845 while (a)
846 {
847 foo(&a);
848 }
849
850 {
851 int a;
852 {
853 a = a + 1;
854 }
855 }
856 b = a;
857 }
858
859void func(void)
860 {
861 a = 1;
862 {
863 b = 2;
864 }
865 c = 3;
866 d = 4;
867 }
868/* foo */
869
870
871a()
872{
873 do {
874 a = a +
875 a;
876 } while ( a ); /* add text under this line */
877 here
878 if ( a )
879 a;
880}
881
882
883a()
884{
885label1:
886 /* hmm */
887 // comment
888label2: b();
889label3 /* post */:
890/* pre */ label4:
891 f(/*com*/);
892 if (/*com*/)
893 cmd();
894}
895
896
897/*
898 * A simple comment
899 */
900
901/*
902** A different comment
903*/
904
905
906void f()
907{
908
909 /*********
910 A comment.
911 *********/
912}
913
914
915void f()
916{
917
918 /*********
919 A comment.
920 *********/
921}
922
923
924void f()
925{
926 c = c1 &&
927 (
928 c2 ||
929 c3
930 ) && c4;
931}
932
933
934void f()
935{
936 c = c1 &&
937 (
938 c2 ||
939 c3
940 ) && c4;
941}
942
943
944void f()
945{
946 c = c1 &&
947 (
948 c2 ||
949 c3
950 ) && c4;
951}
952
953
954void f()
955{
956 if ( c1
957 && ( c2
958 || c3))
959 foo;
960}
961
962
963void f()
964{
965 if ( c1
966 && ( c2
967 || c3))
968 foo;
969}
970
971
972void f()
973{
974 c = c1 && (
975 c2 ||
976 c3
977 ) && c4;
978 if (
979 c1 && c2
980 )
981 foo;
982}
983
984
985void f()
986{
987 c = c1 && (
988 c2 ||
989 c3
990 ) && c4;
991 if (
992 c1 && c2
993 )
994 foo;
995}
996
997
998void f()
999{
1000 switch (x)
1001 {
1002 case 1:
1003 a = b;
1004 break;
1005 default:
1006 a = 0;
1007 break;
1008 }
1009}
1010
1011
1012void f()
1013{
1014 invokeme(
1015 argu,
1016 ment);
1017 invokeme(
1018 argu,
1019 ment
1020 );
1021 invokeme(argu,
1022 ment
1023 );
1024}
1025
1026
1027void f()
1028{
1029 statement;
1030 // comment 1
1031 // comment 2
1032}
1033
1034
1035void f()
1036{
1037 statement;
1038 // comment 1
1039 // comment 2
1040}
1041
1042
1043class CAbc
1044{
1045 int Test() { return FALSE; }
1046
1047public: // comment
1048 void testfall();
1049protected:
1050 void testfall();
1051};
1052
1053
1054{
1055 averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd(
1056 asdasdf,
1057 func(asdf,
1058 asdfadsf),
1059 asdfasdf
1060 );
1061
1062 /* those are ugly, but consequent */
1063
1064 func()->asd(asdasdf,
1065 averylongfunctionname(
1066 abc,
1067 dec)->averylongfunctionname(
1068 asdfadsf,
1069 asdfasdf,
1070 asdfasdf,
1071 ),
1072 func(asdfadf,
1073 asdfasdf
1074 ),
1075 asdasdf
1076 );
1077
1078 averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf(
1079 abc,
1080 dec)->asdfasdfasdf(
1081 asdfadsf,
1082 asdfasdf,
1083 asdfasdf,
1084 ),
1085 func(asdfadf,
1086 asdfasdf),
1087 asdasdf
1088 );
1089}
1090