Mercurial > vim
comparison src/testdir/test_cindent.vim @ 16865:d615cc95089c v8.1.1434
patch 8.1.1434: test 3 is old style
commit https://github.com/vim/vim/commit/1ab74a5af36933f1c3023a910af20280bb79bd6c
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri May 31 20:02:53 2019 +0200
patch 8.1.1434: test 3 is old style
Problem: Test 3 is old style.
Solution: Turn into a new style test. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/4460)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 31 May 2019 20:15:05 +0200 |
parents | 9c90cf08cfa8 |
children | 6990c1160ea5 |
comparison
equal
deleted
inserted
replaced
16864:625dec2f1b1b | 16865:d615cc95089c |
---|---|
1 " Test for cinoptions and cindent | 1 " Test for cinoptions and cindent |
2 " | 2 " |
3 " TODO: rewrite test3.in into this new style test | |
4 | 3 |
5 func Test_cino_hash() | 4 func Test_cino_hash() |
6 " Test that curbuf->b_ind_hash_comment is correctly reset | 5 " Test that curbuf->b_ind_hash_comment is correctly reset |
7 new | 6 new |
8 setlocal cindent cinoptions=#1 | 7 setlocal cindent cinoptions=#1 |
126 call assert_equal(cindent(3), &sw) | 125 call assert_equal(cindent(3), &sw) |
127 call assert_equal(cindent(line('$')+1), -1) | 126 call assert_equal(cindent(line('$')+1), -1) |
128 bwipe! | 127 bwipe! |
129 endfunc | 128 endfunc |
130 | 129 |
130 func Test_cindent_1() | |
131 new | |
132 setl cindent ts=4 sw=4 | |
133 setl cino& sts& | |
134 | |
135 let code =<< trim [CODE] | |
136 /* start of AUTO matically checked vim: set ts=4 : */ | |
137 { | |
138 if (test) | |
139 cmd1; | |
140 cmd2; | |
141 } | |
142 | |
143 { | |
144 if (test) | |
145 cmd1; | |
146 else | |
147 cmd2; | |
148 } | |
149 | |
150 { | |
151 if (test) | |
152 { | |
153 cmd1; | |
154 cmd2; | |
155 } | |
156 } | |
157 | |
158 { | |
159 if (test) | |
160 { | |
161 cmd1; | |
162 else | |
163 } | |
164 } | |
165 | |
166 { | |
167 while (this) | |
168 if (test) | |
169 cmd1; | |
170 cmd2; | |
171 } | |
172 | |
173 { | |
174 while (this) | |
175 if (test) | |
176 cmd1; | |
177 else | |
178 cmd2; | |
179 } | |
180 | |
181 { | |
182 if (test) | |
183 { | |
184 cmd; | |
185 } | |
186 | |
187 if (test) | |
188 cmd; | |
189 } | |
190 | |
191 { | |
192 if (test) { | |
193 cmd; | |
194 } | |
195 | |
196 if (test) cmd; | |
197 } | |
198 | |
199 { | |
200 cmd1; | |
201 for (blah) | |
202 while (this) | |
203 if (test) | |
204 cmd2; | |
205 cmd3; | |
206 } | |
207 | |
208 { | |
209 cmd1; | |
210 for (blah) | |
211 while (this) | |
212 if (test) | |
213 cmd2; | |
214 cmd3; | |
215 | |
216 if (test) | |
217 { | |
218 cmd1; | |
219 cmd2; | |
220 cmd3; | |
221 } | |
222 } | |
223 | |
224 | |
225 /* Test for 'cindent' do/while mixed with if/else: */ | |
226 | |
227 { | |
228 do | |
229 if (asdf) | |
230 asdfasd; | |
231 while (cond); | |
232 | |
233 do | |
234 if (asdf) | |
235 while (asdf) | |
236 asdf; | |
237 while (asdf); | |
238 } | |
239 | |
240 /* Test for 'cindent' with two ) on a continuation line */ | |
241 { | |
242 if (asdfasdf;asldkfj asdlkfj as;ldkfj sal;d | |
243 aal;sdkjf ( ;asldfkja;sldfk | |
244 al;sdjfka ;slkdf ) sa;ldkjfsa dlk;) | |
245 line up here; | |
246 } | |
247 | |
248 | |
249 /* C++ tests: */ | |
250 | |
251 // foo() these three lines should remain in column 0 | |
252 // { | |
253 // } | |
254 | |
255 /* Test for continuation and unterminated lines: */ | |
256 { | |
257 i = 99 + 14325 + | |
258 21345 + | |
259 21345 + | |
260 21345 + ( 21345 + | |
261 21345) + | |
262 2345 + | |
263 1234; | |
264 c = 1; | |
265 } | |
266 | |
267 /* | |
268 testje for indent with empty line | |
269 | |
270 here */ | |
271 | |
272 { | |
273 if (testing && | |
274 not a joke || | |
275 line up here) | |
276 hay; | |
277 if (testing && | |
278 (not a joke || testing | |
279 )line up here) | |
280 hay; | |
281 if (testing && | |
282 (not a joke || testing | |
283 line up here)) | |
284 hay; | |
285 } | |
286 | |
287 | |
288 { | |
289 switch (c) | |
290 { | |
291 case xx: | |
292 do | |
293 if (asdf) | |
294 do | |
295 asdfasdf; | |
296 while (asdf); | |
297 else | |
298 asdfasdf; | |
299 while (cond); | |
300 case yy: | |
301 case xx: | |
302 case zz: | |
303 testing; | |
304 } | |
305 } | |
306 | |
307 { | |
308 if (cond) { | |
309 foo; | |
310 } | |
311 else | |
312 { | |
313 bar; | |
314 } | |
315 } | |
316 | |
317 { | |
318 if (alskdfj ;alsdkfjal;skdjf (;sadlkfsa ;dlkf j;alksdfj ;alskdjf | |
319 alsdkfj (asldk;fj | |
320 awith cino=(0 ;lf this one goes to below the paren with == | |
321 ;laksjfd ;lsakdjf ;alskdf asd) | |
322 asdfasdf;))) | |
323 asdfasdf; | |
324 } | |
325 | |
326 int | |
327 func(a, b) | |
328 int a; | |
329 int c; | |
330 { | |
331 if (c1 && (c2 || | |
332 c3)) | |
333 foo; | |
334 if (c1 && | |
335 (c2 || c3) | |
336 ) | |
337 } | |
338 | |
339 { | |
340 while (asd) | |
341 { | |
342 if (asdf) | |
343 if (test) | |
344 if (that) | |
345 { | |
346 if (asdf) | |
347 do | |
348 cdasd; | |
349 while (as | |
350 df); | |
351 } | |
352 else | |
353 if (asdf) | |
354 asdf; | |
355 else | |
356 asdf; | |
357 asdf; | |
358 } | |
359 } | |
360 | |
361 { | |
362 s = "/*"; b = ';' | |
363 s = "/*"; b = ';'; | |
364 a = b; | |
365 } | |
366 | |
367 { | |
368 switch (a) | |
369 { | |
370 case a: | |
371 switch (t) | |
372 { | |
373 case 1: | |
374 cmd; | |
375 break; | |
376 case 2: | |
377 cmd; | |
378 break; | |
379 } | |
380 cmd; | |
381 break; | |
382 case b: | |
383 { | |
384 int i; | |
385 cmd; | |
386 } | |
387 break; | |
388 case c: { | |
389 int i; | |
390 cmd; | |
391 } | |
392 case d: if (cond && | |
393 test) { /* this line doesn't work right */ | |
394 int i; | |
395 cmd; | |
396 } | |
397 break; | |
398 } | |
399 } | |
400 | |
401 { | |
402 if (!(vim_strchr(p_cpo, CPO_BUFOPTGLOB) != NULL && entering) && | |
403 (bp_to->b_p_initialized || | |
404 (!entering && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) | |
405 return; | |
406 label : | |
407 asdf = asdf ? | |
408 asdf : asdf; | |
409 asdf = asdf ? | |
410 asdf: asdf; | |
411 } | |
412 | |
413 /* Special Comments : This function has the added complexity (compared */ | |
414 /* : to addtolist) of having to check for a detail */ | |
415 /* : texture and add that to the list first. */ | |
416 | |
417 char *(array[100]) = { | |
418 "testje", | |
419 "foo", | |
420 "bar", | |
421 } | |
422 | |
423 enum soppie | |
424 { | |
425 yes = 0, | |
426 no, | |
427 maybe | |
428 }; | |
429 | |
430 typedef enum soppie | |
431 { | |
432 yes = 0, | |
433 no, | |
434 maybe | |
435 }; | |
436 | |
437 static enum | |
438 { | |
439 yes = 0, | |
440 no, | |
441 maybe | |
442 } soppie; | |
443 | |
444 public static enum | |
445 { | |
446 yes = 0, | |
447 no, | |
448 maybe | |
449 } soppie; | |
450 | |
451 static private enum | |
452 { | |
453 yes = 0, | |
454 no, | |
455 maybe | |
456 } soppie; | |
457 | |
458 { | |
459 int a, | |
460 b; | |
461 } | |
462 | |
463 { | |
464 struct Type | |
465 { | |
466 int i; | |
467 char *str; | |
468 } var[] = | |
469 { | |
470 0, "zero", | |
471 1, "one", | |
472 2, "two", | |
473 3, "three" | |
474 }; | |
475 | |
476 float matrix[3][3] = | |
477 { | |
478 { | |
479 0, | |
480 1, | |
481 2 | |
482 }, | |
483 { | |
484 3, | |
485 4, | |
486 5 | |
487 }, | |
488 { | |
489 6, | |
490 7, | |
491 8 | |
492 } | |
493 }; | |
494 } | |
495 | |
496 { | |
497 /* blah ( blah */ | |
498 /* where does this go? */ | |
499 | |
500 /* blah ( blah */ | |
501 cmd; | |
502 | |
503 func(arg1, | |
504 /* comment */ | |
505 arg2); | |
506 a; | |
507 { | |
508 b; | |
509 { | |
510 c; /* Hey, NOW it indents?! */ | |
511 } | |
512 } | |
513 | |
514 { | |
515 func(arg1, | |
516 arg2, | |
517 arg3); | |
518 /* Hey, what am I doing here? Is this coz of the ","? */ | |
519 } | |
520 } | |
521 | |
522 main () | |
523 { | |
524 if (cond) | |
525 { | |
526 a = b; | |
527 } | |
528 if (cond) { | |
529 a = c; | |
530 } | |
531 if (cond) | |
532 a = d; | |
533 return; | |
534 } | |
535 | |
536 { | |
537 case 2: if (asdf && | |
538 asdfasdf) | |
539 aasdf; | |
540 a = 9; | |
541 case 3: if (asdf) | |
542 aasdf; | |
543 a = 9; | |
544 case 4: x = 1; | |
545 y = 2; | |
546 | |
547 label: if (asdf) | |
548 here; | |
549 | |
550 label: if (asdf && | |
551 asdfasdf) | |
552 { | |
553 } | |
554 | |
555 label: if (asdf && | |
556 asdfasdf) { | |
557 there; | |
558 } | |
559 | |
560 label: if (asdf && | |
561 asdfasdf) | |
562 there; | |
563 } | |
564 | |
565 { | |
566 /* | |
567 hello with ":set comments= cino=c5" | |
568 */ | |
569 | |
570 /* | |
571 hello with ":set comments= cino=" | |
572 */ | |
573 } | |
574 | |
575 | |
576 { | |
577 if (a < b) { | |
578 a = a + 1; | |
579 } else | |
580 a = a + 2; | |
581 | |
582 if (a) | |
583 do { | |
584 testing; | |
585 } while (asdfasdf); | |
586 a = b + 1; | |
587 asdfasdf | |
588 } | |
589 | |
590 { | |
591 for ( int i = 0; | |
592 i < 10; i++ ) | |
593 { | |
594 } | |
595 i = 0; | |
596 } | |
597 | |
598 class bob | |
599 { | |
600 int foo() {return 1;} | |
601 int bar; | |
602 } | |
603 | |
604 main() | |
605 { | |
606 while(1) | |
607 if (foo) | |
608 { | |
609 bar; | |
610 } | |
611 else { | |
612 asdf; | |
613 } | |
614 misplacedline; | |
615 } | |
616 | |
617 { | |
618 if (clipboard.state == SELECT_DONE | |
619 && ((row == clipboard.start.lnum | |
620 && col >= clipboard.start.col) | |
621 || row > clipboard.start.lnum)) | |
622 } | |
623 | |
624 { | |
625 if (1) {i += 4;} | |
626 where_am_i; | |
627 return 0; | |
628 } | |
629 | |
630 { | |
631 { | |
632 } // sdf(asdf | |
633 if (asdf) | |
634 asd; | |
635 } | |
636 | |
637 { | |
638 label1: | |
639 label2: | |
640 } | |
641 | |
642 { | |
643 int fooRet = foo(pBar1, false /*fKB*/, | |
644 true /*fPTB*/, 3 /*nT*/, false /*fDF*/); | |
645 f() { | |
646 for ( i = 0; | |
647 i < m; | |
648 /* c */ i++ ) { | |
649 a = b; | |
650 } | |
651 } | |
652 } | |
653 | |
654 { | |
655 f1(/*comment*/); | |
656 f2(); | |
657 } | |
658 | |
659 { | |
660 do { | |
661 if (foo) { | |
662 } else | |
663 ; | |
664 } while (foo); | |
665 foo(); // was wrong | |
666 } | |
667 | |
668 int x; // no extra indent because of the ; | |
669 void func() | |
670 { | |
671 } | |
672 | |
673 char *tab[] = {"aaa", | |
674 "};", /* }; */ NULL} | |
675 int indented; | |
676 {} | |
677 | |
678 char *a[] = {"aaa", "bbb", | |
679 "ccc", NULL}; | |
680 // here | |
681 | |
682 char *tab[] = {"aaa", | |
683 "xx", /* xx */}; /* asdf */ | |
684 int not_indented; | |
685 | |
686 { | |
687 do { | |
688 switch (bla) | |
689 { | |
690 case 1: if (foo) | |
691 bar; | |
692 } | |
693 } while (boo); | |
694 wrong; | |
695 } | |
696 | |
697 int foo, | |
698 bar; | |
699 int foo; | |
700 | |
701 #if defined(foo) \ | |
702 && defined(bar) | |
703 char * xx = "asdf\ | |
704 foo\ | |
705 bor"; | |
706 int x; | |
707 | |
708 char *foo = "asdf\ | |
709 asdf\ | |
710 asdf", | |
711 *bar; | |
712 | |
713 void f() | |
714 { | |
715 #if defined(foo) \ | |
716 && defined(bar) | |
717 char *foo = "asdf\ | |
718 asdf\ | |
719 asdf", | |
720 *bar; | |
721 { | |
722 int i; | |
723 char *foo = "asdf\ | |
724 asdf\ | |
725 asdf", | |
726 *bar; | |
727 } | |
728 #endif | |
729 } | |
730 #endif | |
731 | |
732 int y; // comment | |
733 // comment | |
734 | |
735 // comment | |
736 | |
737 { | |
738 Constructor(int a, | |
739 int b ) : BaseClass(a) | |
740 { | |
741 } | |
742 } | |
743 | |
744 void foo() | |
745 { | |
746 char one, | |
747 two; | |
748 struct bla piet, | |
749 jan; | |
750 enum foo kees, | |
751 jannie; | |
752 static unsigned sdf, | |
753 krap; | |
754 unsigned int piet, | |
755 jan; | |
756 int | |
757 kees, | |
758 jan; | |
759 } | |
760 | |
761 { | |
762 t(int f, | |
763 int d); // ) | |
764 d(); | |
765 } | |
766 | |
767 Constructor::Constructor(int a, | |
768 int b | |
769 ) : | |
770 BaseClass(a, | |
771 b, | |
772 c), | |
773 mMember(b), | |
774 { | |
775 } | |
776 | |
777 Constructor::Constructor(int a, | |
778 int b ) : | |
779 BaseClass(a) | |
780 { | |
781 } | |
782 | |
783 Constructor::Constructor(int a, | |
784 int b ) /*x*/ : /*x*/ BaseClass(a), | |
785 member(b) | |
786 { | |
787 } | |
788 | |
789 A::A(int a, int b) | |
790 : aa(a), | |
791 bb(b), | |
792 cc(c) | |
793 { | |
794 } | |
795 | |
796 class CAbc : | |
797 public BaseClass1, | |
798 protected BaseClass2 | |
799 { | |
800 int Test() { return FALSE; } | |
801 int Test1() { return TRUE; } | |
802 | |
803 CAbc(int a, int b ) : | |
804 BaseClass(a) | |
805 { | |
806 switch(xxx) | |
807 { | |
808 case abc: | |
809 asdf(); | |
810 break; | |
811 | |
812 case 999: | |
813 baer(); | |
814 break; | |
815 } | |
816 } | |
817 | |
818 public: // <-- this was incoreectly indented before!! | |
819 void testfall(); | |
820 protected: | |
821 void testfall(); | |
822 }; | |
823 | |
824 class CAbc : public BaseClass1, | |
825 protected BaseClass2 | |
826 { | |
827 }; | |
828 | |
829 static struct | |
830 { | |
831 int a; | |
832 int b; | |
833 } variable[COUNT] = | |
834 { | |
835 { | |
836 123, | |
837 456 | |
838 }, | |
839 { | |
840 123, | |
841 456 | |
842 } | |
843 }; | |
844 | |
845 static struct | |
846 { | |
847 int a; | |
848 int b; | |
849 } variable[COUNT] = | |
850 { | |
851 { 123, 456 }, | |
852 { 123, 456 } | |
853 }; | |
854 | |
855 void asdf() /* ind_maxparen may cause trouble here */ | |
856 { | |
857 if ((0 | |
858 && 1 | |
859 && 1 | |
860 && 1 | |
861 && 1 | |
862 && 1 | |
863 && 1 | |
864 && 1 | |
865 && 1 | |
866 && 1 | |
867 && 1 | |
868 && 1 | |
869 && 1 | |
870 && 1 | |
871 && 1 | |
872 && 1 | |
873 && 1 | |
874 && 1 | |
875 && 1 | |
876 && 1 | |
877 && 1 | |
878 && 1 | |
879 && 1 | |
880 && 1 | |
881 && 1 | |
882 && 1)) break; | |
883 } | |
884 | |
885 foo() | |
886 { | |
887 a = cond ? foo() : asdf | |
888 + asdf; | |
889 | |
890 a = cond ? | |
891 foo() : asdf | |
892 + asdf; | |
893 } | |
894 | |
895 int main(void) | |
896 { | |
897 if (a) | |
898 if (b) | |
899 2; | |
900 else 3; | |
901 next_line_of_code(); | |
902 } | |
903 | |
904 barry() | |
905 { | |
906 Foo::Foo (int one, | |
907 int two) | |
908 : something(4) | |
909 {} | |
910 } | |
911 | |
912 barry() | |
913 { | |
914 Foo::Foo (int one, int two) | |
915 : something(4) | |
916 {} | |
917 } | |
918 | |
919 Constructor::Constructor(int a, | |
920 int b | |
921 ) : | |
922 BaseClass(a, | |
923 b, | |
924 c), | |
925 mMember(b) | |
926 { | |
927 } | |
928 int main () | |
929 { | |
930 if (lala) | |
931 do | |
932 ++(*lolo); | |
933 while (lili | |
934 && lele); | |
935 lulu; | |
936 } | |
937 | |
938 int main () | |
939 { | |
940 switch (c) | |
941 { | |
942 case 'c': if (cond) | |
943 { | |
944 } | |
945 } | |
946 } | |
947 | |
948 main() | |
949 { | |
950 (void) MyFancyFuasdfadsfnction( | |
951 argument); | |
952 } | |
953 | |
954 main() | |
955 { | |
956 char foo[] = "/*"; | |
957 /* as | |
958 df */ | |
959 hello | |
960 } | |
961 | |
962 /* valid namespaces with normal indent */ | |
963 namespace | |
964 { | |
965 { | |
966 111111111111; | |
967 } | |
968 } | |
969 namespace /* test */ | |
970 { | |
971 11111111111111111; | |
972 } | |
973 namespace // test | |
974 { | |
975 111111111111111111; | |
976 } | |
977 namespace | |
978 { | |
979 111111111111111111; | |
980 } | |
981 namespace test | |
982 { | |
983 111111111111111111; | |
984 } | |
985 namespace{ | |
986 111111111111111111; | |
987 } | |
988 namespace test{ | |
989 111111111111111111; | |
990 } | |
991 namespace { | |
992 111111111111111111; | |
993 } | |
994 namespace test { | |
995 111111111111111111; | |
996 namespace test2 { | |
997 22222222222222222; | |
998 } | |
999 } | |
1000 | |
1001 /* invalid namespaces use block indent */ | |
1002 namespace test test2 { | |
1003 111111111111111111111; | |
1004 } | |
1005 namespace11111111111 { | |
1006 111111111111; | |
1007 } | |
1008 namespace() { | |
1009 1111111111111; | |
1010 } | |
1011 namespace() | |
1012 { | |
1013 111111111111111111; | |
1014 } | |
1015 namespace test test2 | |
1016 { | |
1017 1111111111111111111; | |
1018 } | |
1019 namespace111111111 | |
1020 { | |
1021 111111111111111111; | |
1022 } | |
1023 | |
1024 void getstring() { | |
1025 /* Raw strings */ | |
1026 const char* s = R"( | |
1027 test { | |
1028 # comment | |
1029 field: 123 | |
1030 } | |
1031 )"; | |
1032 } | |
1033 | |
1034 void getstring() { | |
1035 const char* s = R"foo( | |
1036 test { | |
1037 # comment | |
1038 field: 123 | |
1039 } | |
1040 )foo"; | |
1041 } | |
1042 | |
1043 { | |
1044 int a[4] = { | |
1045 [0] = 0, | |
1046 [1] = 1, | |
1047 [2] = 2, | |
1048 [3] = 3, | |
1049 }; | |
1050 } | |
1051 | |
1052 { | |
1053 a = b[2] | |
1054 + 3; | |
1055 } | |
1056 | |
1057 { | |
1058 if (1) | |
1059 /* aaaaa | |
1060 * bbbbb | |
1061 */ | |
1062 a = 1; | |
1063 } | |
1064 | |
1065 void func() | |
1066 { | |
1067 switch (foo) | |
1068 { | |
1069 case (bar): | |
1070 if (baz()) | |
1071 quux(); | |
1072 break; | |
1073 case (shmoo): | |
1074 if (!bar) | |
1075 { | |
1076 } | |
1077 case (foo1): | |
1078 switch (bar) | |
1079 { | |
1080 case baz: | |
1081 baz_f(); | |
1082 break; | |
1083 } | |
1084 break; | |
1085 default: | |
1086 baz(); | |
1087 baz(); | |
1088 break; | |
1089 } | |
1090 } | |
1091 | |
1092 /* end of AUTO */ | |
1093 [CODE] | |
1094 | |
1095 call append(0, code) | |
1096 normal gg | |
1097 call search('start of AUTO') | |
1098 exe "normal =/end of AUTO\<CR>" | |
1099 | |
1100 let expected =<< trim [CODE] | |
1101 /* start of AUTO matically checked vim: set ts=4 : */ | |
1102 { | |
1103 if (test) | |
1104 cmd1; | |
1105 cmd2; | |
1106 } | |
1107 | |
1108 { | |
1109 if (test) | |
1110 cmd1; | |
1111 else | |
1112 cmd2; | |
1113 } | |
1114 | |
1115 { | |
1116 if (test) | |
1117 { | |
1118 cmd1; | |
1119 cmd2; | |
1120 } | |
1121 } | |
1122 | |
1123 { | |
1124 if (test) | |
1125 { | |
1126 cmd1; | |
1127 else | |
1128 } | |
1129 } | |
1130 | |
1131 { | |
1132 while (this) | |
1133 if (test) | |
1134 cmd1; | |
1135 cmd2; | |
1136 } | |
1137 | |
1138 { | |
1139 while (this) | |
1140 if (test) | |
1141 cmd1; | |
1142 else | |
1143 cmd2; | |
1144 } | |
1145 | |
1146 { | |
1147 if (test) | |
1148 { | |
1149 cmd; | |
1150 } | |
1151 | |
1152 if (test) | |
1153 cmd; | |
1154 } | |
1155 | |
1156 { | |
1157 if (test) { | |
1158 cmd; | |
1159 } | |
1160 | |
1161 if (test) cmd; | |
1162 } | |
1163 | |
1164 { | |
1165 cmd1; | |
1166 for (blah) | |
1167 while (this) | |
1168 if (test) | |
1169 cmd2; | |
1170 cmd3; | |
1171 } | |
1172 | |
1173 { | |
1174 cmd1; | |
1175 for (blah) | |
1176 while (this) | |
1177 if (test) | |
1178 cmd2; | |
1179 cmd3; | |
1180 | |
1181 if (test) | |
1182 { | |
1183 cmd1; | |
1184 cmd2; | |
1185 cmd3; | |
1186 } | |
1187 } | |
1188 | |
1189 | |
1190 /* Test for 'cindent' do/while mixed with if/else: */ | |
1191 | |
1192 { | |
1193 do | |
1194 if (asdf) | |
1195 asdfasd; | |
1196 while (cond); | |
1197 | |
1198 do | |
1199 if (asdf) | |
1200 while (asdf) | |
1201 asdf; | |
1202 while (asdf); | |
1203 } | |
1204 | |
1205 /* Test for 'cindent' with two ) on a continuation line */ | |
1206 { | |
1207 if (asdfasdf;asldkfj asdlkfj as;ldkfj sal;d | |
1208 aal;sdkjf ( ;asldfkja;sldfk | |
1209 al;sdjfka ;slkdf ) sa;ldkjfsa dlk;) | |
1210 line up here; | |
1211 } | |
1212 | |
1213 | |
1214 /* C++ tests: */ | |
1215 | |
1216 // foo() these three lines should remain in column 0 | |
1217 // { | |
1218 // } | |
1219 | |
1220 /* Test for continuation and unterminated lines: */ | |
1221 { | |
1222 i = 99 + 14325 + | |
1223 21345 + | |
1224 21345 + | |
1225 21345 + ( 21345 + | |
1226 21345) + | |
1227 2345 + | |
1228 1234; | |
1229 c = 1; | |
1230 } | |
1231 | |
1232 /* | |
1233 testje for indent with empty line | |
1234 | |
1235 here */ | |
1236 | |
1237 { | |
1238 if (testing && | |
1239 not a joke || | |
1240 line up here) | |
1241 hay; | |
1242 if (testing && | |
1243 (not a joke || testing | |
1244 )line up here) | |
1245 hay; | |
1246 if (testing && | |
1247 (not a joke || testing | |
1248 line up here)) | |
1249 hay; | |
1250 } | |
1251 | |
1252 | |
1253 { | |
1254 switch (c) | |
1255 { | |
1256 case xx: | |
1257 do | |
1258 if (asdf) | |
1259 do | |
1260 asdfasdf; | |
1261 while (asdf); | |
1262 else | |
1263 asdfasdf; | |
1264 while (cond); | |
1265 case yy: | |
1266 case xx: | |
1267 case zz: | |
1268 testing; | |
1269 } | |
1270 } | |
1271 | |
1272 { | |
1273 if (cond) { | |
1274 foo; | |
1275 } | |
1276 else | |
1277 { | |
1278 bar; | |
1279 } | |
1280 } | |
1281 | |
1282 { | |
1283 if (alskdfj ;alsdkfjal;skdjf (;sadlkfsa ;dlkf j;alksdfj ;alskdjf | |
1284 alsdkfj (asldk;fj | |
1285 awith cino=(0 ;lf this one goes to below the paren with == | |
1286 ;laksjfd ;lsakdjf ;alskdf asd) | |
1287 asdfasdf;))) | |
1288 asdfasdf; | |
1289 } | |
1290 | |
1291 int | |
1292 func(a, b) | |
1293 int a; | |
1294 int c; | |
1295 { | |
1296 if (c1 && (c2 || | |
1297 c3)) | |
1298 foo; | |
1299 if (c1 && | |
1300 (c2 || c3) | |
1301 ) | |
1302 } | |
1303 | |
1304 { | |
1305 while (asd) | |
1306 { | |
1307 if (asdf) | |
1308 if (test) | |
1309 if (that) | |
1310 { | |
1311 if (asdf) | |
1312 do | |
1313 cdasd; | |
1314 while (as | |
1315 df); | |
1316 } | |
1317 else | |
1318 if (asdf) | |
1319 asdf; | |
1320 else | |
1321 asdf; | |
1322 asdf; | |
1323 } | |
1324 } | |
1325 | |
1326 { | |
1327 s = "/*"; b = ';' | |
1328 s = "/*"; b = ';'; | |
1329 a = b; | |
1330 } | |
1331 | |
1332 { | |
1333 switch (a) | |
1334 { | |
1335 case a: | |
1336 switch (t) | |
1337 { | |
1338 case 1: | |
1339 cmd; | |
1340 break; | |
1341 case 2: | |
1342 cmd; | |
1343 break; | |
1344 } | |
1345 cmd; | |
1346 break; | |
1347 case b: | |
1348 { | |
1349 int i; | |
1350 cmd; | |
1351 } | |
1352 break; | |
1353 case c: { | |
1354 int i; | |
1355 cmd; | |
1356 } | |
1357 case d: if (cond && | |
1358 test) { /* this line doesn't work right */ | |
1359 int i; | |
1360 cmd; | |
1361 } | |
1362 break; | |
1363 } | |
1364 } | |
1365 | |
1366 { | |
1367 if (!(vim_strchr(p_cpo, CPO_BUFOPTGLOB) != NULL && entering) && | |
1368 (bp_to->b_p_initialized || | |
1369 (!entering && vim_strchr(p_cpo, CPO_BUFOPT) != NULL))) | |
1370 return; | |
1371 label : | |
1372 asdf = asdf ? | |
1373 asdf : asdf; | |
1374 asdf = asdf ? | |
1375 asdf: asdf; | |
1376 } | |
1377 | |
1378 /* Special Comments : This function has the added complexity (compared */ | |
1379 /* : to addtolist) of having to check for a detail */ | |
1380 /* : texture and add that to the list first. */ | |
1381 | |
1382 char *(array[100]) = { | |
1383 "testje", | |
1384 "foo", | |
1385 "bar", | |
1386 } | |
1387 | |
1388 enum soppie | |
1389 { | |
1390 yes = 0, | |
1391 no, | |
1392 maybe | |
1393 }; | |
1394 | |
1395 typedef enum soppie | |
1396 { | |
1397 yes = 0, | |
1398 no, | |
1399 maybe | |
1400 }; | |
1401 | |
1402 static enum | |
1403 { | |
1404 yes = 0, | |
1405 no, | |
1406 maybe | |
1407 } soppie; | |
1408 | |
1409 public static enum | |
1410 { | |
1411 yes = 0, | |
1412 no, | |
1413 maybe | |
1414 } soppie; | |
1415 | |
1416 static private enum | |
1417 { | |
1418 yes = 0, | |
1419 no, | |
1420 maybe | |
1421 } soppie; | |
1422 | |
1423 { | |
1424 int a, | |
1425 b; | |
1426 } | |
1427 | |
1428 { | |
1429 struct Type | |
1430 { | |
1431 int i; | |
1432 char *str; | |
1433 } var[] = | |
1434 { | |
1435 0, "zero", | |
1436 1, "one", | |
1437 2, "two", | |
1438 3, "three" | |
1439 }; | |
1440 | |
1441 float matrix[3][3] = | |
1442 { | |
1443 { | |
1444 0, | |
1445 1, | |
1446 2 | |
1447 }, | |
1448 { | |
1449 3, | |
1450 4, | |
1451 5 | |
1452 }, | |
1453 { | |
1454 6, | |
1455 7, | |
1456 8 | |
1457 } | |
1458 }; | |
1459 } | |
1460 | |
1461 { | |
1462 /* blah ( blah */ | |
1463 /* where does this go? */ | |
1464 | |
1465 /* blah ( blah */ | |
1466 cmd; | |
1467 | |
1468 func(arg1, | |
1469 /* comment */ | |
1470 arg2); | |
1471 a; | |
1472 { | |
1473 b; | |
1474 { | |
1475 c; /* Hey, NOW it indents?! */ | |
1476 } | |
1477 } | |
1478 | |
1479 { | |
1480 func(arg1, | |
1481 arg2, | |
1482 arg3); | |
1483 /* Hey, what am I doing here? Is this coz of the ","? */ | |
1484 } | |
1485 } | |
1486 | |
1487 main () | |
1488 { | |
1489 if (cond) | |
1490 { | |
1491 a = b; | |
1492 } | |
1493 if (cond) { | |
1494 a = c; | |
1495 } | |
1496 if (cond) | |
1497 a = d; | |
1498 return; | |
1499 } | |
1500 | |
1501 { | |
1502 case 2: if (asdf && | |
1503 asdfasdf) | |
1504 aasdf; | |
1505 a = 9; | |
1506 case 3: if (asdf) | |
1507 aasdf; | |
1508 a = 9; | |
1509 case 4: x = 1; | |
1510 y = 2; | |
1511 | |
1512 label: if (asdf) | |
1513 here; | |
1514 | |
1515 label: if (asdf && | |
1516 asdfasdf) | |
1517 { | |
1518 } | |
1519 | |
1520 label: if (asdf && | |
1521 asdfasdf) { | |
1522 there; | |
1523 } | |
1524 | |
1525 label: if (asdf && | |
1526 asdfasdf) | |
1527 there; | |
1528 } | |
1529 | |
1530 { | |
1531 /* | |
1532 hello with ":set comments= cino=c5" | |
1533 */ | |
1534 | |
1535 /* | |
1536 hello with ":set comments= cino=" | |
1537 */ | |
1538 } | |
1539 | |
1540 | |
1541 { | |
1542 if (a < b) { | |
1543 a = a + 1; | |
1544 } else | |
1545 a = a + 2; | |
1546 | |
1547 if (a) | |
1548 do { | |
1549 testing; | |
1550 } while (asdfasdf); | |
1551 a = b + 1; | |
1552 asdfasdf | |
1553 } | |
1554 | |
1555 { | |
1556 for ( int i = 0; | |
1557 i < 10; i++ ) | |
1558 { | |
1559 } | |
1560 i = 0; | |
1561 } | |
1562 | |
1563 class bob | |
1564 { | |
1565 int foo() {return 1;} | |
1566 int bar; | |
1567 } | |
1568 | |
1569 main() | |
1570 { | |
1571 while(1) | |
1572 if (foo) | |
1573 { | |
1574 bar; | |
1575 } | |
1576 else { | |
1577 asdf; | |
1578 } | |
1579 misplacedline; | |
1580 } | |
1581 | |
1582 { | |
1583 if (clipboard.state == SELECT_DONE | |
1584 && ((row == clipboard.start.lnum | |
1585 && col >= clipboard.start.col) | |
1586 || row > clipboard.start.lnum)) | |
1587 } | |
1588 | |
1589 { | |
1590 if (1) {i += 4;} | |
1591 where_am_i; | |
1592 return 0; | |
1593 } | |
1594 | |
1595 { | |
1596 { | |
1597 } // sdf(asdf | |
1598 if (asdf) | |
1599 asd; | |
1600 } | |
1601 | |
1602 { | |
1603 label1: | |
1604 label2: | |
1605 } | |
1606 | |
1607 { | |
1608 int fooRet = foo(pBar1, false /*fKB*/, | |
1609 true /*fPTB*/, 3 /*nT*/, false /*fDF*/); | |
1610 f() { | |
1611 for ( i = 0; | |
1612 i < m; | |
1613 /* c */ i++ ) { | |
1614 a = b; | |
1615 } | |
1616 } | |
1617 } | |
1618 | |
1619 { | |
1620 f1(/*comment*/); | |
1621 f2(); | |
1622 } | |
1623 | |
1624 { | |
1625 do { | |
1626 if (foo) { | |
1627 } else | |
1628 ; | |
1629 } while (foo); | |
1630 foo(); // was wrong | |
1631 } | |
1632 | |
1633 int x; // no extra indent because of the ; | |
1634 void func() | |
1635 { | |
1636 } | |
1637 | |
1638 char *tab[] = {"aaa", | |
1639 "};", /* }; */ NULL} | |
1640 int indented; | |
1641 {} | |
1642 | |
1643 char *a[] = {"aaa", "bbb", | |
1644 "ccc", NULL}; | |
1645 // here | |
1646 | |
1647 char *tab[] = {"aaa", | |
1648 "xx", /* xx */}; /* asdf */ | |
1649 int not_indented; | |
1650 | |
1651 { | |
1652 do { | |
1653 switch (bla) | |
1654 { | |
1655 case 1: if (foo) | |
1656 bar; | |
1657 } | |
1658 } while (boo); | |
1659 wrong; | |
1660 } | |
1661 | |
1662 int foo, | |
1663 bar; | |
1664 int foo; | |
1665 | |
1666 #if defined(foo) \ | |
1667 && defined(bar) | |
1668 char * xx = "asdf\ | |
1669 foo\ | |
1670 bor"; | |
1671 int x; | |
1672 | |
1673 char *foo = "asdf\ | |
1674 asdf\ | |
1675 asdf", | |
1676 *bar; | |
1677 | |
1678 void f() | |
1679 { | |
1680 #if defined(foo) \ | |
1681 && defined(bar) | |
1682 char *foo = "asdf\ | |
1683 asdf\ | |
1684 asdf", | |
1685 *bar; | |
1686 { | |
1687 int i; | |
1688 char *foo = "asdf\ | |
1689 asdf\ | |
1690 asdf", | |
1691 *bar; | |
1692 } | |
1693 #endif | |
1694 } | |
1695 #endif | |
1696 | |
1697 int y; // comment | |
1698 // comment | |
1699 | |
1700 // comment | |
1701 | |
1702 { | |
1703 Constructor(int a, | |
1704 int b ) : BaseClass(a) | |
1705 { | |
1706 } | |
1707 } | |
1708 | |
1709 void foo() | |
1710 { | |
1711 char one, | |
1712 two; | |
1713 struct bla piet, | |
1714 jan; | |
1715 enum foo kees, | |
1716 jannie; | |
1717 static unsigned sdf, | |
1718 krap; | |
1719 unsigned int piet, | |
1720 jan; | |
1721 int | |
1722 kees, | |
1723 jan; | |
1724 } | |
1725 | |
1726 { | |
1727 t(int f, | |
1728 int d); // ) | |
1729 d(); | |
1730 } | |
1731 | |
1732 Constructor::Constructor(int a, | |
1733 int b | |
1734 ) : | |
1735 BaseClass(a, | |
1736 b, | |
1737 c), | |
1738 mMember(b), | |
1739 { | |
1740 } | |
1741 | |
1742 Constructor::Constructor(int a, | |
1743 int b ) : | |
1744 BaseClass(a) | |
1745 { | |
1746 } | |
1747 | |
1748 Constructor::Constructor(int a, | |
1749 int b ) /*x*/ : /*x*/ BaseClass(a), | |
1750 member(b) | |
1751 { | |
1752 } | |
1753 | |
1754 A::A(int a, int b) | |
1755 : aa(a), | |
1756 bb(b), | |
1757 cc(c) | |
1758 { | |
1759 } | |
1760 | |
1761 class CAbc : | |
1762 public BaseClass1, | |
1763 protected BaseClass2 | |
1764 { | |
1765 int Test() { return FALSE; } | |
1766 int Test1() { return TRUE; } | |
1767 | |
1768 CAbc(int a, int b ) : | |
1769 BaseClass(a) | |
1770 { | |
1771 switch(xxx) | |
1772 { | |
1773 case abc: | |
1774 asdf(); | |
1775 break; | |
1776 | |
1777 case 999: | |
1778 baer(); | |
1779 break; | |
1780 } | |
1781 } | |
1782 | |
1783 public: // <-- this was incoreectly indented before!! | |
1784 void testfall(); | |
1785 protected: | |
1786 void testfall(); | |
1787 }; | |
1788 | |
1789 class CAbc : public BaseClass1, | |
1790 protected BaseClass2 | |
1791 { | |
1792 }; | |
1793 | |
1794 static struct | |
1795 { | |
1796 int a; | |
1797 int b; | |
1798 } variable[COUNT] = | |
1799 { | |
1800 { | |
1801 123, | |
1802 456 | |
1803 }, | |
1804 { | |
1805 123, | |
1806 456 | |
1807 } | |
1808 }; | |
1809 | |
1810 static struct | |
1811 { | |
1812 int a; | |
1813 int b; | |
1814 } variable[COUNT] = | |
1815 { | |
1816 { 123, 456 }, | |
1817 { 123, 456 } | |
1818 }; | |
1819 | |
1820 void asdf() /* ind_maxparen may cause trouble here */ | |
1821 { | |
1822 if ((0 | |
1823 && 1 | |
1824 && 1 | |
1825 && 1 | |
1826 && 1 | |
1827 && 1 | |
1828 && 1 | |
1829 && 1 | |
1830 && 1 | |
1831 && 1 | |
1832 && 1 | |
1833 && 1 | |
1834 && 1 | |
1835 && 1 | |
1836 && 1 | |
1837 && 1 | |
1838 && 1 | |
1839 && 1 | |
1840 && 1 | |
1841 && 1 | |
1842 && 1 | |
1843 && 1 | |
1844 && 1 | |
1845 && 1 | |
1846 && 1 | |
1847 && 1)) break; | |
1848 } | |
1849 | |
1850 foo() | |
1851 { | |
1852 a = cond ? foo() : asdf | |
1853 + asdf; | |
1854 | |
1855 a = cond ? | |
1856 foo() : asdf | |
1857 + asdf; | |
1858 } | |
1859 | |
1860 int main(void) | |
1861 { | |
1862 if (a) | |
1863 if (b) | |
1864 2; | |
1865 else 3; | |
1866 next_line_of_code(); | |
1867 } | |
1868 | |
1869 barry() | |
1870 { | |
1871 Foo::Foo (int one, | |
1872 int two) | |
1873 : something(4) | |
1874 {} | |
1875 } | |
1876 | |
1877 barry() | |
1878 { | |
1879 Foo::Foo (int one, int two) | |
1880 : something(4) | |
1881 {} | |
1882 } | |
1883 | |
1884 Constructor::Constructor(int a, | |
1885 int b | |
1886 ) : | |
1887 BaseClass(a, | |
1888 b, | |
1889 c), | |
1890 mMember(b) | |
1891 { | |
1892 } | |
1893 int main () | |
1894 { | |
1895 if (lala) | |
1896 do | |
1897 ++(*lolo); | |
1898 while (lili | |
1899 && lele); | |
1900 lulu; | |
1901 } | |
1902 | |
1903 int main () | |
1904 { | |
1905 switch (c) | |
1906 { | |
1907 case 'c': if (cond) | |
1908 { | |
1909 } | |
1910 } | |
1911 } | |
1912 | |
1913 main() | |
1914 { | |
1915 (void) MyFancyFuasdfadsfnction( | |
1916 argument); | |
1917 } | |
1918 | |
1919 main() | |
1920 { | |
1921 char foo[] = "/*"; | |
1922 /* as | |
1923 df */ | |
1924 hello | |
1925 } | |
1926 | |
1927 /* valid namespaces with normal indent */ | |
1928 namespace | |
1929 { | |
1930 { | |
1931 111111111111; | |
1932 } | |
1933 } | |
1934 namespace /* test */ | |
1935 { | |
1936 11111111111111111; | |
1937 } | |
1938 namespace // test | |
1939 { | |
1940 111111111111111111; | |
1941 } | |
1942 namespace | |
1943 { | |
1944 111111111111111111; | |
1945 } | |
1946 namespace test | |
1947 { | |
1948 111111111111111111; | |
1949 } | |
1950 namespace{ | |
1951 111111111111111111; | |
1952 } | |
1953 namespace test{ | |
1954 111111111111111111; | |
1955 } | |
1956 namespace { | |
1957 111111111111111111; | |
1958 } | |
1959 namespace test { | |
1960 111111111111111111; | |
1961 namespace test2 { | |
1962 22222222222222222; | |
1963 } | |
1964 } | |
1965 | |
1966 /* invalid namespaces use block indent */ | |
1967 namespace test test2 { | |
1968 111111111111111111111; | |
1969 } | |
1970 namespace11111111111 { | |
1971 111111111111; | |
1972 } | |
1973 namespace() { | |
1974 1111111111111; | |
1975 } | |
1976 namespace() | |
1977 { | |
1978 111111111111111111; | |
1979 } | |
1980 namespace test test2 | |
1981 { | |
1982 1111111111111111111; | |
1983 } | |
1984 namespace111111111 | |
1985 { | |
1986 111111111111111111; | |
1987 } | |
1988 | |
1989 void getstring() { | |
1990 /* Raw strings */ | |
1991 const char* s = R"( | |
1992 test { | |
1993 # comment | |
1994 field: 123 | |
1995 } | |
1996 )"; | |
1997 } | |
1998 | |
1999 void getstring() { | |
2000 const char* s = R"foo( | |
2001 test { | |
2002 # comment | |
2003 field: 123 | |
2004 } | |
2005 )foo"; | |
2006 } | |
2007 | |
2008 { | |
2009 int a[4] = { | |
2010 [0] = 0, | |
2011 [1] = 1, | |
2012 [2] = 2, | |
2013 [3] = 3, | |
2014 }; | |
2015 } | |
2016 | |
2017 { | |
2018 a = b[2] | |
2019 + 3; | |
2020 } | |
2021 | |
2022 { | |
2023 if (1) | |
2024 /* aaaaa | |
2025 * bbbbb | |
2026 */ | |
2027 a = 1; | |
2028 } | |
2029 | |
2030 void func() | |
2031 { | |
2032 switch (foo) | |
2033 { | |
2034 case (bar): | |
2035 if (baz()) | |
2036 quux(); | |
2037 break; | |
2038 case (shmoo): | |
2039 if (!bar) | |
2040 { | |
2041 } | |
2042 case (foo1): | |
2043 switch (bar) | |
2044 { | |
2045 case baz: | |
2046 baz_f(); | |
2047 break; | |
2048 } | |
2049 break; | |
2050 default: | |
2051 baz(); | |
2052 baz(); | |
2053 break; | |
2054 } | |
2055 } | |
2056 | |
2057 /* end of AUTO */ | |
2058 | |
2059 [CODE] | |
2060 | |
2061 call assert_equal(expected, getline(1, '$')) | |
2062 enew! | close | |
2063 endfunc | |
2064 | |
2065 func Test_cindent_2() | |
2066 new | |
2067 setl cindent ts=4 sw=4 | |
2068 setl tw=0 noai fo=croq | |
2069 let &wm = &columns - 20 | |
2070 | |
2071 let code =<< trim [CODE] | |
2072 { | |
2073 | |
2074 /* this is | |
2075 * a real serious important big | |
2076 * comment | |
2077 */ | |
2078 /* insert " about life, the universe, and the rest" after "serious" */ | |
2079 } | |
2080 [CODE] | |
2081 | |
2082 call append(0, code) | |
2083 normal gg | |
2084 call search('serious', 'e') | |
2085 normal a about life, the universe, and the rest | |
2086 | |
2087 let expected =<< trim [CODE] | |
2088 { | |
2089 | |
2090 /* this is | |
2091 * a real serious | |
2092 * about life, the | |
2093 * universe, and the | |
2094 * rest important big | |
2095 * comment | |
2096 */ | |
2097 /* insert " about life, the universe, and the rest" after "serious" */ | |
2098 } | |
2099 | |
2100 [CODE] | |
2101 | |
2102 call assert_equal(expected, getline(1, '$')) | |
2103 set wm& | |
2104 enew! | close | |
2105 endfunc | |
2106 | |
2107 func Test_cindent_3() | |
2108 new | |
2109 setl nocindent ts=4 sw=4 | |
2110 | |
2111 let code =<< trim [CODE] | |
2112 { | |
2113 /* | |
2114 * Testing for comments, without 'cin' set | |
2115 */ | |
2116 | |
2117 /* | |
2118 * what happens here? | |
2119 */ | |
2120 | |
2121 /* | |
2122 the end of the comment, try inserting a line below */ | |
2123 | |
2124 /* how about | |
2125 this one */ | |
2126 } | |
2127 [CODE] | |
2128 | |
2129 call append(0, code) | |
2130 normal gg | |
2131 call search('comments') | |
2132 normal joabout life | |
2133 call search('happens') | |
2134 normal jothere | |
2135 call search('below') | |
2136 normal oline | |
2137 call search('this') | |
2138 normal Ohello | |
2139 | |
2140 let expected =<< trim [CODE] | |
2141 { | |
2142 /* | |
2143 * Testing for comments, without 'cin' set | |
2144 */ | |
2145 about life | |
2146 | |
2147 /* | |
2148 * what happens here? | |
2149 */ | |
2150 there | |
2151 | |
2152 /* | |
2153 the end of the comment, try inserting a line below */ | |
2154 line | |
2155 | |
2156 /* how about | |
2157 hello | |
2158 this one */ | |
2159 } | |
2160 | |
2161 [CODE] | |
2162 | |
2163 call assert_equal(expected, getline(1, '$')) | |
2164 enew! | close | |
2165 endfunc | |
2166 | |
2167 func Test_cindent_4() | |
2168 new | |
2169 setl cindent ts=4 sw=4 | |
2170 | |
2171 let code =<< trim [CODE] | |
2172 { | |
2173 var = this + that + vec[0] * vec[0] | |
2174 + vec[1] * vec[1] | |
2175 + vec2[2] * vec[2]; | |
2176 } | |
2177 [CODE] | |
2178 | |
2179 call append(0, code) | |
2180 normal gg | |
2181 call search('vec2') | |
2182 normal == | |
2183 | |
2184 let expected =<< trim [CODE] | |
2185 { | |
2186 var = this + that + vec[0] * vec[0] | |
2187 + vec[1] * vec[1] | |
2188 + vec2[2] * vec[2]; | |
2189 } | |
2190 | |
2191 [CODE] | |
2192 | |
2193 call assert_equal(expected, getline(1, '$')) | |
2194 enew! | close | |
2195 endfunc | |
2196 | |
2197 func Test_cindent_5() | |
2198 new | |
2199 setl cindent ts=4 sw=4 | |
2200 setl cino=}4 | |
2201 | |
2202 let code =<< trim [CODE] | |
2203 { | |
2204 asdf asdflkajds f; | |
2205 if (tes & ting) { | |
2206 asdf asdf asdf ; | |
2207 asdfa sdf asdf; | |
2208 } | |
2209 testing1; | |
2210 if (tes & ting) | |
2211 { | |
2212 asdf asdf asdf ; | |
2213 asdfa sdf asdf; | |
2214 } | |
2215 testing2; | |
2216 } | |
2217 [CODE] | |
2218 | |
2219 call append(0, code) | |
2220 normal gg | |
2221 call search('testing1') | |
2222 exe "normal k2==/testing2\<CR>" | |
2223 normal k2== | |
2224 | |
2225 let expected =<< trim [CODE] | |
2226 { | |
2227 asdf asdflkajds f; | |
2228 if (tes & ting) { | |
2229 asdf asdf asdf ; | |
2230 asdfa sdf asdf; | |
2231 } | |
2232 testing1; | |
2233 if (tes & ting) | |
2234 { | |
2235 asdf asdf asdf ; | |
2236 asdfa sdf asdf; | |
2237 } | |
2238 testing2; | |
2239 } | |
2240 | |
2241 [CODE] | |
2242 | |
2243 call assert_equal(expected, getline(1, '$')) | |
2244 enew! | close | |
2245 endfunc | |
2246 | |
2247 func Test_cindent_6() | |
2248 new | |
2249 setl cindent ts=4 sw=4 | |
2250 setl cino=(0,)20 | |
2251 | |
2252 let code =<< trim [CODE] | |
2253 main ( int first_par, /* | |
2254 * Comment for | |
2255 * first par | |
2256 */ | |
2257 int second_par /* | |
2258 * Comment for | |
2259 * second par | |
2260 */ | |
2261 ) | |
2262 { | |
2263 func( first_par, /* | |
2264 * Comment for | |
2265 * first par | |
2266 */ | |
2267 second_par /* | |
2268 * Comment for | |
2269 * second par | |
2270 */ | |
2271 ); | |
2272 | |
2273 } | |
2274 [CODE] | |
2275 | |
2276 call append(0, code) | |
2277 normal gg | |
2278 call search('main') | |
2279 normal =][ | |
2280 | |
2281 let expected =<< trim [CODE] | |
2282 main ( int first_par, /* | |
2283 * Comment for | |
2284 * first par | |
2285 */ | |
2286 int second_par /* | |
2287 * Comment for | |
2288 * second par | |
2289 */ | |
2290 ) | |
2291 { | |
2292 func( first_par, /* | |
2293 * Comment for | |
2294 * first par | |
2295 */ | |
2296 second_par /* | |
2297 * Comment for | |
2298 * second par | |
2299 */ | |
2300 ); | |
2301 | |
2302 } | |
2303 | |
2304 [CODE] | |
2305 | |
2306 call assert_equal(expected, getline(1, '$')) | |
2307 enew! | close | |
2308 endfunc | |
2309 | |
2310 func Test_cindent_7() | |
2311 new | |
2312 setl cindent ts=4 sw=4 | |
2313 setl cino=es,n0s | |
2314 | |
2315 let code =<< trim [CODE] | |
2316 main(void) | |
2317 { | |
2318 /* Make sure that cino=X0s is not parsed like cino=Xs. */ | |
2319 if (cond) | |
2320 foo(); | |
2321 else | |
2322 { | |
2323 bar(); | |
2324 } | |
2325 } | |
2326 [CODE] | |
2327 | |
2328 call append(0, code) | |
2329 normal gg | |
2330 call search('main') | |
2331 normal =][ | |
2332 | |
2333 let expected =<< trim [CODE] | |
2334 main(void) | |
2335 { | |
2336 /* Make sure that cino=X0s is not parsed like cino=Xs. */ | |
2337 if (cond) | |
2338 foo(); | |
2339 else | |
2340 { | |
2341 bar(); | |
2342 } | |
2343 } | |
2344 | |
2345 [CODE] | |
2346 | |
2347 call assert_equal(expected, getline(1, '$')) | |
2348 enew! | close | |
2349 endfunc | |
2350 | |
2351 func Test_cindent_8() | |
2352 new | |
2353 setl cindent ts=4 sw=4 | |
2354 setl cino= | |
2355 | |
2356 let code =<< trim [CODE] | |
2357 | |
2358 { | |
2359 do | |
2360 { | |
2361 if () | |
2362 { | |
2363 if () | |
2364 asdf; | |
2365 else | |
2366 asdf; | |
2367 } | |
2368 } while (); | |
2369 cmd; /* this should go under the } */ | |
2370 } | |
2371 [CODE] | |
2372 | |
2373 call append(0, code) | |
2374 normal gg | |
2375 normal ]]=][ | |
2376 | |
2377 let expected =<< trim [CODE] | |
2378 | |
2379 { | |
2380 do | |
2381 { | |
2382 if () | |
2383 { | |
2384 if () | |
2385 asdf; | |
2386 else | |
2387 asdf; | |
2388 } | |
2389 } while (); | |
2390 cmd; /* this should go under the } */ | |
2391 } | |
2392 | |
2393 [CODE] | |
2394 | |
2395 call assert_equal(expected, getline(1, '$')) | |
2396 enew! | close | |
2397 endfunc | |
2398 | |
2399 func Test_cindent_9() | |
2400 new | |
2401 setl cindent ts=4 sw=4 | |
2402 | |
2403 let code =<< trim [CODE] | |
2404 | |
2405 void f() | |
2406 { | |
2407 if ( k() ) { | |
2408 l(); | |
2409 | |
2410 } else { /* Start (two words) end */ | |
2411 m(); | |
2412 } | |
2413 | |
2414 n(); | |
2415 } | |
2416 [CODE] | |
2417 | |
2418 call append(0, code) | |
2419 normal gg | |
2420 normal ]]=][ | |
2421 | |
2422 let expected =<< trim [CODE] | |
2423 | |
2424 void f() | |
2425 { | |
2426 if ( k() ) { | |
2427 l(); | |
2428 | |
2429 } else { /* Start (two words) end */ | |
2430 m(); | |
2431 } | |
2432 | |
2433 n(); | |
2434 } | |
2435 | |
2436 [CODE] | |
2437 | |
2438 call assert_equal(expected, getline(1, '$')) | |
2439 enew! | close | |
2440 endfunc | |
2441 | |
2442 func Test_cindent_10() | |
2443 new | |
2444 setl cindent ts=4 sw=4 | |
2445 setl cino={s,e-s | |
2446 | |
2447 let code =<< trim [CODE] | |
2448 | |
2449 void f() | |
2450 { | |
2451 if ( k() ) | |
2452 { | |
2453 l(); | |
2454 } else { /* Start (two words) end */ | |
2455 m(); | |
2456 } | |
2457 n(); /* should be under the if () */ | |
2458 } | |
2459 [CODE] | |
2460 | |
2461 call append(0, code) | |
2462 normal gg | |
2463 normal ]]=][ | |
2464 | |
2465 let expected =<< trim [CODE] | |
2466 | |
2467 void f() | |
2468 { | |
2469 if ( k() ) | |
2470 { | |
2471 l(); | |
2472 } else { /* Start (two words) end */ | |
2473 m(); | |
2474 } | |
2475 n(); /* should be under the if () */ | |
2476 } | |
2477 | |
2478 [CODE] | |
2479 | |
2480 call assert_equal(expected, getline(1, '$')) | |
2481 enew! | close | |
2482 endfunc | |
2483 | |
2484 func Test_cindent_11() | |
2485 new | |
2486 setl cindent ts=4 sw=4 | |
2487 setl cino={s,fs | |
2488 | |
2489 let code =<< trim [CODE] | |
2490 void bar(void) | |
2491 { | |
2492 static array[2][2] = | |
2493 { | |
2494 { 1, 2 }, | |
2495 { 3, 4 }, | |
2496 } | |
2497 | |
2498 while (a) | |
2499 { | |
2500 foo(&a); | |
2501 } | |
2502 | |
2503 { | |
2504 int a; | |
2505 { | |
2506 a = a + 1; | |
2507 } | |
2508 } | |
2509 b = a; | |
2510 } | |
2511 | |
2512 void func(void) | |
2513 { | |
2514 a = 1; | |
2515 { | |
2516 b = 2; | |
2517 } | |
2518 c = 3; | |
2519 d = 4; | |
2520 } | |
2521 /* foo */ | |
2522 [CODE] | |
2523 | |
2524 call append(0, code) | |
2525 normal gg | |
2526 exe "normal ]]=/ foo\<CR>" | |
2527 | |
2528 let expected =<< trim [CODE] | |
2529 void bar(void) | |
2530 { | |
2531 static array[2][2] = | |
2532 { | |
2533 { 1, 2 }, | |
2534 { 3, 4 }, | |
2535 } | |
2536 | |
2537 while (a) | |
2538 { | |
2539 foo(&a); | |
2540 } | |
2541 | |
2542 { | |
2543 int a; | |
2544 { | |
2545 a = a + 1; | |
2546 } | |
2547 } | |
2548 b = a; | |
2549 } | |
2550 | |
2551 void func(void) | |
2552 { | |
2553 a = 1; | |
2554 { | |
2555 b = 2; | |
2556 } | |
2557 c = 3; | |
2558 d = 4; | |
2559 } | |
2560 /* foo */ | |
2561 | |
2562 [CODE] | |
2563 | |
2564 call assert_equal(expected, getline(1, '$')) | |
2565 enew! | close | |
2566 endfunc | |
2567 | |
2568 func Test_cindent_12() | |
2569 new | |
2570 setl cindent ts=4 sw=4 | |
2571 setl cino= | |
2572 | |
2573 let code =<< trim [CODE] | |
2574 a() | |
2575 { | |
2576 do { | |
2577 a = a + | |
2578 a; | |
2579 } while ( a ); /* add text under this line */ | |
2580 if ( a ) | |
2581 a; | |
2582 } | |
2583 [CODE] | |
2584 | |
2585 call append(0, code) | |
2586 normal gg | |
2587 call search('while') | |
2588 normal ohere | |
2589 | |
2590 let expected =<< trim [CODE] | |
2591 a() | |
2592 { | |
2593 do { | |
2594 a = a + | |
2595 a; | |
2596 } while ( a ); /* add text under this line */ | |
2597 here | |
2598 if ( a ) | |
2599 a; | |
2600 } | |
2601 | |
2602 [CODE] | |
2603 | |
2604 call assert_equal(expected, getline(1, '$')) | |
2605 enew! | close | |
2606 endfunc | |
2607 | |
2608 func Test_cindent_13() | |
2609 new | |
2610 setl cindent ts=4 sw=4 | |
2611 setl cino= com= | |
2612 | |
2613 let code =<< trim [CODE] | |
2614 a() | |
2615 { | |
2616 label1: | |
2617 /* hmm */ | |
2618 // comment | |
2619 } | |
2620 [CODE] | |
2621 | |
2622 call append(0, code) | |
2623 normal gg | |
2624 call search('comment') | |
2625 exe "normal olabel2: b();\rlabel3 /* post */:\r/* pre */ label4:\r" . | |
2626 \ "f(/*com*/);\rif (/*com*/)\rcmd();" | |
2627 | |
2628 let expected =<< trim [CODE] | |
2629 a() | |
2630 { | |
2631 label1: | |
2632 /* hmm */ | |
2633 // comment | |
2634 label2: b(); | |
2635 label3 /* post */: | |
2636 /* pre */ label4: | |
2637 f(/*com*/); | |
2638 if (/*com*/) | |
2639 cmd(); | |
2640 } | |
2641 | |
2642 [CODE] | |
2643 | |
2644 call assert_equal(expected, getline(1, '$')) | |
2645 enew! | close | |
2646 endfunc | |
2647 | |
2648 func Test_cindent_14() | |
2649 new | |
2650 setl cindent ts=4 sw=4 | |
2651 setl comments& comments^=s:/*,m:**,ex:*/ | |
2652 | |
2653 let code =<< trim [CODE] | |
2654 /* | |
2655 * A simple comment | |
2656 */ | |
2657 | |
2658 /* | |
2659 ** A different comment | |
2660 */ | |
2661 [CODE] | |
2662 | |
2663 call append(0, code) | |
2664 normal gg | |
2665 call search('simple') | |
2666 normal =5j | |
2667 | |
2668 let expected =<< trim [CODE] | |
2669 /* | |
2670 * A simple comment | |
2671 */ | |
2672 | |
2673 /* | |
2674 ** A different comment | |
2675 */ | |
2676 | |
2677 [CODE] | |
2678 | |
2679 call assert_equal(expected, getline(1, '$')) | |
2680 enew! | close | |
2681 endfunc | |
2682 | |
2683 func Test_cindent_15() | |
2684 new | |
2685 setl cindent ts=4 sw=4 | |
2686 setl cino=c0 | |
2687 setl comments& comments-=s1:/* comments^=s0:/* | |
2688 | |
2689 let code =<< trim [CODE] | |
2690 void f() | |
2691 { | |
2692 | |
2693 /********* | |
2694 A comment. | |
2695 *********/ | |
2696 } | |
2697 [CODE] | |
2698 | |
2699 call append(0, code) | |
2700 normal gg | |
2701 normal ]]=][ | |
2702 | |
2703 let expected =<< trim [CODE] | |
2704 void f() | |
2705 { | |
2706 | |
2707 /********* | |
2708 A comment. | |
2709 *********/ | |
2710 } | |
2711 | |
2712 [CODE] | |
2713 | |
2714 call assert_equal(expected, getline(1, '$')) | |
2715 enew! | close | |
2716 endfunc | |
2717 | |
2718 func Test_cindent_16() | |
2719 new | |
2720 setl cindent ts=4 sw=4 | |
2721 setl cino=c0,C1 | |
2722 setl comments& comments-=s1:/* comments^=s0:/* | |
2723 | |
2724 let code =<< trim [CODE] | |
2725 void f() | |
2726 { | |
2727 | |
2728 /********* | |
2729 A comment. | |
2730 *********/ | |
2731 } | |
2732 [CODE] | |
2733 | |
2734 call append(0, code) | |
2735 normal gg | |
2736 normal ]]=][ | |
2737 | |
2738 let expected =<< trim [CODE] | |
2739 void f() | |
2740 { | |
2741 | |
2742 /********* | |
2743 A comment. | |
2744 *********/ | |
2745 } | |
2746 | |
2747 [CODE] | |
2748 | |
2749 call assert_equal(expected, getline(1, '$')) | |
2750 enew! | close | |
2751 endfunc | |
2752 | |
2753 func Test_cindent_17() | |
2754 new | |
2755 setl cindent ts=4 sw=4 | |
2756 setl cino= | |
2757 | |
2758 let code =<< trim [CODE] | |
2759 void f() | |
2760 { | |
2761 c = c1 && | |
2762 ( | |
2763 c2 || | |
2764 c3 | |
2765 ) && c4; | |
2766 } | |
2767 [CODE] | |
2768 | |
2769 call append(0, code) | |
2770 normal gg | |
2771 normal ]]=][ | |
2772 | |
2773 let expected =<< trim [CODE] | |
2774 void f() | |
2775 { | |
2776 c = c1 && | |
2777 ( | |
2778 c2 || | |
2779 c3 | |
2780 ) && c4; | |
2781 } | |
2782 | |
2783 [CODE] | |
2784 | |
2785 call assert_equal(expected, getline(1, '$')) | |
2786 enew! | close | |
2787 endfunc | |
2788 | |
2789 func Test_cindent_18() | |
2790 new | |
2791 setl cindent ts=4 sw=4 | |
2792 setl cino=(s | |
2793 | |
2794 let code =<< trim [CODE] | |
2795 void f() | |
2796 { | |
2797 c = c1 && | |
2798 ( | |
2799 c2 || | |
2800 c3 | |
2801 ) && c4; | |
2802 } | |
2803 [CODE] | |
2804 | |
2805 call append(0, code) | |
2806 normal gg | |
2807 normal ]]=][ | |
2808 | |
2809 let expected =<< trim [CODE] | |
2810 void f() | |
2811 { | |
2812 c = c1 && | |
2813 ( | |
2814 c2 || | |
2815 c3 | |
2816 ) && c4; | |
2817 } | |
2818 | |
2819 [CODE] | |
2820 | |
2821 call assert_equal(expected, getline(1, '$')) | |
2822 enew! | close | |
2823 endfunc | |
2824 | |
2825 func Test_cindent_19() | |
2826 new | |
2827 setl cindent ts=4 sw=4 | |
2828 set cino=(s,U1 | |
2829 | |
2830 let code =<< trim [CODE] | |
2831 void f() | |
2832 { | |
2833 c = c1 && | |
2834 ( | |
2835 c2 || | |
2836 c3 | |
2837 ) && c4; | |
2838 } | |
2839 [CODE] | |
2840 | |
2841 call append(0, code) | |
2842 normal gg | |
2843 normal ]]=][ | |
2844 | |
2845 let expected =<< trim [CODE] | |
2846 void f() | |
2847 { | |
2848 c = c1 && | |
2849 ( | |
2850 c2 || | |
2851 c3 | |
2852 ) && c4; | |
2853 } | |
2854 | |
2855 [CODE] | |
2856 | |
2857 call assert_equal(expected, getline(1, '$')) | |
2858 enew! | close | |
2859 endfunc | |
2860 | |
2861 func Test_cindent_20() | |
2862 new | |
2863 setl cindent ts=4 sw=4 | |
2864 setl cino=(0 | |
2865 | |
2866 let code =<< trim [CODE] | |
2867 void f() | |
2868 { | |
2869 if ( c1 | |
2870 && ( c2 | |
2871 || c3)) | |
2872 foo; | |
2873 } | |
2874 [CODE] | |
2875 | |
2876 call append(0, code) | |
2877 normal gg | |
2878 normal ]]=][ | |
2879 | |
2880 let expected =<< trim [CODE] | |
2881 void f() | |
2882 { | |
2883 if ( c1 | |
2884 && ( c2 | |
2885 || c3)) | |
2886 foo; | |
2887 } | |
2888 | |
2889 [CODE] | |
2890 | |
2891 call assert_equal(expected, getline(1, '$')) | |
2892 enew! | close | |
2893 endfunc | |
2894 | |
2895 func Test_cindent_21() | |
2896 new | |
2897 setl cindent ts=4 sw=4 | |
2898 setl cino=(0,w1 | |
2899 | |
2900 let code =<< trim [CODE] | |
2901 void f() | |
2902 { | |
2903 if ( c1 | |
2904 && ( c2 | |
2905 || c3)) | |
2906 foo; | |
2907 } | |
2908 [CODE] | |
2909 | |
2910 call append(0, code) | |
2911 normal gg | |
2912 normal ]]=][ | |
2913 | |
2914 let expected =<< trim [CODE] | |
2915 void f() | |
2916 { | |
2917 if ( c1 | |
2918 && ( c2 | |
2919 || c3)) | |
2920 foo; | |
2921 } | |
2922 | |
2923 [CODE] | |
2924 | |
2925 call assert_equal(expected, getline(1, '$')) | |
2926 enew! | close | |
2927 endfunc | |
2928 | |
2929 func Test_cindent_22() | |
2930 new | |
2931 setl cindent ts=4 sw=4 | |
2932 setl cino=(s | |
2933 | |
2934 let code =<< trim [CODE] | |
2935 void f() | |
2936 { | |
2937 c = c1 && ( | |
2938 c2 || | |
2939 c3 | |
2940 ) && c4; | |
2941 if ( | |
2942 c1 && c2 | |
2943 ) | |
2944 foo; | |
2945 } | |
2946 [CODE] | |
2947 | |
2948 call append(0, code) | |
2949 normal gg | |
2950 normal ]]=][ | |
2951 | |
2952 let expected =<< trim [CODE] | |
2953 void f() | |
2954 { | |
2955 c = c1 && ( | |
2956 c2 || | |
2957 c3 | |
2958 ) && c4; | |
2959 if ( | |
2960 c1 && c2 | |
2961 ) | |
2962 foo; | |
2963 } | |
2964 | |
2965 [CODE] | |
2966 | |
2967 call assert_equal(expected, getline(1, '$')) | |
2968 enew! | close | |
2969 endfunc | |
2970 | |
2971 func Test_cindent_23() | |
2972 new | |
2973 setl cindent ts=4 sw=4 | |
2974 setl cino=(s,m1 | |
2975 | |
2976 let code =<< trim [CODE] | |
2977 void f() | |
2978 { | |
2979 c = c1 && ( | |
2980 c2 || | |
2981 c3 | |
2982 ) && c4; | |
2983 if ( | |
2984 c1 && c2 | |
2985 ) | |
2986 foo; | |
2987 } | |
2988 [CODE] | |
2989 | |
2990 call append(0, code) | |
2991 normal gg | |
2992 normal ]]=][ | |
2993 | |
2994 let expected =<< trim [CODE] | |
2995 void f() | |
2996 { | |
2997 c = c1 && ( | |
2998 c2 || | |
2999 c3 | |
3000 ) && c4; | |
3001 if ( | |
3002 c1 && c2 | |
3003 ) | |
3004 foo; | |
3005 } | |
3006 | |
3007 [CODE] | |
3008 | |
3009 call assert_equal(expected, getline(1, '$')) | |
3010 enew! | close | |
3011 endfunc | |
3012 | |
3013 func Test_cindent_24() | |
3014 new | |
3015 setl cindent ts=4 sw=4 | |
3016 setl cino=b1 | |
3017 | |
3018 let code =<< trim [CODE] | |
3019 void f() | |
3020 { | |
3021 switch (x) | |
3022 { | |
3023 case 1: | |
3024 a = b; | |
3025 break; | |
3026 default: | |
3027 a = 0; | |
3028 break; | |
3029 } | |
3030 } | |
3031 [CODE] | |
3032 | |
3033 call append(0, code) | |
3034 normal gg | |
3035 normal ]]=][ | |
3036 | |
3037 let expected =<< trim [CODE] | |
3038 void f() | |
3039 { | |
3040 switch (x) | |
3041 { | |
3042 case 1: | |
3043 a = b; | |
3044 break; | |
3045 default: | |
3046 a = 0; | |
3047 break; | |
3048 } | |
3049 } | |
3050 | |
3051 [CODE] | |
3052 | |
3053 call assert_equal(expected, getline(1, '$')) | |
3054 enew! | close | |
3055 endfunc | |
3056 | |
3057 func Test_cindent_25() | |
3058 new | |
3059 setl cindent ts=4 sw=4 | |
3060 setl cino=(0,W5 | |
3061 | |
3062 let code =<< trim [CODE] | |
3063 void f() | |
3064 { | |
3065 invokeme( | |
3066 argu, | |
3067 ment); | |
3068 invokeme( | |
3069 argu, | |
3070 ment | |
3071 ); | |
3072 invokeme(argu, | |
3073 ment | |
3074 ); | |
3075 } | |
3076 [CODE] | |
3077 | |
3078 call append(0, code) | |
3079 normal gg | |
3080 normal ]]=][ | |
3081 | |
3082 let expected =<< trim [CODE] | |
3083 void f() | |
3084 { | |
3085 invokeme( | |
3086 argu, | |
3087 ment); | |
3088 invokeme( | |
3089 argu, | |
3090 ment | |
3091 ); | |
3092 invokeme(argu, | |
3093 ment | |
3094 ); | |
3095 } | |
3096 | |
3097 [CODE] | |
3098 | |
3099 call assert_equal(expected, getline(1, '$')) | |
3100 enew! | close | |
3101 endfunc | |
3102 | |
3103 func Test_cindent_26() | |
3104 new | |
3105 setl cindent ts=4 sw=4 | |
3106 setl cino=/6 | |
3107 | |
3108 let code =<< trim [CODE] | |
3109 void f() | |
3110 { | |
3111 statement; | |
3112 // comment 1 | |
3113 // comment 2 | |
3114 } | |
3115 [CODE] | |
3116 | |
3117 call append(0, code) | |
3118 normal gg | |
3119 normal ]]=][ | |
3120 | |
3121 let expected =<< trim [CODE] | |
3122 void f() | |
3123 { | |
3124 statement; | |
3125 // comment 1 | |
3126 // comment 2 | |
3127 } | |
3128 | |
3129 [CODE] | |
3130 | |
3131 call assert_equal(expected, getline(1, '$')) | |
3132 enew! | close | |
3133 endfunc | |
3134 | |
3135 func Test_cindent_27() | |
3136 new | |
3137 setl cindent ts=4 sw=4 | |
3138 setl cino= | |
3139 | |
3140 let code =<< trim [CODE] | |
3141 void f() | |
3142 { | |
3143 statement; | |
3144 // comment 1 | |
3145 // comment 2 | |
3146 } | |
3147 [CODE] | |
3148 | |
3149 call append(0, code) | |
3150 normal gg | |
3151 exe "normal ]]/comment 1/+1\<CR>==" | |
3152 | |
3153 let expected =<< trim [CODE] | |
3154 void f() | |
3155 { | |
3156 statement; | |
3157 // comment 1 | |
3158 // comment 2 | |
3159 } | |
3160 | |
3161 [CODE] | |
3162 | |
3163 call assert_equal(expected, getline(1, '$')) | |
3164 enew! | close | |
3165 endfunc | |
3166 | |
3167 func Test_cindent_28() | |
3168 new | |
3169 setl cindent ts=4 sw=4 | |
3170 setl cino=g0 | |
3171 | |
3172 let code =<< trim [CODE] | |
3173 class CAbc | |
3174 { | |
3175 int Test() { return FALSE; } | |
3176 | |
3177 public: // comment | |
3178 void testfall(); | |
3179 protected: | |
3180 void testfall(); | |
3181 }; | |
3182 [CODE] | |
3183 | |
3184 call append(0, code) | |
3185 normal gg | |
3186 normal ]]=][ | |
3187 | |
3188 let expected =<< trim [CODE] | |
3189 class CAbc | |
3190 { | |
3191 int Test() { return FALSE; } | |
3192 | |
3193 public: // comment | |
3194 void testfall(); | |
3195 protected: | |
3196 void testfall(); | |
3197 }; | |
3198 | |
3199 [CODE] | |
3200 | |
3201 call assert_equal(expected, getline(1, '$')) | |
3202 enew! | close | |
3203 endfunc | |
3204 | |
3205 func Test_cindent_29() | |
3206 new | |
3207 setl cindent ts=4 sw=4 | |
3208 setl cino=(0,gs,hs | |
3209 | |
3210 let code =<< trim [CODE] | |
3211 class Foo : public Bar | |
3212 { | |
3213 public: | |
3214 virtual void method1(void) = 0; | |
3215 virtual void method2(int arg1, | |
3216 int arg2, | |
3217 int arg3) = 0; | |
3218 }; | |
3219 [CODE] | |
3220 | |
3221 call append(0, code) | |
3222 normal gg | |
3223 normal ]]=][ | |
3224 | |
3225 let expected =<< trim [CODE] | |
3226 class Foo : public Bar | |
3227 { | |
3228 public: | |
3229 virtual void method1(void) = 0; | |
3230 virtual void method2(int arg1, | |
3231 int arg2, | |
3232 int arg3) = 0; | |
3233 }; | |
3234 | |
3235 [CODE] | |
3236 | |
3237 call assert_equal(expected, getline(1, '$')) | |
3238 enew! | close | |
3239 endfunc | |
3240 | |
3241 func Test_cindent_30() | |
3242 new | |
3243 setl cindent ts=4 sw=4 | |
3244 setl cino=+20 | |
3245 | |
3246 let code =<< trim [CODE] | |
3247 void | |
3248 foo() | |
3249 { | |
3250 if (a) | |
3251 { | |
3252 } else | |
3253 asdf; | |
3254 } | |
3255 [CODE] | |
3256 | |
3257 call append(0, code) | |
3258 normal gg | |
3259 normal ]]=][ | |
3260 | |
3261 let expected =<< trim [CODE] | |
3262 void | |
3263 foo() | |
3264 { | |
3265 if (a) | |
3266 { | |
3267 } else | |
3268 asdf; | |
3269 } | |
3270 | |
3271 [CODE] | |
3272 | |
3273 call assert_equal(expected, getline(1, '$')) | |
3274 enew! | close | |
3275 endfunc | |
3276 | |
3277 func Test_cindent_31() | |
3278 new | |
3279 setl cindent ts=4 sw=4 | |
3280 setl cino=(0,W2s | |
3281 | |
3282 let code =<< trim [CODE] | |
3283 | |
3284 { | |
3285 averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( | |
3286 asdasdf, | |
3287 func(asdf, | |
3288 asdfadsf), | |
3289 asdfasdf | |
3290 ); | |
3291 | |
3292 /* those are ugly, but consequent */ | |
3293 | |
3294 func()->asd(asdasdf, | |
3295 averylongfunctionname( | |
3296 abc, | |
3297 dec)->averylongfunctionname( | |
3298 asdfadsf, | |
3299 asdfasdf, | |
3300 asdfasdf, | |
3301 ), | |
3302 func(asdfadf, | |
3303 asdfasdf | |
3304 ), | |
3305 asdasdf | |
3306 ); | |
3307 | |
3308 averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf( | |
3309 abc, | |
3310 dec)->asdfasdfasdf( | |
3311 asdfadsf, | |
3312 asdfasdf, | |
3313 asdfasdf, | |
3314 ), | |
3315 func(asdfadf, | |
3316 asdfasdf), | |
3317 asdasdf | |
3318 ); | |
3319 } | |
3320 [CODE] | |
3321 | |
3322 call append(0, code) | |
3323 normal gg | |
3324 normal ]]=][ | |
3325 | |
3326 let expected =<< trim [CODE] | |
3327 | |
3328 { | |
3329 averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( | |
3330 asdasdf, | |
3331 func(asdf, | |
3332 asdfadsf), | |
3333 asdfasdf | |
3334 ); | |
3335 | |
3336 /* those are ugly, but consequent */ | |
3337 | |
3338 func()->asd(asdasdf, | |
3339 averylongfunctionname( | |
3340 abc, | |
3341 dec)->averylongfunctionname( | |
3342 asdfadsf, | |
3343 asdfasdf, | |
3344 asdfasdf, | |
3345 ), | |
3346 func(asdfadf, | |
3347 asdfasdf | |
3348 ), | |
3349 asdasdf | |
3350 ); | |
3351 | |
3352 averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf( | |
3353 abc, | |
3354 dec)->asdfasdfasdf( | |
3355 asdfadsf, | |
3356 asdfasdf, | |
3357 asdfasdf, | |
3358 ), | |
3359 func(asdfadf, | |
3360 asdfasdf), | |
3361 asdasdf | |
3362 ); | |
3363 } | |
3364 | |
3365 [CODE] | |
3366 | |
3367 call assert_equal(expected, getline(1, '$')) | |
3368 enew! | close | |
3369 endfunc | |
3370 | |
3371 func Test_cindent_32() | |
3372 new | |
3373 setl cindent ts=4 sw=4 | |
3374 setl cino=M1 | |
3375 | |
3376 let code =<< trim [CODE] | |
3377 int main () | |
3378 { | |
3379 if (cond1 && | |
3380 cond2 | |
3381 ) | |
3382 foo; | |
3383 } | |
3384 [CODE] | |
3385 | |
3386 call append(0, code) | |
3387 normal gg | |
3388 normal ]]=][ | |
3389 | |
3390 let expected =<< trim [CODE] | |
3391 int main () | |
3392 { | |
3393 if (cond1 && | |
3394 cond2 | |
3395 ) | |
3396 foo; | |
3397 } | |
3398 | |
3399 [CODE] | |
3400 | |
3401 call assert_equal(expected, getline(1, '$')) | |
3402 enew! | close | |
3403 endfunc | |
3404 | |
3405 func Test_cindent_33() | |
3406 new | |
3407 setl cindent ts=4 sw=4 | |
3408 setl cino=(0,ts | |
3409 | |
3410 let code =<< trim [CODE] | |
3411 void func(int a | |
3412 #if defined(FOO) | |
3413 , int b | |
3414 , int c | |
3415 #endif | |
3416 ) | |
3417 { | |
3418 } | |
3419 [CODE] | |
3420 | |
3421 call append(0, code) | |
3422 normal gg | |
3423 normal 2j=][ | |
3424 | |
3425 let expected =<< trim [CODE] | |
3426 void func(int a | |
3427 #if defined(FOO) | |
3428 , int b | |
3429 , int c | |
3430 #endif | |
3431 ) | |
3432 { | |
3433 } | |
3434 | |
3435 [CODE] | |
3436 | |
3437 call assert_equal(expected, getline(1, '$')) | |
3438 enew! | close | |
3439 endfunc | |
3440 | |
3441 func Test_cindent_34() | |
3442 new | |
3443 setl cindent ts=4 sw=4 | |
3444 setl cino=(0 | |
3445 | |
3446 let code =<< trim [CODE] | |
3447 | |
3448 void | |
3449 func(int a | |
3450 #if defined(FOO) | |
3451 , int b | |
3452 , int c | |
3453 #endif | |
3454 ) | |
3455 { | |
3456 } | |
3457 [CODE] | |
3458 | |
3459 call append(0, code) | |
3460 normal gg | |
3461 normal =][ | |
3462 | |
3463 let expected =<< trim [CODE] | |
3464 | |
3465 void | |
3466 func(int a | |
3467 #if defined(FOO) | |
3468 , int b | |
3469 , int c | |
3470 #endif | |
3471 ) | |
3472 { | |
3473 } | |
3474 | |
3475 [CODE] | |
3476 | |
3477 call assert_equal(expected, getline(1, '$')) | |
3478 enew! | close | |
3479 endfunc | |
3480 | |
3481 func Test_cindent_35() | |
3482 new | |
3483 setl cindent ts=4 sw=4 | |
3484 setl cino& | |
3485 | |
3486 let code =<< trim [CODE] | |
3487 void func(void) | |
3488 { | |
3489 if(x==y) | |
3490 if(y==z) | |
3491 foo=1; | |
3492 else { bar=1; | |
3493 baz=2; | |
3494 } | |
3495 printf("Foo!\n"); | |
3496 } | |
3497 | |
3498 void func1(void) | |
3499 { | |
3500 char* tab[] = {"foo", "bar", | |
3501 "baz", "quux", | |
3502 "this line used", "to be indented incorrectly"}; | |
3503 foo(); | |
3504 } | |
3505 | |
3506 void func2(void) | |
3507 { | |
3508 int tab[] = | |
3509 {1, 2, | |
3510 3, 4, | |
3511 5, 6}; | |
3512 | |
3513 printf("This line used to be indented incorrectly.\n"); | |
3514 } | |
3515 | |
3516 int foo[] | |
3517 #ifdef BAR | |
3518 | |
3519 = { 1, 2, 3, | |
3520 4, 5, 6 } | |
3521 | |
3522 #endif | |
3523 ; | |
3524 int baz; | |
3525 | |
3526 void func3(void) | |
3527 { | |
3528 int tab[] = { | |
3529 1, 2, | |
3530 3, 4, | |
3531 5, 6}; | |
3532 | |
3533 printf("Don't you dare indent this line incorrectly!\n"); | |
3534 } | |
3535 | |
3536 void | |
3537 func4(a, b, | |
3538 c) | |
3539 int a; | |
3540 int b; | |
3541 int c; | |
3542 { | |
3543 } | |
3544 | |
3545 void | |
3546 func5( | |
3547 int a, | |
3548 int b) | |
3549 { | |
3550 } | |
3551 | |
3552 void | |
3553 func6( | |
3554 int a) | |
3555 { | |
3556 } | |
3557 [CODE] | |
3558 | |
3559 call append(0, code) | |
3560 normal gg | |
3561 normal ]]=7][ | |
3562 | |
3563 let expected =<< trim [CODE] | |
3564 void func(void) | |
3565 { | |
3566 if(x==y) | |
3567 if(y==z) | |
3568 foo=1; | |
3569 else { bar=1; | |
3570 baz=2; | |
3571 } | |
3572 printf("Foo!\n"); | |
3573 } | |
3574 | |
3575 void func1(void) | |
3576 { | |
3577 char* tab[] = {"foo", "bar", | |
3578 "baz", "quux", | |
3579 "this line used", "to be indented incorrectly"}; | |
3580 foo(); | |
3581 } | |
3582 | |
3583 void func2(void) | |
3584 { | |
3585 int tab[] = | |
3586 {1, 2, | |
3587 3, 4, | |
3588 5, 6}; | |
3589 | |
3590 printf("This line used to be indented incorrectly.\n"); | |
3591 } | |
3592 | |
3593 int foo[] | |
3594 #ifdef BAR | |
3595 | |
3596 = { 1, 2, 3, | |
3597 4, 5, 6 } | |
3598 | |
3599 #endif | |
3600 ; | |
3601 int baz; | |
3602 | |
3603 void func3(void) | |
3604 { | |
3605 int tab[] = { | |
3606 1, 2, | |
3607 3, 4, | |
3608 5, 6}; | |
3609 | |
3610 printf("Don't you dare indent this line incorrectly!\n"); | |
3611 } | |
3612 | |
3613 void | |
3614 func4(a, b, | |
3615 c) | |
3616 int a; | |
3617 int b; | |
3618 int c; | |
3619 { | |
3620 } | |
3621 | |
3622 void | |
3623 func5( | |
3624 int a, | |
3625 int b) | |
3626 { | |
3627 } | |
3628 | |
3629 void | |
3630 func6( | |
3631 int a) | |
3632 { | |
3633 } | |
3634 | |
3635 [CODE] | |
3636 | |
3637 call assert_equal(expected, getline(1, '$')) | |
3638 enew! | close | |
3639 endfunc | |
3640 | |
3641 func Test_cindent_36() | |
3642 new | |
3643 setl cindent ts=4 sw=4 | |
3644 setl cino& | |
3645 setl cino+=l1 | |
3646 | |
3647 let code =<< trim [CODE] | |
3648 void func(void) | |
3649 { | |
3650 int tab[] = | |
3651 { | |
3652 1, 2, 3, | |
3653 4, 5, 6}; | |
3654 | |
3655 printf("Indent this line correctly!\n"); | |
3656 | |
3657 switch (foo) | |
3658 { | |
3659 case bar: | |
3660 printf("bar"); | |
3661 break; | |
3662 case baz: { | |
3663 printf("baz"); | |
3664 break; | |
3665 } | |
3666 case quux: | |
3667 printf("But don't break the indentation of this instruction\n"); | |
3668 break; | |
3669 } | |
3670 } | |
3671 [CODE] | |
3672 | |
3673 call append(0, code) | |
3674 normal gg | |
3675 normal ]]=][ | |
3676 | |
3677 let expected =<< trim [CODE] | |
3678 void func(void) | |
3679 { | |
3680 int tab[] = | |
3681 { | |
3682 1, 2, 3, | |
3683 4, 5, 6}; | |
3684 | |
3685 printf("Indent this line correctly!\n"); | |
3686 | |
3687 switch (foo) | |
3688 { | |
3689 case bar: | |
3690 printf("bar"); | |
3691 break; | |
3692 case baz: { | |
3693 printf("baz"); | |
3694 break; | |
3695 } | |
3696 case quux: | |
3697 printf("But don't break the indentation of this instruction\n"); | |
3698 break; | |
3699 } | |
3700 } | |
3701 | |
3702 [CODE] | |
3703 | |
3704 call assert_equal(expected, getline(1, '$')) | |
3705 enew! | close | |
3706 endfunc | |
3707 | |
3708 func Test_cindent_37() | |
3709 new | |
3710 setl cindent ts=4 sw=4 | |
3711 setl cino& | |
3712 | |
3713 let code =<< trim [CODE] | |
3714 void func(void) | |
3715 { | |
3716 cout << "a" | |
3717 << "b" | |
3718 << ") :" | |
3719 << "c"; | |
3720 } | |
3721 [CODE] | |
3722 | |
3723 call append(0, code) | |
3724 normal gg | |
3725 normal ]]=][ | |
3726 | |
3727 let expected =<< trim [CODE] | |
3728 void func(void) | |
3729 { | |
3730 cout << "a" | |
3731 << "b" | |
3732 << ") :" | |
3733 << "c"; | |
3734 } | |
3735 | |
3736 [CODE] | |
3737 | |
3738 call assert_equal(expected, getline(1, '$')) | |
3739 enew! | close | |
3740 endfunc | |
3741 | |
3742 func Test_cindent_38() | |
3743 new | |
3744 setl cindent ts=4 sw=4 | |
3745 setl com=s1:/*,m:*,ex:*/ | |
3746 | |
3747 let code =<< trim [CODE] | |
3748 void func(void) | |
3749 { | |
3750 /* | |
3751 * This is a comment. | |
3752 */ | |
3753 } | |
3754 [CODE] | |
3755 | |
3756 call append(0, code) | |
3757 normal gg | |
3758 normal ]]3jofoo(); | |
3759 | |
3760 let expected =<< trim [CODE] | |
3761 void func(void) | |
3762 { | |
3763 /* | |
3764 * This is a comment. | |
3765 */ | |
3766 foo(); | |
3767 } | |
3768 | |
3769 [CODE] | |
3770 | |
3771 call assert_equal(expected, getline(1, '$')) | |
3772 enew! | close | |
3773 endfunc | |
3774 | |
3775 func Test_cindent_39() | |
3776 new | |
3777 setl cindent ts=4 sw=4 | |
3778 setl cino& | |
3779 | |
3780 let code =<< trim [CODE] | |
3781 void func(void) | |
3782 { | |
3783 for (int i = 0; i < 10; ++i) | |
3784 if (i & 1) { | |
3785 foo(1); | |
3786 } else | |
3787 foo(0); | |
3788 baz(); | |
3789 } | |
3790 [CODE] | |
3791 | |
3792 call append(0, code) | |
3793 normal gg | |
3794 normal ]]=][ | |
3795 | |
3796 let expected =<< trim [CODE] | |
3797 void func(void) | |
3798 { | |
3799 for (int i = 0; i < 10; ++i) | |
3800 if (i & 1) { | |
3801 foo(1); | |
3802 } else | |
3803 foo(0); | |
3804 baz(); | |
3805 } | |
3806 | |
3807 [CODE] | |
3808 | |
3809 call assert_equal(expected, getline(1, '$')) | |
3810 enew! | close | |
3811 endfunc | |
3812 | |
3813 func Test_cindent_40() | |
3814 new | |
3815 setl cindent ts=4 sw=4 | |
3816 setl cino=k2s,(0 | |
3817 | |
3818 let code =<< trim [CODE] | |
3819 void func(void) | |
3820 { | |
3821 if (condition1 | |
3822 && condition2) | |
3823 action(); | |
3824 function(argument1 | |
3825 && argument2); | |
3826 | |
3827 if (c1 && (c2 || | |
3828 c3)) | |
3829 foo; | |
3830 if (c1 && | |
3831 (c2 || c3)) | |
3832 { | |
3833 } | |
3834 | |
3835 if ( c1 | |
3836 && ( c2 | |
3837 || c3)) | |
3838 foo; | |
3839 func( c1 | |
3840 && ( c2 | |
3841 || c3)) | |
3842 foo; | |
3843 } | |
3844 [CODE] | |
3845 | |
3846 call append(0, code) | |
3847 normal gg | |
3848 normal ]]=][ | |
3849 | |
3850 let expected =<< trim [CODE] | |
3851 void func(void) | |
3852 { | |
3853 if (condition1 | |
3854 && condition2) | |
3855 action(); | |
3856 function(argument1 | |
3857 && argument2); | |
3858 | |
3859 if (c1 && (c2 || | |
3860 c3)) | |
3861 foo; | |
3862 if (c1 && | |
3863 (c2 || c3)) | |
3864 { | |
3865 } | |
3866 | |
3867 if ( c1 | |
3868 && ( c2 | |
3869 || c3)) | |
3870 foo; | |
3871 func( c1 | |
3872 && ( c2 | |
3873 || c3)) | |
3874 foo; | |
3875 } | |
3876 | |
3877 [CODE] | |
3878 | |
3879 call assert_equal(expected, getline(1, '$')) | |
3880 enew! | close | |
3881 endfunc | |
3882 | |
3883 func Test_cindent_41() | |
3884 new | |
3885 setl cindent ts=4 sw=4 | |
3886 setl cino=k2s,(s | |
3887 | |
3888 let code =<< trim [CODE] | |
3889 void func(void) | |
3890 { | |
3891 if (condition1 | |
3892 && condition2) | |
3893 action(); | |
3894 function(argument1 | |
3895 && argument2); | |
3896 | |
3897 if (c1 && (c2 || | |
3898 c3)) | |
3899 foo; | |
3900 if (c1 && | |
3901 (c2 || c3)) | |
3902 { | |
3903 } | |
3904 | |
3905 if ( c1 | |
3906 && ( c2 | |
3907 || c3)) | |
3908 foo; | |
3909 func( c1 | |
3910 && ( c2 | |
3911 || c3)) | |
3912 foo; | |
3913 } | |
3914 [CODE] | |
3915 | |
3916 call append(0, code) | |
3917 normal gg | |
3918 normal ]]=][ | |
3919 | |
3920 let expected =<< trim [CODE] | |
3921 void func(void) | |
3922 { | |
3923 if (condition1 | |
3924 && condition2) | |
3925 action(); | |
3926 function(argument1 | |
3927 && argument2); | |
3928 | |
3929 if (c1 && (c2 || | |
3930 c3)) | |
3931 foo; | |
3932 if (c1 && | |
3933 (c2 || c3)) | |
3934 { | |
3935 } | |
3936 | |
3937 if ( c1 | |
3938 && ( c2 | |
3939 || c3)) | |
3940 foo; | |
3941 func( c1 | |
3942 && ( c2 | |
3943 || c3)) | |
3944 foo; | |
3945 } | |
3946 | |
3947 [CODE] | |
3948 | |
3949 call assert_equal(expected, getline(1, '$')) | |
3950 enew! | close | |
3951 endfunc | |
3952 | |
3953 func Test_cindent_42() | |
3954 new | |
3955 setl cindent ts=4 sw=4 | |
3956 setl cino=k2s,(s,U1 | |
3957 | |
3958 let code =<< trim [CODE] | |
3959 void func(void) | |
3960 { | |
3961 if (condition1 | |
3962 && condition2) | |
3963 action(); | |
3964 function(argument1 | |
3965 && argument2); | |
3966 | |
3967 if (c1 && (c2 || | |
3968 c3)) | |
3969 foo; | |
3970 if (c1 && | |
3971 (c2 || c3)) | |
3972 { | |
3973 } | |
3974 if (c123456789 | |
3975 && (c22345 | |
3976 || c3)) | |
3977 printf("foo\n"); | |
3978 | |
3979 c = c1 && | |
3980 ( | |
3981 c2 || | |
3982 c3 | |
3983 ) && c4; | |
3984 } | |
3985 [CODE] | |
3986 | |
3987 call append(0, code) | |
3988 normal gg | |
3989 normal ]]=][ | |
3990 | |
3991 let expected =<< trim [CODE] | |
3992 void func(void) | |
3993 { | |
3994 if (condition1 | |
3995 && condition2) | |
3996 action(); | |
3997 function(argument1 | |
3998 && argument2); | |
3999 | |
4000 if (c1 && (c2 || | |
4001 c3)) | |
4002 foo; | |
4003 if (c1 && | |
4004 (c2 || c3)) | |
4005 { | |
4006 } | |
4007 if (c123456789 | |
4008 && (c22345 | |
4009 || c3)) | |
4010 printf("foo\n"); | |
4011 | |
4012 c = c1 && | |
4013 ( | |
4014 c2 || | |
4015 c3 | |
4016 ) && c4; | |
4017 } | |
4018 | |
4019 [CODE] | |
4020 | |
4021 call assert_equal(expected, getline(1, '$')) | |
4022 enew! | close | |
4023 endfunc | |
4024 | |
4025 func Test_cindent_43() | |
4026 new | |
4027 setl cindent ts=4 sw=4 | |
4028 setl cino=k2s,(0,W4 | |
4029 | |
4030 let code =<< trim [CODE] | |
4031 void func(void) | |
4032 { | |
4033 if (condition1 | |
4034 && condition2) | |
4035 action(); | |
4036 function(argument1 | |
4037 && argument2); | |
4038 | |
4039 if (c1 && (c2 || | |
4040 c3)) | |
4041 foo; | |
4042 if (c1 && | |
4043 (c2 || c3)) | |
4044 { | |
4045 } | |
4046 if (c123456789 | |
4047 && (c22345 | |
4048 || c3)) | |
4049 printf("foo\n"); | |
4050 | |
4051 if ( c1 | |
4052 && ( c2 | |
4053 || c3)) | |
4054 foo; | |
4055 | |
4056 a_long_line( | |
4057 argument, | |
4058 argument); | |
4059 a_short_line(argument, | |
4060 argument); | |
4061 } | |
4062 [CODE] | |
4063 | |
4064 call append(0, code) | |
4065 normal gg | |
4066 normal ]]=][ | |
4067 | |
4068 let expected =<< trim [CODE] | |
4069 void func(void) | |
4070 { | |
4071 if (condition1 | |
4072 && condition2) | |
4073 action(); | |
4074 function(argument1 | |
4075 && argument2); | |
4076 | |
4077 if (c1 && (c2 || | |
4078 c3)) | |
4079 foo; | |
4080 if (c1 && | |
4081 (c2 || c3)) | |
4082 { | |
4083 } | |
4084 if (c123456789 | |
4085 && (c22345 | |
4086 || c3)) | |
4087 printf("foo\n"); | |
4088 | |
4089 if ( c1 | |
4090 && ( c2 | |
4091 || c3)) | |
4092 foo; | |
4093 | |
4094 a_long_line( | |
4095 argument, | |
4096 argument); | |
4097 a_short_line(argument, | |
4098 argument); | |
4099 } | |
4100 | |
4101 [CODE] | |
4102 | |
4103 call assert_equal(expected, getline(1, '$')) | |
4104 enew! | close | |
4105 endfunc | |
4106 | |
4107 func Test_cindent_44() | |
4108 new | |
4109 setl cindent ts=4 sw=4 | |
4110 setl cino=k2s,u2 | |
4111 | |
4112 let code =<< trim [CODE] | |
4113 void func(void) | |
4114 { | |
4115 if (condition1 | |
4116 && condition2) | |
4117 action(); | |
4118 function(argument1 | |
4119 && argument2); | |
4120 | |
4121 if (c1 && (c2 || | |
4122 c3)) | |
4123 foo; | |
4124 if (c1 && | |
4125 (c2 || c3)) | |
4126 { | |
4127 } | |
4128 if (c123456789 | |
4129 && (c22345 | |
4130 || c3)) | |
4131 printf("foo\n"); | |
4132 } | |
4133 [CODE] | |
4134 | |
4135 call append(0, code) | |
4136 normal gg | |
4137 normal ]]=][ | |
4138 | |
4139 let expected =<< trim [CODE] | |
4140 void func(void) | |
4141 { | |
4142 if (condition1 | |
4143 && condition2) | |
4144 action(); | |
4145 function(argument1 | |
4146 && argument2); | |
4147 | |
4148 if (c1 && (c2 || | |
4149 c3)) | |
4150 foo; | |
4151 if (c1 && | |
4152 (c2 || c3)) | |
4153 { | |
4154 } | |
4155 if (c123456789 | |
4156 && (c22345 | |
4157 || c3)) | |
4158 printf("foo\n"); | |
4159 } | |
4160 | |
4161 [CODE] | |
4162 | |
4163 call assert_equal(expected, getline(1, '$')) | |
4164 enew! | close | |
4165 endfunc | |
4166 | |
4167 func Test_cindent_45() | |
4168 new | |
4169 setl cindent ts=4 sw=4 | |
4170 setl cino=k2s,(0,w1 | |
4171 | |
4172 let code =<< trim [CODE] | |
4173 void func(void) | |
4174 { | |
4175 if (condition1 | |
4176 && condition2) | |
4177 action(); | |
4178 function(argument1 | |
4179 && argument2); | |
4180 | |
4181 if (c1 && (c2 || | |
4182 c3)) | |
4183 foo; | |
4184 if (c1 && | |
4185 (c2 || c3)) | |
4186 { | |
4187 } | |
4188 if (c123456789 | |
4189 && (c22345 | |
4190 || c3)) | |
4191 printf("foo\n"); | |
4192 | |
4193 if ( c1 | |
4194 && ( c2 | |
4195 || c3)) | |
4196 foo; | |
4197 func( c1 | |
4198 && ( c2 | |
4199 || c3)) | |
4200 foo; | |
4201 } | |
4202 [CODE] | |
4203 | |
4204 call append(0, code) | |
4205 normal gg | |
4206 normal ]]=][ | |
4207 | |
4208 let expected =<< trim [CODE] | |
4209 void func(void) | |
4210 { | |
4211 if (condition1 | |
4212 && condition2) | |
4213 action(); | |
4214 function(argument1 | |
4215 && argument2); | |
4216 | |
4217 if (c1 && (c2 || | |
4218 c3)) | |
4219 foo; | |
4220 if (c1 && | |
4221 (c2 || c3)) | |
4222 { | |
4223 } | |
4224 if (c123456789 | |
4225 && (c22345 | |
4226 || c3)) | |
4227 printf("foo\n"); | |
4228 | |
4229 if ( c1 | |
4230 && ( c2 | |
4231 || c3)) | |
4232 foo; | |
4233 func( c1 | |
4234 && ( c2 | |
4235 || c3)) | |
4236 foo; | |
4237 } | |
4238 | |
4239 [CODE] | |
4240 | |
4241 call assert_equal(expected, getline(1, '$')) | |
4242 enew! | close | |
4243 endfunc | |
4244 | |
4245 func Test_cindent_46() | |
4246 new | |
4247 setl cindent ts=4 sw=4 | |
4248 setl cino=k2,(s | |
4249 | |
4250 let code =<< trim [CODE] | |
4251 void func(void) | |
4252 { | |
4253 if (condition1 | |
4254 && condition2) | |
4255 action(); | |
4256 function(argument1 | |
4257 && argument2); | |
4258 | |
4259 if (c1 && (c2 || | |
4260 c3)) | |
4261 foo; | |
4262 if (c1 && | |
4263 (c2 || c3)) | |
4264 { | |
4265 } | |
4266 } | |
4267 [CODE] | |
4268 | |
4269 call append(0, code) | |
4270 normal gg | |
4271 normal ]]=][ | |
4272 | |
4273 let expected =<< trim [CODE] | |
4274 void func(void) | |
4275 { | |
4276 if (condition1 | |
4277 && condition2) | |
4278 action(); | |
4279 function(argument1 | |
4280 && argument2); | |
4281 | |
4282 if (c1 && (c2 || | |
4283 c3)) | |
4284 foo; | |
4285 if (c1 && | |
4286 (c2 || c3)) | |
4287 { | |
4288 } | |
4289 } | |
4290 | |
4291 [CODE] | |
4292 | |
4293 call assert_equal(expected, getline(1, '$')) | |
4294 enew! | close | |
4295 endfunc | |
4296 | |
4297 func Test_cindent_47() | |
4298 new | |
4299 setl cindent ts=4 sw=4 | |
4300 setl cino=N-s | |
4301 | |
4302 let code =<< trim [CODE] | |
4303 NAMESPACESTART | |
4304 /* valid namespaces with normal indent */ | |
4305 namespace | |
4306 { | |
4307 { | |
4308 111111111111; | |
4309 } | |
4310 } | |
4311 namespace /* test */ | |
4312 { | |
4313 11111111111111111; | |
4314 } | |
4315 namespace // test | |
4316 { | |
4317 111111111111111111; | |
4318 } | |
4319 namespace | |
4320 { | |
4321 111111111111111111; | |
4322 } | |
4323 namespace test | |
4324 { | |
4325 111111111111111111; | |
4326 } | |
4327 namespace test::cpp17 | |
4328 { | |
4329 111111111111111111; | |
4330 } | |
4331 namespace ::incorrectcpp17 | |
4332 { | |
4333 111111111111111111; | |
4334 } | |
4335 namespace test::incorrectcpp17:: | |
4336 { | |
4337 111111111111111111; | |
4338 } | |
4339 namespace test:incorrectcpp17 | |
4340 { | |
4341 111111111111111111; | |
4342 } | |
4343 namespace test:::incorrectcpp17 | |
4344 { | |
4345 111111111111111111; | |
4346 } | |
4347 namespace{ | |
4348 111111111111111111; | |
4349 } | |
4350 namespace test{ | |
4351 111111111111111111; | |
4352 } | |
4353 namespace { | |
4354 111111111111111111; | |
4355 } | |
4356 namespace test { | |
4357 111111111111111111; | |
4358 namespace test2 { | |
4359 22222222222222222; | |
4360 } | |
4361 } | |
4362 | |
4363 /* invalid namespaces use block indent */ | |
4364 namespace test test2 { | |
4365 111111111111111111111; | |
4366 } | |
4367 namespace11111111111 { | |
4368 111111111111; | |
4369 } | |
4370 namespace() { | |
4371 1111111111111; | |
4372 } | |
4373 namespace() | |
4374 { | |
4375 111111111111111111; | |
4376 } | |
4377 namespace test test2 | |
4378 { | |
4379 1111111111111111111; | |
4380 } | |
4381 namespace111111111 | |
4382 { | |
4383 111111111111111111; | |
4384 } | |
4385 NAMESPACEEND | |
4386 [CODE] | |
4387 | |
4388 call append(0, code) | |
4389 normal gg | |
4390 call search('^NAMESPACESTART') | |
4391 exe "normal =/^NAMESPACEEND\n" | |
4392 | |
4393 let expected =<< trim [CODE] | |
4394 NAMESPACESTART | |
4395 /* valid namespaces with normal indent */ | |
4396 namespace | |
4397 { | |
4398 { | |
4399 111111111111; | |
4400 } | |
4401 } | |
4402 namespace /* test */ | |
4403 { | |
4404 11111111111111111; | |
4405 } | |
4406 namespace // test | |
4407 { | |
4408 111111111111111111; | |
4409 } | |
4410 namespace | |
4411 { | |
4412 111111111111111111; | |
4413 } | |
4414 namespace test | |
4415 { | |
4416 111111111111111111; | |
4417 } | |
4418 namespace test::cpp17 | |
4419 { | |
4420 111111111111111111; | |
4421 } | |
4422 namespace ::incorrectcpp17 | |
4423 { | |
4424 111111111111111111; | |
4425 } | |
4426 namespace test::incorrectcpp17:: | |
4427 { | |
4428 111111111111111111; | |
4429 } | |
4430 namespace test:incorrectcpp17 | |
4431 { | |
4432 111111111111111111; | |
4433 } | |
4434 namespace test:::incorrectcpp17 | |
4435 { | |
4436 111111111111111111; | |
4437 } | |
4438 namespace{ | |
4439 111111111111111111; | |
4440 } | |
4441 namespace test{ | |
4442 111111111111111111; | |
4443 } | |
4444 namespace { | |
4445 111111111111111111; | |
4446 } | |
4447 namespace test { | |
4448 111111111111111111; | |
4449 namespace test2 { | |
4450 22222222222222222; | |
4451 } | |
4452 } | |
4453 | |
4454 /* invalid namespaces use block indent */ | |
4455 namespace test test2 { | |
4456 111111111111111111111; | |
4457 } | |
4458 namespace11111111111 { | |
4459 111111111111; | |
4460 } | |
4461 namespace() { | |
4462 1111111111111; | |
4463 } | |
4464 namespace() | |
4465 { | |
4466 111111111111111111; | |
4467 } | |
4468 namespace test test2 | |
4469 { | |
4470 1111111111111111111; | |
4471 } | |
4472 namespace111111111 | |
4473 { | |
4474 111111111111111111; | |
4475 } | |
4476 NAMESPACEEND | |
4477 | |
4478 [CODE] | |
4479 | |
4480 call assert_equal(expected, getline(1, '$')) | |
4481 enew! | close | |
4482 endfunc | |
4483 | |
4484 func Test_cindent_48() | |
4485 new | |
4486 setl cindent ts=4 sw=4 | |
4487 setl cino=j1,J1 | |
4488 | |
4489 let code =<< trim [CODE] | |
4490 JSSTART | |
4491 var bar = { | |
4492 foo: { | |
4493 that: this, | |
4494 some: ok, | |
4495 }, | |
4496 "bar":{ | |
4497 a : 2, | |
4498 b: "123abc", | |
4499 x: 4, | |
4500 "y": 5 | |
4501 } | |
4502 } | |
4503 JSEND | |
4504 [CODE] | |
4505 | |
4506 call append(0, code) | |
4507 normal gg | |
4508 call search('^JSSTART') | |
4509 exe "normal =/^JSEND\n" | |
4510 | |
4511 let expected =<< trim [CODE] | |
4512 JSSTART | |
4513 var bar = { | |
4514 foo: { | |
4515 that: this, | |
4516 some: ok, | |
4517 }, | |
4518 "bar":{ | |
4519 a : 2, | |
4520 b: "123abc", | |
4521 x: 4, | |
4522 "y": 5 | |
4523 } | |
4524 } | |
4525 JSEND | |
4526 | |
4527 [CODE] | |
4528 | |
4529 call assert_equal(expected, getline(1, '$')) | |
4530 enew! | close | |
4531 endfunc | |
4532 | |
4533 func Test_cindent_49() | |
4534 new | |
4535 setl cindent ts=4 sw=4 | |
4536 setl cino=j1,J1 | |
4537 | |
4538 let code =<< trim [CODE] | |
4539 JSSTART | |
4540 var foo = [ | |
4541 1, | |
4542 2, | |
4543 3 | |
4544 ]; | |
4545 JSEND | |
4546 [CODE] | |
4547 | |
4548 call append(0, code) | |
4549 normal gg | |
4550 call search('^JSSTART') | |
4551 exe "normal =/^JSEND\n" | |
4552 | |
4553 let expected =<< trim [CODE] | |
4554 JSSTART | |
4555 var foo = [ | |
4556 1, | |
4557 2, | |
4558 3 | |
4559 ]; | |
4560 JSEND | |
4561 | |
4562 [CODE] | |
4563 | |
4564 call assert_equal(expected, getline(1, '$')) | |
4565 enew! | close | |
4566 endfunc | |
4567 | |
4568 func Test_cindent_50() | |
4569 new | |
4570 setl cindent ts=4 sw=4 | |
4571 setl cino=j1,J1 | |
4572 | |
4573 let code =<< trim [CODE] | |
4574 JSSTART | |
4575 function bar() { | |
4576 var foo = [ | |
4577 1, | |
4578 2, | |
4579 3 | |
4580 ]; | |
4581 } | |
4582 JSEND | |
4583 [CODE] | |
4584 | |
4585 call append(0, code) | |
4586 normal gg | |
4587 call search('^JSSTART') | |
4588 exe "normal =/^JSEND\n" | |
4589 | |
4590 let expected =<< trim [CODE] | |
4591 JSSTART | |
4592 function bar() { | |
4593 var foo = [ | |
4594 1, | |
4595 2, | |
4596 3 | |
4597 ]; | |
4598 } | |
4599 JSEND | |
4600 | |
4601 [CODE] | |
4602 | |
4603 call assert_equal(expected, getline(1, '$')) | |
4604 enew! | close | |
4605 endfunc | |
4606 | |
4607 func Test_cindent_51() | |
4608 new | |
4609 setl cindent ts=4 sw=4 | |
4610 setl cino=j1,J1 | |
4611 | |
4612 let code =<< trim [CODE] | |
4613 JSSTART | |
4614 (function($){ | |
4615 | |
4616 if (cond && | |
4617 cond) { | |
4618 stmt; | |
4619 } | |
4620 window.something.left = | |
4621 (width - 50 + offset) + "px"; | |
4622 var class_name='myclass'; | |
4623 | |
4624 function private_method() { | |
4625 } | |
4626 | |
4627 var public_method={ | |
4628 method: function(options,args){ | |
4629 private_method(); | |
4630 } | |
4631 } | |
4632 | |
4633 function init(options) { | |
4634 | |
4635 $(this).data(class_name+'_public',$.extend({},{ | |
4636 foo: 'bar', | |
4637 bar: 2, | |
4638 foobar: [ | |
4639 1, | |
4640 2, | |
4641 3 | |
4642 ], | |
4643 callback: function(){ | |
4644 return true; | |
4645 } | |
4646 }, options||{})); | |
4647 } | |
4648 | |
4649 $.fn[class_name]=function() { | |
4650 | |
4651 var _arguments=arguments; | |
4652 return this.each(function(){ | |
4653 | |
4654 var options=$(this).data(class_name+'_public'); | |
4655 if (!options) { | |
4656 init.apply(this,_arguments); | |
4657 | |
4658 } else { | |
4659 var method=public_method[_arguments[0]]; | |
4660 | |
4661 if (typeof(method)!='function') { | |
4662 console.log(class_name+' has no method "'+_arguments[0]+'"'); | |
4663 return false; | |
4664 } | |
4665 _arguments[0]=options; | |
4666 method.apply(this,_arguments); | |
4667 } | |
4668 }); | |
4669 } | |
4670 | |
4671 })(jQuery); | |
4672 JSEND | |
4673 [CODE] | |
4674 | |
4675 call append(0, code) | |
4676 normal gg | |
4677 call search('^JSSTART') | |
4678 exe "normal =/^JSEND\n" | |
4679 | |
4680 let expected =<< trim [CODE] | |
4681 JSSTART | |
4682 (function($){ | |
4683 | |
4684 if (cond && | |
4685 cond) { | |
4686 stmt; | |
4687 } | |
4688 window.something.left = | |
4689 (width - 50 + offset) + "px"; | |
4690 var class_name='myclass'; | |
4691 | |
4692 function private_method() { | |
4693 } | |
4694 | |
4695 var public_method={ | |
4696 method: function(options,args){ | |
4697 private_method(); | |
4698 } | |
4699 } | |
4700 | |
4701 function init(options) { | |
4702 | |
4703 $(this).data(class_name+'_public',$.extend({},{ | |
4704 foo: 'bar', | |
4705 bar: 2, | |
4706 foobar: [ | |
4707 1, | |
4708 2, | |
4709 3 | |
4710 ], | |
4711 callback: function(){ | |
4712 return true; | |
4713 } | |
4714 }, options||{})); | |
4715 } | |
4716 | |
4717 $.fn[class_name]=function() { | |
4718 | |
4719 var _arguments=arguments; | |
4720 return this.each(function(){ | |
4721 | |
4722 var options=$(this).data(class_name+'_public'); | |
4723 if (!options) { | |
4724 init.apply(this,_arguments); | |
4725 | |
4726 } else { | |
4727 var method=public_method[_arguments[0]]; | |
4728 | |
4729 if (typeof(method)!='function') { | |
4730 console.log(class_name+' has no method "'+_arguments[0]+'"'); | |
4731 return false; | |
4732 } | |
4733 _arguments[0]=options; | |
4734 method.apply(this,_arguments); | |
4735 } | |
4736 }); | |
4737 } | |
4738 | |
4739 })(jQuery); | |
4740 JSEND | |
4741 | |
4742 [CODE] | |
4743 | |
4744 call assert_equal(expected, getline(1, '$')) | |
4745 enew! | close | |
4746 endfunc | |
4747 | |
4748 func Test_cindent_52() | |
4749 new | |
4750 setl cindent ts=4 sw=4 | |
4751 setl cino=j1,J1 | |
4752 | |
4753 let code =<< trim [CODE] | |
4754 JSSTART | |
4755 function init(options) { | |
4756 $(this).data(class_name+'_public',$.extend({},{ | |
4757 foo: 'bar', | |
4758 bar: 2, | |
4759 foobar: [ | |
4760 1, | |
4761 2, | |
4762 3 | |
4763 ], | |
4764 callback: function(){ | |
4765 return true; | |
4766 } | |
4767 }, options||{})); | |
4768 } | |
4769 JSEND | |
4770 [CODE] | |
4771 | |
4772 call append(0, code) | |
4773 normal gg | |
4774 call search('^JSSTART') | |
4775 exe "normal =/^JSEND\n" | |
4776 | |
4777 let expected =<< trim [CODE] | |
4778 JSSTART | |
4779 function init(options) { | |
4780 $(this).data(class_name+'_public',$.extend({},{ | |
4781 foo: 'bar', | |
4782 bar: 2, | |
4783 foobar: [ | |
4784 1, | |
4785 2, | |
4786 3 | |
4787 ], | |
4788 callback: function(){ | |
4789 return true; | |
4790 } | |
4791 }, options||{})); | |
4792 } | |
4793 JSEND | |
4794 | |
4795 [CODE] | |
4796 | |
4797 call assert_equal(expected, getline(1, '$')) | |
4798 enew! | close | |
4799 endfunc | |
4800 | |
4801 func Test_cindent_53() | |
4802 new | |
4803 setl cindent ts=4 sw=4 | |
4804 setl cino=j1,J1 | |
4805 | |
4806 let code =<< trim [CODE] | |
4807 JSSTART | |
4808 (function($){ | |
4809 function init(options) { | |
4810 $(this).data(class_name+'_public',$.extend({},{ | |
4811 foo: 'bar', | |
4812 bar: 2, | |
4813 foobar: [ | |
4814 1, | |
4815 2, | |
4816 3 | |
4817 ], | |
4818 callback: function(){ | |
4819 return true; | |
4820 } | |
4821 }, options||{})); | |
4822 } | |
4823 })(jQuery); | |
4824 JSEND | |
4825 [CODE] | |
4826 | |
4827 call append(0, code) | |
4828 normal gg | |
4829 call search('^JSSTART') | |
4830 exe "normal =/^JSEND\n" | |
4831 | |
4832 let expected =<< trim [CODE] | |
4833 JSSTART | |
4834 (function($){ | |
4835 function init(options) { | |
4836 $(this).data(class_name+'_public',$.extend({},{ | |
4837 foo: 'bar', | |
4838 bar: 2, | |
4839 foobar: [ | |
4840 1, | |
4841 2, | |
4842 3 | |
4843 ], | |
4844 callback: function(){ | |
4845 return true; | |
4846 } | |
4847 }, options||{})); | |
4848 } | |
4849 })(jQuery); | |
4850 JSEND | |
4851 | |
4852 [CODE] | |
4853 | |
4854 call assert_equal(expected, getline(1, '$')) | |
4855 enew! | close | |
4856 endfunc | |
4857 | |
4858 func Test_cindent_54() | |
4859 new | |
4860 setl cindent ts=4 sw=4 | |
4861 setl cino=j1,J1,+2 | |
4862 | |
4863 let code =<< trim [CODE] | |
4864 JSSTART | |
4865 // Results of JavaScript indent | |
4866 // 1 | |
4867 (function(){ | |
4868 var a = [ | |
4869 'a', | |
4870 'b', | |
4871 'c', | |
4872 'd', | |
4873 'e', | |
4874 'f', | |
4875 'g', | |
4876 'h', | |
4877 'i' | |
4878 ]; | |
4879 }()) | |
4880 | |
4881 // 2 | |
4882 (function(){ | |
4883 var a = [ | |
4884 0 + | |
4885 5 * | |
4886 9 * | |
4887 'a', | |
4888 'b', | |
4889 0 + | |
4890 5 * | |
4891 9 * | |
4892 'c', | |
4893 'd', | |
4894 'e', | |
4895 'f', | |
4896 'g', | |
4897 'h', | |
4898 'i' | |
4899 ]; | |
4900 }()) | |
4901 | |
4902 // 3 | |
4903 (function(){ | |
4904 var a = [ | |
4905 0 + | |
4906 // comment 1 | |
4907 5 * | |
4908 /* comment 2 */ | |
4909 9 * | |
4910 'a', | |
4911 'b', | |
4912 0 + | |
4913 5 * | |
4914 9 * | |
4915 'c', | |
4916 'd', | |
4917 'e', | |
4918 'f', | |
4919 'g', | |
4920 'h', | |
4921 'i' | |
4922 ]; | |
4923 }()) | |
4924 | |
4925 // 4 | |
4926 { | |
4927 var a = [ | |
4928 0, | |
4929 1 | |
4930 ]; | |
4931 var b; | |
4932 var c; | |
4933 } | |
4934 | |
4935 // 5 | |
4936 { | |
4937 var a = [ | |
4938 [ | |
4939 0 | |
4940 ], | |
4941 2, | |
4942 3 | |
4943 ]; | |
4944 } | |
4945 | |
4946 // 6 | |
4947 { | |
4948 var a = [ | |
4949 [ | |
4950 0, | |
4951 1 | |
4952 ], | |
4953 2, | |
4954 3 | |
4955 ]; | |
4956 } | |
4957 | |
4958 // 7 | |
4959 { | |
4960 var a = [ | |
4961 // [ | |
4962 0, | |
4963 // 1 | |
4964 // ], | |
4965 2, | |
4966 3 | |
4967 ]; | |
4968 } | |
4969 | |
4970 // 8 | |
4971 var x = [ | |
4972 (function(){ | |
4973 var a, | |
4974 b, | |
4975 c, | |
4976 d, | |
4977 e, | |
4978 f, | |
4979 g, | |
4980 h, | |
4981 i; | |
4982 }) | |
4983 ]; | |
4984 | |
4985 // 9 | |
4986 var a = [ | |
4987 0 + | |
4988 5 * | |
4989 9 * | |
4990 'a', | |
4991 'b', | |
4992 0 + | |
4993 5 * | |
4994 9 * | |
4995 'c', | |
4996 'd', | |
4997 'e', | |
4998 'f', | |
4999 'g', | |
5000 'h', | |
5001 'i' | |
5002 ]; | |
5003 | |
5004 // 10 | |
5005 var a, | |
5006 b, | |
5007 c, | |
5008 d, | |
5009 e, | |
5010 f, | |
5011 g, | |
5012 h, | |
5013 i; | |
5014 JSEND | |
5015 [CODE] | |
5016 | |
5017 call append(0, code) | |
5018 normal gg | |
5019 call search('^JSSTART') | |
5020 exe "normal =/^JSEND\n" | |
5021 | |
5022 let expected =<< trim [CODE] | |
5023 JSSTART | |
5024 // Results of JavaScript indent | |
5025 // 1 | |
5026 (function(){ | |
5027 var a = [ | |
5028 'a', | |
5029 'b', | |
5030 'c', | |
5031 'd', | |
5032 'e', | |
5033 'f', | |
5034 'g', | |
5035 'h', | |
5036 'i' | |
5037 ]; | |
5038 }()) | |
5039 | |
5040 // 2 | |
5041 (function(){ | |
5042 var a = [ | |
5043 0 + | |
5044 5 * | |
5045 9 * | |
5046 'a', | |
5047 'b', | |
5048 0 + | |
5049 5 * | |
5050 9 * | |
5051 'c', | |
5052 'd', | |
5053 'e', | |
5054 'f', | |
5055 'g', | |
5056 'h', | |
5057 'i' | |
5058 ]; | |
5059 }()) | |
5060 | |
5061 // 3 | |
5062 (function(){ | |
5063 var a = [ | |
5064 0 + | |
5065 // comment 1 | |
5066 5 * | |
5067 /* comment 2 */ | |
5068 9 * | |
5069 'a', | |
5070 'b', | |
5071 0 + | |
5072 5 * | |
5073 9 * | |
5074 'c', | |
5075 'd', | |
5076 'e', | |
5077 'f', | |
5078 'g', | |
5079 'h', | |
5080 'i' | |
5081 ]; | |
5082 }()) | |
5083 | |
5084 // 4 | |
5085 { | |
5086 var a = [ | |
5087 0, | |
5088 1 | |
5089 ]; | |
5090 var b; | |
5091 var c; | |
5092 } | |
5093 | |
5094 // 5 | |
5095 { | |
5096 var a = [ | |
5097 [ | |
5098 0 | |
5099 ], | |
5100 2, | |
5101 3 | |
5102 ]; | |
5103 } | |
5104 | |
5105 // 6 | |
5106 { | |
5107 var a = [ | |
5108 [ | |
5109 0, | |
5110 1 | |
5111 ], | |
5112 2, | |
5113 3 | |
5114 ]; | |
5115 } | |
5116 | |
5117 // 7 | |
5118 { | |
5119 var a = [ | |
5120 // [ | |
5121 0, | |
5122 // 1 | |
5123 // ], | |
5124 2, | |
5125 3 | |
5126 ]; | |
5127 } | |
5128 | |
5129 // 8 | |
5130 var x = [ | |
5131 (function(){ | |
5132 var a, | |
5133 b, | |
5134 c, | |
5135 d, | |
5136 e, | |
5137 f, | |
5138 g, | |
5139 h, | |
5140 i; | |
5141 }) | |
5142 ]; | |
5143 | |
5144 // 9 | |
5145 var a = [ | |
5146 0 + | |
5147 5 * | |
5148 9 * | |
5149 'a', | |
5150 'b', | |
5151 0 + | |
5152 5 * | |
5153 9 * | |
5154 'c', | |
5155 'd', | |
5156 'e', | |
5157 'f', | |
5158 'g', | |
5159 'h', | |
5160 'i' | |
5161 ]; | |
5162 | |
5163 // 10 | |
5164 var a, | |
5165 b, | |
5166 c, | |
5167 d, | |
5168 e, | |
5169 f, | |
5170 g, | |
5171 h, | |
5172 i; | |
5173 JSEND | |
5174 | |
5175 [CODE] | |
5176 | |
5177 call assert_equal(expected, getline(1, '$')) | |
5178 enew! | close | |
5179 endfunc | |
5180 | |
5181 func Test_cindent_55() | |
5182 new | |
5183 setl cindent ts=4 sw=4 | |
5184 setl cino& | |
5185 | |
5186 let code =<< trim [CODE] | |
5187 /* start of define */ | |
5188 { | |
5189 } | |
5190 #define AAA \ | |
5191 BBB\ | |
5192 CCC | |
5193 | |
5194 #define CNT \ | |
5195 1 + \ | |
5196 2 + \ | |
5197 4 | |
5198 /* end of define */ | |
5199 [CODE] | |
5200 | |
5201 call append(0, code) | |
5202 normal gg | |
5203 call search('start of define') | |
5204 exe "normal =/end of define\n" | |
5205 | |
5206 let expected =<< trim [CODE] | |
5207 /* start of define */ | |
5208 { | |
5209 } | |
5210 #define AAA \ | |
5211 BBB\ | |
5212 CCC | |
5213 | |
5214 #define CNT \ | |
5215 1 + \ | |
5216 2 + \ | |
5217 4 | |
5218 /* end of define */ | |
5219 | |
5220 [CODE] | |
5221 | |
5222 call assert_equal(expected, getline(1, '$')) | |
5223 enew! | close | |
5224 endfunc | |
5225 | |
5226 func Test_cindent_56() | |
5227 new | |
5228 setl cindent ts=4 sw=4 | |
5229 setl cino& | |
5230 | |
5231 let code =<< trim [CODE] | |
5232 { | |
5233 a = second/*bug*/*line; | |
5234 } | |
5235 [CODE] | |
5236 | |
5237 call append(0, code) | |
5238 normal gg | |
5239 call search('a = second') | |
5240 normal ox | |
5241 | |
5242 let expected =<< trim [CODE] | |
5243 { | |
5244 a = second/*bug*/*line; | |
5245 x | |
5246 } | |
5247 | |
5248 [CODE] | |
5249 | |
5250 call assert_equal(expected, getline(1, '$')) | |
5251 enew! | close | |
5252 endfunc | |
5253 | |
131 " vim: shiftwidth=2 sts=2 expandtab | 5254 " vim: shiftwidth=2 sts=2 expandtab |