Lines Matching full:n

23     LLVM_DEBUG(llvm::errs() << "---\n");
24 LLVM_DEBUG(llvm::errs() << Code << "\n\n");
32 LLVM_DEBUG(llvm::errs() << "\n" << *Result << "\n\n");
53 EXPECT_EQ(Code.str(), Result) << "Formatted:\n" << Result;
62 EXPECT_EQ(Expected.str(), Result) << "Formatted:\n" << Result;
67 verifyFormat("/* aaaaaaaaaaaaa */ aaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"
70 EXPECT_EQ("aaaaa = bbbb.ccccccccccccccc(\n"
71 " /** @type_{!cccc.rrrrrrr.MMMMMMMMMMMM.LLLLLLLLLLL.lala} */\n"
73 format("aaaaa = bbbb.ccccccccccccccc(\n"
80 "aaaaa = bbbb.ccccccccccccccc(\n"
81 " /**\n"
82 " * @type_{!cccc.rrrrrrr.MMMMMMMMMMMM.LLLLLLLLLLL.lala}\n"
83 " */\n"
85 format("aaaaa = bbbb.ccccccccccccccc(\n"
86 " /**\n"
87 " * @type_{!cccc.rrrrrrr.MMMMMMMMMMMM.LLLLLLLLLLL.lala}\n"
94 EXPECT_EQ("/**\n"
95 " * jsdoc line 1\n"
96 " * jsdoc line 2\n"
98 format("/** jsdoc line 1\n"
99 " * jsdoc line 2\n"
103 EXPECT_EQ("/**\n"
104 " * jsdoc line long\n"
105 " * long jsdoc line 2\n"
107 format("/** jsdoc line long long\n"
108 " * jsdoc line 2\n"
112 EXPECT_EQ("/**\n"
113 " * jsdoc line 1\n"
115 format("/** jsdoc line 1\n"
126 "/*** nonjsdoc long\n"
130 "/**strange long long\n"
135 EXPECT_EQ("/**\n"
136 " * jsdoc line 123\n"
140 EXPECT_EQ("/**\n"
141 " * jsdoc line 123\n"
145 EXPECT_EQ("/**\n"
146 " * jsdoc line 123\n"
150 EXPECT_EQ("/**\n"
151 " * line 1\n"
152 " * line 2\n"
154 format("/**\n"
155 " * line 1\n"
159 EXPECT_EQ("/**\n"
160 " * line 1\n"
161 " * line long long\n"
162 " * long\n"
164 format("/**\n"
165 " * line 1\n"
170 EXPECT_EQ("function f() {\n"
171 " /**\n"
172 " * comment about\n"
173 " * x\n"
174 " */\n"
175 " var x = 1;\n"
177 format("function f() {\n"
178 "/** comment about x */\n"
179 "var x = 1;\n"
187 EXPECT_EQ("/**\n"
188 " * @returns {string}\n"
189 " * jsdoc line 12\n"
196 EXPECT_EQ("/**\n"
197 " * @returns {string}\n"
198 " * jsdoc line line\n"
199 " * 12\n"
205 EXPECT_EQ("/**\n"
206 " * line 1\n"
207 " * line 2\n"
208 " * @returns {string}\n"
209 " * jsdoc line 12\n"
211 format("/** line 1\n"
212 " * line 2\n"
216 EXPECT_EQ("/**\n"
217 " * line 1\n"
218 " * line 2\n"
219 " *\n"
220 " * @returns j\n"
222 format("/** line 1\n"
223 " * line 2\n"
224 " *\n"
234 verifyFormat("aaaaaaa ===\n b;", getGoogleJSStyleWithColumns(10));
236 verifyFormat("aaaaaaa !==\n b;", getGoogleJSStyleWithColumns(10));
237 verifyFormat("if (a + b + c +\n"
238 " d !==\n"
239 " e + f + g)\n"
246 verifyFormat("aaaaaaa >>>\n b;", getGoogleJSStyleWithColumns(10));
248 verifyFormat("aaaaaaa >>>=\n b;", getGoogleJSStyleWithColumns(10));
249 verifyFormat("if (a + b + c +\n"
250 " d >>>\n"
251 " e + f + g)\n"
254 verifyFormat("var x = aaaaaaaaaa ?\n"
255 " bbbbbb :\n"
261 verifyFormat("var x = aaaaaaaaaaaaaaaaaaaaaaaaa() in\n"
265 verifyFormat("var x = aaaaaaaaaaaaaaaaaaaaaaaaa() in\n"
269 verifyFormat("var x = aaaaaaaaaaaaaaaaaaaaaaaaa()\n"
315 verifyFormat("x = {\n"
316 " a: 12,\n"
317 " interface: 1,\n"
318 " switch: 1,\n"
326 verifyFormat("interface Test {\n"
327 " x: string;\n"
328 " switch: string;\n"
329 " case: string;\n"
330 " default: string;\n"
332 verifyFormat("const Axis = {\n"
333 " for: 'for',\n"
334 " x: 'x'\n"
337 verifyFormat("export class Foo extends Bar {\n"
338 " get case(): Case {\n"
339 " return (\n"
340 " (this.Bar$has('case')) ? (this.Bar$get('case')) :\n"
341 " (this.case = new Case()));\n"
342 " }\n"
347 verifyFormat("class X {\n"
348 " delete() {\n"
349 " x();\n"
350 " }\n"
351 " interface() {\n"
352 " x();\n"
353 " }\n"
354 " let() {\n"
355 " x();\n"
356 " }\n"
358 verifyFormat("class KeywordNamedMethods {\n"
359 " do() {\n"
360 " }\n"
361 " for() {\n"
362 " }\n"
363 " while() {\n"
364 " }\n"
365 " if() {\n"
366 " }\n"
367 " else() {\n"
368 " }\n"
369 " try() {\n"
370 " }\n"
371 " catch() {\n"
372 " }\n"
378 verifyFormat("throw (x + y);\n"
379 "await (await x).y;\n"
380 "typeof (x) === 'string';\n"
381 "void (0);\n"
382 "delete (x.y);\n"
395 verifyFormat("var x = {\n"
396 " y: function(a) {\n"
397 " return a;\n"
398 " }\n"
400 verifyFormat("return {\n"
401 " link: function() {\n"
402 " f(); //\n"
403 " }\n"
405 verifyFormat("return {\n"
406 " a: a,\n"
407 " link: function() {\n"
408 " f(); //\n"
409 " }\n"
411 verifyFormat("return {\n"
412 " a: a,\n"
413 " link: function() {\n"
414 " f(); //\n"
415 " },\n"
416 " link: function() {\n"
417 " f(); //\n"
418 " }\n"
420 verifyFormat("var stuff = {\n"
421 " // comment for update\n"
422 " update: false,\n"
423 " // comment for modules\n"
424 " modules: false,\n"
425 " // comment for tasks\n"
426 " tasks: false\n"
428 verifyFormat("return {\n"
429 " 'finish':\n"
430 " //\n"
431 " a\n"
433 verifyFormat("var obj = {\n"
434 " fooooooooo: function(x) {\n"
435 " return x.zIsTooLongForOneLineWithTheDeclarationLine();\n"
436 " }\n"
441 verifyFormat("X = {\n a: 123\n};");
442 verifyFormat("X.Y = {\n a: 123\n};");
444 verifyFormat("function x() {\n"
445 " y = {z: 1};\n"
450 verifyFormat("var x = {\n"
451 " y: (a) => {\n"
452 " x();\n"
453 " return a;\n"
454 " },\n"
459 verifyFormat("var x = {\n"
460 " y(a: string): number {\n"
461 " return a;\n"
462 " }\n"
464 verifyFormat("var x = {\n"
465 " y(a: string) {\n"
466 " return a;\n"
467 " }\n"
472 verifyFormat("var x = {\n"
473 " [a]: 1,\n"
474 " b: 2,\n"
475 " [c]: 3,\n"
479 verifyFormat("f({a}, () => {\n"
480 " x;\n"
481 " g();\n"
485 verifyFormat("var x = {\n"
486 " a: a,\n"
487 " b: b,\n"
488 " 'c': c,\n"
492 verifyFormat("var x = {\n"
493 " aaa,\n"
494 " aaa,\n"
495 " aaa,\n"
497 verifyFormat("return {\n"
498 " a,\n"
499 " b: 'b',\n"
500 " c,\n"
505 verifyFormat("var o = {\n"
506 " value: 'test',\n"
507 " get value() { // getter\n"
508 " return this.value;\n"
509 " }\n"
511 verifyFormat("var o = {\n"
512 " value: 'test',\n"
513 " set value(val) { // setter\n"
514 " this.value = val;\n"
515 " }\n"
517 verifyFormat("var o = {\n"
518 " value: 'test',\n"
519 " someMethod(val) { // method\n"
520 " doSomething(this.value + val);\n"
521 " }\n"
523 verifyFormat("var o = {\n"
524 " someMethod(val) { // method\n"
525 " doSomething(this.value + val);\n"
526 " },\n"
527 " someOtherMethod(val) { // method\n"
528 " doSomething(this.value + val);\n"
529 " }\n"
535 verifyFormat("class X {\n"
536 " protected get getter():\n"
537 " number {\n"
538 " return 1;\n"
539 " }\n"
543 verifyFormat("class X {\n"
544 " protected get someReallyLongGetterName():\n"
545 " number {\n"
546 " return 1;\n"
547 " }\n"
556 verifyFormat("var object_literal_with_long_name = {\n"
557 " a: 'aaaaaaaaaaaaaaaaaa',\n"
558 " b: 'bbbbbbbbbbbbbbbbbb'\n"
571 verifyFormat("goog.scope(function() {\n"
572 "var x = a.b;\n"
573 "var y = c.d;\n"
575 verifyFormat("goog.scope(function() {\n"
576 "// test\n"
577 "var x = 0;\n"
578 "// test\n"
583 verifyFormat("a = class extends goog.structs.a {\n"
584 " a() {\n"
585 " return 0;\n"
586 " }\n"
588 verifyFormat("a = class Foo extends goog.structs.a {\n"
589 " a() {\n"
590 " return 0;\n"
591 " }\n"
597 verifyFormat("(function() {\n"
598 "var a = 1;\n"
601 verifyFormat("(function() {\n"
602 "var b = 2;\n"
605 verifyFormat("(function() {\n"
606 "var c = 3;\n"
609 verifyFormat("(function() {\n"
610 "var d = 4;\n"
630 "var MyLongClassName =\n"
632 verifyFormat("function a() {\n"
633 " goog.setTestOnly();\n"
635 "function a() {\n"
636 "goog.setTestOnly();\n"
641 verifyFormat("namespace Foo {\n"
642 " export let x = 1;\n"
644 verifyFormat("declare namespace Foo {\n"
645 " export let x: number;\n"
650 verifyFormat("declare namespace foobarbaz {\n"
653 verifyFormat("declare module foobarbaz {\n"
656 verifyFormat("namespace foobarbaz {\n"
659 verifyFormat("module foobarbaz {\n"
666 verifyFormat("declare class\n"
669 verifyFormat("declare function\n"
672 verifyFormat("declare function foo();\n"
674 verifyFormat("declare function foo(): string;\n"
676 verifyFormat("declare function foo(): {x: number};\n"
678 verifyFormat("declare class X {}\n"
680 verifyFormat("declare interface Y {}\n"
682 verifyFormat("declare enum X {\n"
685 verifyFormat("declare let\n"
691 verifyFormat("function outer1(a, b) {\n"
692 " function inner1(a, b) {\n"
693 " return a;\n"
694 " }\n"
695 " inner1(a, b);\n"
696 "}\n"
697 "function outer2(a, b) {\n"
698 " function inner2(a, b) {\n"
699 " return a;\n"
700 " }\n"
701 " inner2(a, b);\n"
704 verifyFormat("function aFunction() {}\n"
705 "(function f() {\n"
706 " var x = 1;\n"
708 verifyFormat("function aFunction() {}\n"
709 "{\n"
710 " let x = 1;\n"
711 " console.log(x);\n"
713 EXPECT_EQ("a = function(x) {}\n"
714 "\n"
716 format("a = function(x) {}\n"
717 "\n"
724 verifyFormat("class A {\n"
725 " constructor(@arg(DECOR) private arg: Type) {}\n"
728 EXPECT_EQ("class A {\n"
729 " private p = () => {}\n"
730 "\n"
731 " @decorated('a')\n"
732 " get f() {\n"
733 " return result;\n"
734 " }\n"
735 "}\n"
736 "\n"
737 "class B {\n"
738 " private p = () => {}\n"
739 "\n"
740 " @decorated('a')\n"
741 " set f() {\n"
742 " return result;\n"
743 " }\n"
744 "}\n"
745 "\n"
746 "class C {\n"
747 " private p = () => {}\n"
748 "\n"
749 " @decorated('a')\n"
750 " function f() {\n"
751 " return result;\n"
752 " }\n"
754 format("class A {\n"
755 " private p = () => {}\n"
756 "\n"
757 " @decorated('a')\n"
758 " get f() {\n"
759 " return result;\n"
760 " }\n"
761 "}\n"
762 "\n"
763 "class B {\n"
764 " private p = () => {}\n"
765 "\n"
766 " @decorated('a')\n"
767 " set f() {\n"
768 " return result;\n"
769 " }\n"
770 "}\n"
771 "\n"
772 "class C {\n"
773 " private p = () => {}\n"
774 "\n"
775 " @decorated('a')\n"
776 " function f() {\n"
777 " return result;\n"
778 " }\n"
784 verifyFormat("function* f() {\n"
785 " let x = 1;\n"
786 " yield x;\n"
787 " yield* something();\n"
788 " yield [1, 2];\n"
789 " yield {a: 1};\n"
791 verifyFormat("function*\n"
792 " f() {\n"
795 verifyFormat("export function* f() {\n"
796 " yield 1;\n"
798 verifyFormat("class X {\n"
799 " * generatorMethod() {\n"
800 " yield x;\n"
801 " }\n"
803 verifyFormat("var x = {\n"
804 " a: function*() {\n"
805 " //\n"
806 " }\n"
811 verifyFormat("async function f() {\n"
812 " let x = 1;\n"
813 " return fetch(x);\n"
815 verifyFormat("async function f() {\n"
816 " return 1;\n"
817 "}\n"
818 "\n"
819 "function a() {\n"
820 " return 1;\n"
822 " async function f() {\n"
823 " return 1;\n"
824 "}\n"
825 "\n"
826 " function a() {\n"
827 " return 1;\n"
831 verifyFormat("async function\n"
832 "hello(\n"
833 " myparamnameiswaytooloooong) {\n"
837 verifyFormat("class C {\n"
838 " async hello(\n"
839 " myparamnameiswaytooloooong) {\n"
840 " }\n"
842 "class C {\n"
845 verifyFormat("async function* f() {\n"
846 " yield fetch(x);\n"
848 verifyFormat("export async function f() {\n"
849 " return fetch(x);\n"
852 verifyFormat("let x = async function() {\n"
853 " f();\n"
856 verifyFormat("class X {\n"
857 " async asyncMethod() {\n"
858 " return fetch(1);\n"
859 " }\n"
861 verifyFormat("function initialize() {\n"
862 " // Comment.\n"
863 " return async.then();\n"
865 verifyFormat("for await (const x of y) {\n"
866 " console.log(x);\n"
868 verifyFormat("function asyncLoop() {\n"
869 " for await (const x of y) {\n"
870 " console.log(x);\n"
871 " }\n"
877 "class C extends P {\n"
879 "anOverlyLongPropertyNameSoLongItHasToGoInASeparateLineWhenOverriden:\n"
880 " undefined;\n"
883 "class C extends P {\n"
885 "anOverlyLongMethodNameSoLongItHasToGoInASeparateLineWhenOverriden() {\n"
886 " }\n"
888 verifyFormat("class C extends P {\n"
889 " protected override aMethodName<ATypeParam extends {},\n"
891 "extends {}>() {}\n"
896 verifyFormat("function trailingComma(\n"
897 " p1,\n"
898 " p2,\n"
899 " p3,\n"
900 ") {\n"
901 " a; //\n"
903 "function trailingComma(p1, p2, p3,) {\n"
904 " a; //\n"
906 verifyFormat("trailingComma(\n"
907 " p1,\n"
908 " p2,\n"
909 " p3,\n"
912 verifyFormat("trailingComma(\n"
913 " p1 // hello\n"
915 "trailingComma(p1 // hello\n"
920 verifyFormat("var aaaaa: List<SomeThing> =\n"
922 verifyFormat("return [\n"
923 " aaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbb,\n"
924 " ccccccccccccccccccccccccccc\n"
926 verifyFormat("return [\n"
927 " aaaa().bbbbbbbb('A'),\n"
928 " aaaa().bbbbbbbb('B'),\n"
929 " aaaa().bbbbbbbb('C'),\n"
931 verifyFormat("var someVariable = SomeFunction([\n"
932 " aaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbb,\n"
933 " ccccccccccccccccccccccccccc\n"
935 verifyFormat("var someVariable = SomeFunction([\n"
936 " [aaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbb],\n"
939 verifyFormat("var someVariable = SomeFunction(aaaa, [\n"
940 " aaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbb,\n"
941 " ccccccccccccccccccccccccccc\n"
943 verifyFormat("var someVariable = SomeFunction(\n"
944 " aaaa,\n"
945 " [\n"
946 " aaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbb,\n"
947 " cccccccccccccccccccccccccc\n"
948 " ],\n"
950 verifyFormat("var aaaa = aaaaa || // wrap\n"
955 verifyFormat("var string = [\n"
956 " 'aaaaaa',\n"
957 " 'bbbbbb',\n"
962 verifyFormat("var array = [\n"
963 " a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,\n"
964 " a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,\n"
966 verifyFormat("var array = someFunction([\n"
967 " a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,\n"
968 " a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,\n"
976 verifyFormat("const x = [\n"
977 " 1, //\n"
978 " 2,\n"
980 "const x = [\n"
981 " 1, //\n"
986 verifyFormat("const x = [\n"
987 " aaaaaaaaaaaaaaaaaaaaaaaaa,\n"
991 verifyFormat("const x = [\n"
992 " aaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
996 verifyFormat("const x = {\n"
997 " a: aaaaaaaaaaaaaaaaa,\n"
1000 verifyFormat("const x = {\n"
1001 " a: aaaaaaaaaaaaaaaaaaaaaaaaa\n"
1005 verifyFormat("let x: {\n"
1006 " a: aaaaaaaaaaaaaaaaaaaaa,\n"
1016 verifyFormat("var func = function() {\n"
1017 " return 1;\n"
1019 verifyFormat("var func = //\n"
1020 " function() {\n"
1021 " return 1;\n"
1023 verifyFormat("return {\n"
1024 " body: {\n"
1025 " setAttribute: function(key, val) { this[key] = val; },\n"
1026 " getAttribute: function(key) { return this[key]; },\n"
1027 " style: {direction: ''}\n"
1028 " }\n"
1031 verifyFormat("abc = xyz ? function() {\n"
1032 " return 1;\n"
1033 "} : function() {\n"
1034 " return -1;\n"
1037 verifyFormat("var closure = goog.bind(\n"
1038 " function() { // comment\n"
1039 " foo();\n"
1040 " bar();\n"
1041 " },\n"
1042 " this, arg1IsReallyLongAndNeedsLineBreaks,\n"
1044 verifyFormat("var closure = goog.bind(function() { // comment\n"
1045 " foo();\n"
1046 " bar();\n"
1048 verifyFormat("return {\n"
1049 " a: 'E',\n"
1050 " b: function() {\n"
1051 " return function() {\n"
1052 " f(); //\n"
1053 " };\n"
1054 " }\n"
1056 verifyFormat("{\n"
1057 " var someVariable = function(x) {\n"
1058 " return x.zIsTooLongForOneLineWithTheDeclarationLine();\n"
1059 " };\n"
1061 verifyFormat("someLooooooooongFunction(\n"
1062 " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
1063 " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
1064 " function(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {\n"
1065 " // code\n"
1068 verifyFormat("return {\n"
1069 " a: function SomeFunction() {\n"
1070 " // ...\n"
1071 " return 1;\n"
1072 " }\n"
1074 verifyFormat("this.someObject.doSomething(aaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
1075 " .then(goog.bind(function(aaaaaaaaaaa) {\n"
1076 " someFunction();\n"
1077 " someFunction();\n"
1080 verifyFormat("someFunction(goog.bind(function() {\n"
1081 " doSomething();\n"
1082 " doSomething();\n"
1083 "}, this), goog.bind(function() {\n"
1084 " doSomething();\n"
1085 " doSomething();\n"
1088 verifyFormat("SomeFunction(function() {\n"
1089 " foo();\n"
1090 " bar();\n"
1093 verifyFormat("SomeFunction((function() {\n"
1094 " foo();\n"
1095 " bar();\n"
1099 verifyFormat("someFunction(function() {\n"
1100 " doSomething(); // break\n"
1101 "})\n"
1102 " .doSomethingElse(\n"
1103 " // break\n"
1109 verifyFormat("f({\n"
1110 " a: function() { return 1; }\n"
1116 verifyFormat("(aaaaaaaaaaaaaaaaaaaaa.getData as jasmine.Spy)\n"
1118 verifyFormat("(aaaaaaaaaaaaaaaaaaaaa.getData as jasmine.Spy)\n"
1120 verifyFormat("(aaaaaaaaaaaaaaaaaaaaa.getData as jasmine.Spy)\n"
1127 verifyFormat("var func = function() {\n"
1128 " return 1;\n"
1132 verifyFormat("var outer = function() {\n"
1133 " var inner = function() { return 1; }\n"
1136 verifyFormat("function outer1(a, b) {\n"
1137 " function inner1(a, b) { return a; }\n"
1147 verifyFormat("function outer1(a, b) {\n"
1148 " function inner1(a, b) { return a; }\n"
1153 verifyFormat("var func = function() {\n"
1154 " return 1;\n"
1157 verifyFormat("var func = doSomething(function() {\n"
1158 " return 1;\n"
1161 verifyFormat("var outer = function() {\n"
1162 " var inner = function() {\n"
1163 " return 1;\n"
1164 " }\n"
1167 verifyFormat("function outer1(a, b) {\n"
1168 " function inner1(a, b) {\n"
1169 " return a;\n"
1170 " }\n"
1175 verifyFormat("var func = function() {\n"
1176 " return 1;\n"
1184 verifyFormat("promise.then(\n"
1185 " function success() {\n"
1186 " doFoo();\n"
1187 " doBar();\n"
1188 " },\n"
1189 " function error() {\n"
1190 " doFoo();\n"
1191 " doBaz();\n"
1192 " },\n"
1194 verifyFormat("promise.then(\n"
1195 " function success() {\n"
1196 " doFoo();\n"
1197 " doBar();\n"
1198 " },\n"
1199 " [],\n"
1200 " function error() {\n"
1201 " doFoo();\n"
1202 " doBaz();\n"
1204 verifyFormat("promise.then(\n"
1205 " [],\n"
1206 " function success() {\n"
1207 " doFoo();\n"
1208 " doBar();\n"
1209 " },\n"
1210 " function error() {\n"
1211 " doFoo();\n"
1212 " doBaz();\n"
1215 verifyFormat("getSomeLongPromise()\n"
1216 " .then(function(value) { body(); })\n"
1217 " .thenCatch(function(error) {\n"
1218 " body();\n"
1219 " body();\n"
1222 verifyFormat("getSomeLongPromise()\n"
1223 " .then(function(value) {\n"
1224 " body();\n"
1225 " body();\n"
1226 " })\n"
1227 " .thenCatch(function(error) {\n"
1228 " body();\n"
1229 " body();\n"
1232 verifyFormat("getSomeLongPromise()\n"
1233 " .then(function(value) { body(); })\n"
1237 verifyFormat("return [aaaaaaaaaaaaaaaaaaaaaa]\n"
1238 " .aaaaaaa(function() {\n"
1239 " //\n"
1240 " })\n"
1245 verifyFormat("var x = (a) => {\n"
1246 " x;\n"
1247 " return a;\n"
1249 verifyFormat("var x = (a) => {\n"
1250 " function y() {\n"
1251 " return 42;\n"
1252 " }\n"
1253 " return a;\n"
1255 verifyFormat("var x = (a: type): {some: type} => {\n"
1256 " y;\n"
1257 " return a;\n"
1261 verifyFormat("var aaaaaaaaaaaaaaaaaaaa = {\n"
1262 " aaaaaaaaaaaaaaaaaaaaaaaaaaaa:\n"
1263 " (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
1264 " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) =>\n"
1265 " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
1267 verifyFormat("var a = a.aaaaaaa(\n"
1268 " (a: a) => aaaaaaaaaaaaaaaaaaaaaaaaa(bbbbbbbbb) &&\n"
1270 verifyFormat("var a = a.aaaaaaa(\n"
1271 " (a: a) => aaaaaaaaaaaaaaaaaaaaa(bbbbbbbbb) ?\n"
1272 " aaaaaaaaaaaaaaaaaaaaa(bbbbbbb) :\n"
1276 verifyFormat("someFunction(() => {\n"
1277 " doSomething(); // break\n"
1278 "})\n"
1279 " .doSomethingElse(\n"
1280 " // break\n"
1282 verifyFormat("const f = (x: string|null): string|null => {\n"
1283 " y;\n"
1284 " return x;\n"
1294 verifyFormat("const arr = () => {\n"
1295 " x;\n"
1298 verifyFormat("const arrInlineNone = () => {\n"
1302 verifyFormat("const arr = () => {\n"
1303 " x;\n"
1308 verifyFormat("const arr = () => {\n"
1309 " x;\n"
1317 verifyFormat("function() {\n"
1318 " return [hello, world];\n"
1323 verifyFormat("for (var i in [2, 3]) {\n"
1325 verifyFormat("for (var i of [2, 3]) {\n"
1327 verifyFormat("for (let {a, b} of x) {\n"
1329 verifyFormat("for (let {a, b} of [x]) {\n"
1331 verifyFormat("for (let [a, b] of [x]) {\n"
1333 verifyFormat("for (let {a, b} in x) {\n"
1350 verifyFormat("return [\n"
1351 " aaa\n"
1354 verifyFormat("class X {\n"
1355 " readonly ratherLongField =\n"
1356 " 1;\n"
1358 "class X {\n"
1359 " readonly ratherLongField = 1;\n"
1362 verifyFormat("const x = (5 + 9)\n"
1364 "const x = ( 5 + 9)\n"
1367 verifyFormat("async function\n"
1372 verifyFormat("x = (a['a']\n"
1375 verifyFormat("function f() {\n"
1376 " return foo.bar(\n"
1377 " (param): param is {\n"
1378 " a: SomeType\n"
1379 " }&ABC => 1)\n"
1387 verifyFormat("Polymer({\n"
1388 " is: '', //\n"
1389 " rest: 1\n"
1395 verifyFormat("a\n"
1397 " a \n"
1399 verifyFormat("a()\n"
1401 " a ()\n"
1403 verifyFormat("a[b]\n"
1405 "a [b]\n"
1407 verifyFormat("1\n"
1409 "1 \n"
1411 verifyFormat("a\n"
1413 "a \n"
1415 verifyFormat("a\n"
1417 "a \n"
1419 verifyFormat("a++\n"
1421 "a ++\n"
1423 verifyFormat("a\n"
1425 "a \n"
1427 verifyFormat("a\n"
1429 " a\n"
1431 verifyFormat("a\n"
1433 " a\n"
1435 verifyFormat("var a", "var\n"
1437 verifyFormat("x instanceof String", "x\n"
1438 "instanceof\n"
1440 verifyFormat("function f(@Foo bar) {}", "function f(@Foo\n"
1442 verifyFormat("function f(@Foo(Param) bar) {}", "function f(@Foo(Param)\n"
1444 verifyFormat("a = true\n"
1446 "a = true\n"
1448 verifyFormat("a = 's'\n"
1450 "a = 's'\n"
1452 verifyFormat("a = null\n"
1454 "a = null\n"
1457 verifyFormat("x = {\n"
1458 " a: 1\n"
1460 " x = {a : 1}\n"
1462 verifyFormat("if (x) {\n"
1463 "}\n"
1465 "if (x) {}\n"
1467 verifyFormat("if (x) {\n"
1468 "}\n"
1470 "if (x) {}\n"
1475 verifyFormat("import {x} from 'y'\n"
1477 "import {x} from 'y'\n"
1480 verifyFormat("export {x} class Y {}", " export {x}\n"
1481 " class Y {\n}");
1482 verifyFormat("if (x) {\n"
1483 "}\n"
1485 "if ( x ) { }\n"
1490 verifyFormat("import type {x, y} from 'y';\n"
1491 "import type * as x from 'y';\n"
1492 "import type x from 'y';\n"
1494 verifyFormat("export type {x, y} from 'y';\n"
1495 "export {x, type yu, z} from 'y';\n"
1496 "export type {x, y};\n"
1505 verifyFormat("try {\n"
1506 " f();\n"
1507 "} catch (e) {\n"
1508 " g();\n"
1509 "} finally {\n"
1510 " h();\n"
1519 verifyFormat("var literal = 'hello ' +\n"
1523 verifyFormat("var literal =\n"
1536 verifyFormat("for (var i = 0; /abc/.test(s[i]); i++) {\n}");
1589 verifyFormat("var regex = /\\n/;");
1602 verifyFormat("var regex = /a\\//;\n"
1606 verifyFormat("var regex = /\\/*/;\n"
1608 "var regex = /\\/*/;\n"
1610 verifyFormat("var x = /a\\//;", "var x = /a\\// \n;");
1612 verifyFormat("var regex =\n"
1615 verifyFormat("var regex = //\n"
1617 verifyFormat("var regexs = [\n"
1618 " /d/, //\n"
1619 " /aa/, //\n"
1633 verifyFormat("var regex =\n"
1656 verifyFormat("function x(): string {\n return 'x';\n}");
1657 verifyFormat("function x(): {x: string} {\n return {x: 'x'};\n}");
1658 verifyFormat("function x(y: string): string {\n return 'x';\n}");
1659 verifyFormat("for (var y: string in x) {\n x();\n}");
1660 verifyFormat("for (var y: string of x) {\n x();\n}");
1661 verifyFormat("function x(y: {a?: number;} = {}): number {\n"
1662 " return 12;\n"
1668 verifyFormat("var x = {\n"
1669 " y: function(): z {\n"
1670 " return 1;\n"
1671 " }\n"
1673 verifyFormat("var x = {\n"
1674 " y: function(): {a: number} {\n"
1675 " return 1;\n"
1676 " }\n"
1678 verifyFormat("function someFunc(args: string[]):\n"
1682 "var someValue = (v as aaaaaaaaaaaaaaaaaaaa<T>[])\n"
1684 verifyFormat("const xIsALongIdent:\n"
1687 verifyFormat("const x = {\n"
1688 " y: 1\n"
1706 verifyFormat("type X = {\n"
1707 " a: Foo|Bar;\n"
1709 verifyFormat("export type X = {\n"
1710 " a: Foo|Bar;\n"
1718 verifyFormat("class X {\n"
1719 " contructor(x: {\n"
1720 " a: a|null,\n"
1721 " b: b|null,\n"
1722 " }) {}\n"
1727 verifyFormat("class C {\n x: string = 12;\n}");
1728 verifyFormat("class C {\n x(): string => 12;\n}");
1729 verifyFormat("class C {\n ['x' + 2]: string = 12;\n}");
1730 verifyFormat("class C {\n"
1731 " foo() {}\n"
1732 " [bar]() {}\n"
1734 verifyFormat("class C {\n private x: string = 12;\n}");
1735 verifyFormat("class C {\n private static x: string = 12;\n}");
1736 verifyFormat("class C {\n static x(): string {\n return 'asd';\n }\n}");
1739 verifyFormat("x(class {\n"
1740 " a(): A {}\n"
1742 verifyFormat("class Test {\n"
1743 " aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaaa):\n"
1744 " aaaaaaaaaaaaaaaaaaaaaa {}\n"
1746 verifyFormat("foo = class Name {\n"
1747 " constructor() {}\n"
1749 verifyFormat("foo = class {\n"
1750 " constructor() {}\n"
1752 verifyFormat("class C {\n"
1753 " x: {y: Z;} = {};\n"
1754 " private y: {y: Z;} = {};\n"
1756 verifyFormat("class Foo {\n"
1757 " private addGrammarCheckOneboxProductInfo(\n"
1758 " productInfo: {[key: string]: string;}) {}\n"
1762 verifyFormat("class X {\n"
1763 " subs = {\n"
1764 " 'b': {\n"
1765 " 'c': 1,\n"
1766 " },\n"
1767 " };\n"
1769 verifyFormat("@Component({\n"
1770 " moduleId: module.id,\n"
1771 "})\n"
1772 "class SessionListComponent implements OnDestroy, OnInit {\n"
1778 verifyFormat("class X {\n"
1779 " strictPropInitField!:\n"
1780 " string;\n"
1786 verifyFormat("interface I {\n"
1787 " x: string;\n"
1788 " enum: string[];\n"
1789 " enum?: string[];\n"
1790 "}\n"
1793 verifyFormat("interface a {}\n"
1794 "export function b() {}\n"
1798 verifyFormat("interface I {\n"
1799 " o: {}[];\n"
1807 verifyFormat("class C implements {\n"
1808 " bar: number,\n"
1809 " baz: string,\n"
1815 verifyFormat("enum Foo {\n"
1816 " A = 1,\n"
1817 " B\n"
1819 verifyFormat("export /* somecomment*/ enum Foo {\n"
1820 " A = 1,\n"
1821 " B\n"
1823 verifyFormat("enum Foo {\n"
1824 " A = 1, // comment\n"
1825 " B\n"
1826 "}\n"
1828 verifyFormat("const enum Foo {\n"
1829 " A = 1,\n"
1830 " B\n"
1832 verifyFormat("export const enum Foo {\n"
1833 " A = 1,\n"
1834 " B\n"
1839 verifyFormat("@A\nclass C {\n}");
1840 verifyFormat("@A({arg: 'value'})\nclass C {\n}");
1841 verifyFormat("@A\n@B\nclass C {\n}");
1842 verifyFormat("class C {\n @A x: string;\n}");
1843 verifyFormat("class C {\n"
1844 " @A\n"
1845 " private x(): string {\n"
1846 " return 'y';\n"
1847 " }\n"
1849 verifyFormat("class C {\n"
1850 " private x(@A x: string) {}\n"
1852 verifyFormat("class X {}\n"
1854 verifyFormat("class X {\n"
1855 " @property() private isReply = false;\n"
1860 verifyFormat("type X = number;\n"
1863 verifyFormat("type X = {\n"
1864 " y: number\n"
1865 "};\n"
1867 verifyFormat("export type X = {\n"
1868 " a: string,\n"
1869 " b?: string,\n"
1875 verifyFormat("type LongTypeIsReallyUnreasonablyLong =\n"
1878 verifyFormat("interface AbstractStrategyFactoryProvider {\n"
1879 " a: number\n"
1886 verifyFormat("x = () => {\n"
1887 " foo();\n"
1888 " bar();\n"
1890 "x = () => {\n"
1891 "\n"
1892 " foo();\n"
1893 " bar();\n"
1894 "\n"
1904 // Ensure Automatic Semicolon Insertion does not break on "as\n".
1905 verifyFormat("import {X as myX} from 'm';", "import {X as\n"
1910 verifyFormat("function() {\n"
1911 " var x;\n"
1912 " import 'some/module.js';\n"
1915 verifyFormat("export function fn() {\n"
1916 " return 'fn';\n"
1918 verifyFormat("export function A() {}\n"
1919 "export default function B() {}\n"
1921 verifyFormat("export default () => {\n"
1922 " let x = 1;\n"
1923 " return x;\n"
1932 verifyFormat("export let someRatherLongVariableName =\n"
1935 verifyFormat("export {\n"
1936 " from as from,\n"
1937 " someSurprisinglyLongVariable as\n"
1938 " from\n"
1941 verifyFormat("export class C {\n"
1942 " x: number;\n"
1943 " y: string;\n"
1945 verifyFormat("export class X {\n"
1946 " y: number;\n"
1948 verifyFormat("export abstract class X {\n"
1949 " y: number;\n"
1951 verifyFormat("export default class X {\n"
1952 " y: number\n"
1954 verifyFormat("export default function() {\n return 1;\n}");
1956 verifyFormat("class C {}\n"
1957 "export function f() {}\n"
1960 verifyFormat("export const y = {\n"
1961 " a: 1,\n"
1962 " b: 2\n"
1964 verifyFormat("export enum Foo {\n"
1965 " BAR,\n"
1966 " // adsdasd\n"
1967 " BAZ\n"
1969 verifyFormat("export default [\n"
1970 " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
1971 " bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n"
1975 verifyFormat("export default () => {\n"
1976 " x;\n"
1977 " x;\n"
1979 verifyFormat("export interface Foo {\n"
1980 " foo: number;\n"
1981 "}\n"
1982 "export class Bar {\n"
1983 " blah(): string {\n"
1984 " return this.blah;\n"
1985 " };\n"
1995 verifyFormat("import {\n"
1996 " VeryLongImportsAreAnnoying,\n"
1997 " VeryLongImportsAreAnnoying,\n"
1998 " VeryLongImportsAreAnnoying,\n"
2001 verifyFormat("import {\n"
2002 " A,\n"
2003 " A,\n"
2006 verifyFormat("export {\n"
2007 " A,\n"
2008 " A,\n"
2013 verifyFormat("import {\n"
2014 " A,\n"
2015 "} from\n"
2017 " import { \n"
2018 " A, \n"
2019 " } from\n"
2026 verifyFormat("var x = `hello\n"
2027 " ${name}\n"
2029 "var x = `hello\n"
2030 " ${ name }\n"
2033 verifyFormat("var x =\n"
2040 verifyFormat("var x = `hello\n"
2041 " ${world}` >=\n"
2043 "var x =\n"
2044 " `hello\n"
2047 verifyFormat("var x = `hello\n"
2049 "var x =\n"
2050 " `hello\n"
2054 verifyFormat("var x =\n"
2057 verifyFormat("var x =\n `multi\n line`;", "var x = `multi\n line`;",
2059 verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"
2063 "someLongVariable =\n"
2071 verifyFormat("var a = aaaaaaaaaaaaaaaaaaaaaaaaaaaa ||\n"
2078 verifyFormat("var x = `//a`;\n"
2080 "var x =\n `//a`;\n"
2082 verifyFormat("var x = `/*a`;\n"
2084 "var x =\n `/*a`;\n"
2087 verifyFormat("var x = `'`; // comment with matching quote '\n"
2089 verifyFormat("var x = `\"`; // comment with matching quote \"\n"
2095 verifyFormat("var x = 1 // `/*a`;\n"
2097 "var x =\n 1 // `/*a`;\n"
2099 verifyFormat("/* ` */ var x = 1; /* ` */", "/* ` */ var x\n= 1; /* ` */");
2101 verifyFormat("var x = `/*a`;\n"
2103 "var x =\n `/*a`;\n"
2104 "var y =\n ` */ `;");
2106 verifyFormat("var x = ` \\` a`;\n"
2108 "var x = ` \\` a`;\n"
2119 verifyFormat("var f = `aaaaaaaaaaaaa:${aaaaaaa.aaaaa} aaaaaaaa\n"
2121 "var f = `aaaaaaaaaaaaa:${aaaaaaa. aaaaa} aaaaaaaa\n"
2123 verifyFormat("var x = someFunction(`${})`) //\n"
2125 verifyFormat("var x = someFunction(`${aaaa}${\n"
2126 " aaaaa( //\n"
2131 verifyFormat("var f = `aaaaaaaaaaaaaaaaaa: ${\n"
2132 " aaaaa + //\n"
2134 "var f = `aaaaaaaaaaaaaaaaaa: ${aaaaa + //\n"
2136 verifyFormat("var f = `\n"
2137 " aaaaaaaaaaaaaaaaaa: ${\n"
2138 " aaaaa + //\n"
2140 "var f = `\n"
2141 " aaaaaaaaaaaaaaaaaa: ${ aaaaa + //\n"
2143 verifyFormat("var f = `\n"
2144 " aaaaaaaaaaaaaaaaaa: ${\n"
2145 " someFunction(\n"
2146 " aaaaa + //\n"
2148 "var f = `\n"
2149 " aaaaaaaaaaaaaaaaaa: ${someFunction (\n"
2150 " aaaaa + //\n"
2154 verifyFormat("var f = `\n"
2155 " aaaaaaaaaaaaaaaaaa: ${someFunction({\n"
2156 " aaaa: aaaaa,\n"
2157 " bbbb: bbbbb,\n"
2159 "var f = `\n"
2160 " aaaaaaaaaaaaaaaaaa: ${someFunction ({\n"
2161 " aaaa: aaaaa,\n"
2162 " bbbb: bbbbb,\n"
2165 verifyFormat("`${\n"
2166 " (\n"
2167 " FOOFOOFOOFOO____FOO_FOO_FO_FOO_FOOO -\n"
2168 " (barbarbarbar____bar_bar_bar_bar_bar_bar +\n"
2169 " bar_bar_bar_barbarbar___bar_bar_bar + 1),\n"
2174 verifyFormat("var x = `hello${world}`;", "var x = `hello${\n"
2175 " world\n"
2181 "var x = `<ul>${xs.map(x => `<li>${x}</li>`).join('\\n')}</ul>`;");
2194 verifyFormat("var f = {\n"
2195 " param: longTagName`This is a ${\n"
2196 " 'really'} long line`\n"
2205 verifyFormat("let x = (a + b) as\n"
2208 verifyFormat("foo = <Bar[]>[\n"
2209 " 1, //\n"
2210 " 2\n"
2218 verifyFormat("var x = something.someFunction() as\n"
2231 verifyFormat("function aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa():\n"
2233 verifyFormat("function aaaaaaaaaa(\n"
2234 " aaaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaa,\n"
2235 " aaaaaaaaaaaaaaaa: aaaaaaaaaaaaaaaaaaa):\n"
2241 "function foo(check: Object):\n"
2242 " check is {foo: string, bar: string, baz: string, foobar: string} {\n"
2243 " return 'bar' in check;\n"
2249 verifyFormat("class X {\n"
2250 " y?: z;\n"
2251 " z?;\n"
2253 verifyFormat("interface X {\n"
2254 " y?(): z;\n"
2256 verifyFormat("constructor({aa}: {\n"
2257 " aa?: string,\n"
2258 " aaaaaaaa?: string,\n"
2259 " aaaaaaaaaaaaaaa?: boolean,\n"
2260 " aaaaaa?: List<string>\n"
2270 verifyFormat("xxxxxxxxxxx(\n"
2273 verifyFormat("xxxxxxxxxxx(\n"
2274 " aaa, aaa, aaa,\n"
2277 verifyFormat("xxxxxxxxxxx(\n"
2278 " aaaaaaaaaaaaaaaaaaaaaaaa,\n"
2279 " function(x) {\n"
2280 " y(); //\n"
2283 verifyFormat("while (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&\n"
2284 " bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) {\n}");
2288 verifyFormat("/**\n"
2289 " * @exports {this.is.a.long.path.to.a.Type}\n"
2291 "/**\n"
2292 " * @exports {this.is.a.long.path.to.a.Type}\n"
2295 verifyFormat("/**\n"
2296 " * @mods {this.is.a.long.path.to.a.Type}\n"
2298 "/**\n"
2299 " * @mods {this.is.a.long.path.to.a.Type}\n"
2302 verifyFormat("/**\n"
2303 " * @mods {this.is.a.long.path.to.a.Type}\n"
2305 "/**\n"
2306 " * @mods {this.is.a.long.path.to.a.Type}\n"
2309 verifyFormat("/**\n"
2310 " * @param {canWrap\n"
2311 " * onSpace}\n"
2313 "/**\n"
2314 " * @param {canWrap onSpace}\n"
2318 verifyFormat("/**\n"
2319 " * @lala {lala {lalala\n"
2321 "/**\n"
2322 " * @lala {lala {lalala\n"
2327 verifyFormat("/**\n"
2328 " * @param {type}\n"
2330 "/**\n"
2331 " * @param {type}\n"
2336 verifyFormat("/**\n"
2337 " * This\n"
2338 " * tag @param\n"
2339 " * stays.\n"
2341 "/**\n"
2342 " * This tag @param stays.\n"
2345 verifyFormat("/**\n"
2346 " * @see http://very/very/long/url/is/long\n"
2348 "/**\n"
2349 " * @see http://very/very/long/url/is/long\n"
2352 verifyFormat("/**\n"
2353 " * @param This is a\n"
2354 " * long comment\n"
2355 " * but no type\n"
2357 "/**\n"
2358 " * @param This is a long comment but no type\n"
2362 EXPECT_EQ("{\n"
2363 " /**\n"
2364 " * long long long\n"
2365 " * long\n"
2366 " * @param {this.is.a.long.path.to.a.Type}\n"
2367 " * a\n"
2368 " * long long long\n"
2369 " * long long\n"
2370 " */\n"
2371 " function f(a) {}\n"
2373 format("{\n"
2374 "/**\n"
2375 " * long long long long\n"
2376 " * @param {this.is.a.long.path.to.a.Type} a\n"
2377 " * long long long long\n"
2378 " * long\n"
2379 " */\n"
2380 " function f(a) {}\n"
2388 "Comment that needs\n"
2389 "// wrapping. Trailing line.\n"
2392 "Comment that needs wrapping.\n"
2393 "// Trailing line.\n"
2400 "Comment that needs\n"
2401 "// wrapping. Trailing line.\n"
2404 "Comment that needs wrapping.\n"
2405 "// Trailing line.\n"
2408 "Comment that needs\n"
2409 "// wrapping. Trailing line.\n"
2412 "Comment that needs wrapping.\n"
2413 "// Trailing line.\n"
2421 verifyFormat("var x =\n"
2431 verifyFormat("// clang-format off\n"
2432 "let x = \"double\";\n"
2433 "// clang-format on\n"
2435 "// clang-format off\n"
2436 "let x = \"double\";\n"
2437 "// clang-format on\n"
2442 verifyFormat("let x = someVeryLongFunctionThatGoesOnAndOn(\n"
2447 verifyFormat("let x =\n"
2448 " 'foo\\'oo';\n"
2449 "let x =\n"
2451 "let x=\"foo'oo\";\n"
2472 verifyFormat("#!/usr/bin/env node\n"
2474 "#!/usr/bin/env node\n"
2482 verifyFormat("if (!+a) {\n}");
2486 verifyFormat("a.aaaaaa(a.a!).then(\n"
2491 verifyFormat("let x = hello.foo()!\n"
2492 " .foo()!\n"
2493 " .foo()!\n"
2568 verifyFormat("const val = something ?? otherDefault ??\n"
2586 verifyFormat("class Foo {\n"
2587 " field = true ? 1 : 2;\n"
2588 " method(a = true ? 1 : 2) {}\n"
2608 verifyFormat("var l = [\n"
2609 " [\n"
2610 " 1,\n"
2611 " ],\n"
2614 verifyFormat("var l = [\n"
2615 " {\n"
2616 " 1: 1,\n"
2617 " },\n"
2620 verifyFormat("someFunction(\n"
2621 " p1,\n"
2622 " [\n"
2623 " 1,\n"
2624 " ],\n"
2627 verifyFormat("someFunction(\n"
2628 " p1,\n"
2629 " {\n"
2630 " 1: 1,\n"
2631 " },\n"
2634 verifyFormat("var o = {\n"
2635 " 1: 1,\n"
2636 " 2: {\n"
2637 " 3: 3,\n"
2638 " },\n"
2641 verifyFormat("var o = {\n"
2642 " 1: 1,\n"
2643 " 2: [\n"
2644 " 3,\n"
2645 " ],\n"
2651 verifyFormat("// hello \\\n"
2653 "// hello \\\n"
2654 " if ( x) \n"
2656 verifyFormat("/* ignore \\\n"
2657 " */\n"
2659 "/* ignore \\\n"
2660 " */\n"
2662 verifyFormat("// st \\ art\\\n"
2664 "// continue \\\n"
2666 "// st \\ art\\\n"
2668 "// continue \\\n"
2674 "a = function() {\n"
2675 " b = function() {\n"
2676 " this.aaaaaaaaaaaaaaaaaaa[aaaaaaaaaaa] = aaaa.aaaaaa ?\n"
2678 "{aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaaaaaaaa} */\n"
2679 " (aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaa.aaaaaaaaaaaaaaaaa);\n"
2680 " };\n"
2682 format("a = function() {\n"
2683 " b = function() {\n"
2686 "{aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaaaaaaaa} */\n"
2687 " (aaaa.aaaa.aaaaaaaaa.aaaaaaaaaaaaa.aaaaaaaaaaaaaaaaa);\n"
2688 " };\n"
2700 "type UnionToIntersection<U> =\n"
2701 " (U extends any ? (k: U) => void :\n"
2706 verifyFormat("class Example {\n"
2707 " pub = 1;\n"
2708 " #priv = 2;\n"
2709 " static pub2 = 'foo';\n"
2710 " static #priv2 = 'bar';\n"
2711 " method() {\n"
2712 " this.#priv = 5;\n"
2713 " }\n"
2714 " static staticMethod() {\n"
2715 " switch (this.#priv) {\n"
2716 " case '1':\n"
2717 " #priv = 3;\n"
2718 " break;\n"
2719 " }\n"
2720 " }\n"
2721 " #privateMethod() {\n"
2722 " this.#privateMethod(); // infinite loop\n"
2723 " }\n"
2728 verifyFormat("class Example {\n"
2729 " declare pub: string;\n"
2730 " declare private priv: string;\n"
2736 "interface Assertable<State extends {}> {\n"
2738 "State>(\n"
2739 " callback: Callback<ExportedState, DependencyState>):\n"
2740 " asserts this is ExtendedState<DependencyState&ExportedState>;\n"
2742 "interface Assertable<State extends {}> {\n"
2745 "this is ExtendedState<DependencyState&ExportedState>;\n"
2756 verifyFormat("let letVariable = 5;\n"
2760 verifyFormat("let letVariable = 5;\n"
2764 verifyFormat("let letVariable = 5;\n"
2768 verifyFormat("let letVariable = 5;\n"
2772 verifyFormat("let letVariable = 5;\n"
2776 verifyFormat("double letVariable = 5;\n"
2780 verifyFormat("const letVariable = 5;\n"
2784 verifyFormat("int letVariable = 5;\n"
2793 verifyFormat("let letVariable = 5;\n"
2797 verifyFormat("let letVariable = 5;\n"
2801 verifyFormat("let letVariable = 5;\n"
2805 verifyFormat("let letVariable = 5;\n"
2809 verifyFormat("let letVariable = 5;\n"
2813 verifyFormat("double letVariable = 5;\n"
2817 verifyFormat("const letVariable = 5;\n"
2821 verifyFormat("int letVariable = 5;\n"
2830 verifyFormat("let letVariable = 5;\n"
2834 verifyFormat("let letVariable = 5;\n"
2838 verifyFormat("let letVariable = 5;\n"
2842 verifyFormat("let letVariable = 5;\n"
2846 verifyFormat("let letVariable = 5;\n"
2850 verifyFormat("double letVariable = 5;\n"
2854 verifyFormat("const letVariable = 5;\n"
2858 verifyFormat("int letVariable = 5;\n"
2864 verifyFormat("export type Params = Config&{\n"
2865 " columns: Column[];\n"
2872 verifyFormat("ctrl.onCopy(/** @type {!WizEvent}*/ (\n"
2875 verifyFormat("failedUserIds.push(...subscriptioxxxxxxxxxxxxnSubset.map(\n"
2878 verifyFormat("failedUserIds.push(!subscriptioxxxxxxxxxxxxnSubset.map(\n"
2881 verifyFormat("failedUserIds.push(await subscriptioxxxxxxxxxxxxnSubset.map(\n"
2884 verifyFormat("for await (const packageId of ops.api.iterateEmbeddedFiles(\n"
2885 " this.getFileId().getDriveFile(),\n"
2886 " )) {\n"