| 40 columns | |
| >>> Separate statements in cases. |
| switch (foo) {case 0:a();b();c();} |
| <<< |
| switch (foo) { |
| case 0: |
| a(); |
| b(); |
| c(); |
| } |
| >>> Allow a blank line between case statements. |
| switch (foo) {case 0: |
| a(); |
| |
| b(); |
| c(); |
| } |
| <<< |
| switch (foo) { |
| case 0: |
| a(); |
| |
| b(); |
| c(); |
| } |
| >>> Collapse other newlines in cases. |
| switch (foo) {case 0: |
| |
| |
| a(); |
| |
| |
| |
| b(); |
| |
| |
| |
| c(); |
| |
| |
| } |
| <<< |
| switch (foo) { |
| case 0: |
| a(); |
| |
| b(); |
| |
| c(); |
| } |
| >>> Remove newlines between empty cases. |
| switch (foo) { |
| case 1: |
| |
| |
| case 2: |
| |
| case 3: |
| |
| body; |
| |
| case 4: |
| |
| |
| default: |
| |
| |
| body; |
| } |
| <<< |
| switch (foo) { |
| case 1: |
| case 2: |
| case 3: |
| body; |
| |
| case 4: |
| default: |
| body; |
| } |
| >>> Separate statements in the default clause. |
| switch (foo) {default:a();b();c();} |
| <<< |
| switch (foo) { |
| default: |
| a(); |
| b(); |
| c(); |
| } |
| >>> Allow a blank line between statements in the default clause. |
| switch (foo) {default: |
| a(); |
| |
| b(); |
| c(); |
| } |
| <<< |
| switch (foo) { |
| default: |
| a(); |
| |
| b(); |
| c(); |
| } |
| >>> Collapse other newlines in the default clause. |
| switch (foo) {default: |
| |
| |
| a(); |
| |
| |
| |
| b(); |
| |
| |
| |
| c(); |
| |
| |
| } |
| <<< |
| switch (foo) { |
| default: |
| a(); |
| |
| b(); |
| |
| c(); |
| } |
| >>> Put cases on their own lines. |
| switch (foo) {case 0:case 1:case 2:body();} |
| <<< |
| switch (foo) { |
| case 0: |
| case 1: |
| case 2: |
| body(); |
| } |
| >>> Allow a blank line between non-empty cases. |
| switch (foo) {case 0: body(); |
| |
| case 1: |
| case 2:body(); |
| } |
| <<< |
| switch (foo) { |
| case 0: |
| body(); |
| |
| case 1: |
| case 2: |
| body(); |
| } |
| >>> Collapse other newlines between cases. |
| switch (foo) { |
| |
| |
| case 0: |
| |
| |
| case 1: |
| |
| |
| case 2: |
| |
| |
| body(); |
| |
| |
| |
| } |
| <<< |
| switch (foo) { |
| case 0: |
| case 1: |
| case 2: |
| body(); |
| } |
| >>> Single-statement cases split even when they could fit on one line. |
| switch (obj) { |
| case 1: a(); |
| case 2: b(); |
| default: c(); |
| } |
| <<< |
| switch (obj) { |
| case 1: |
| a(); |
| case 2: |
| b(); |
| default: |
| c(); |
| } |
| >>> Multiple statement cases split even when they could fit on one line. |
| switch (obj) { |
| case 1: a(); b(); |
| case 2: c(); d(); |
| default: d(); e(); |
| } |
| <<< |
| switch (obj) { |
| case 1: |
| a(); |
| b(); |
| case 2: |
| c(); |
| d(); |
| default: |
| d(); |
| e(); |
| } |
| >>> Indentation. |
| switch (fruit) { |
| case "apple": |
| print("delish"); |
| break; |
| case "fig": |
| print("bleh"); |
| break; |
| } |
| <<< |
| switch (fruit) { |
| case "apple": |
| print("delish"); |
| break; |
| case "fig": |
| print("bleh"); |
| break; |
| } |
| >>> Labeled cases. |
| switch (fruit) { |
| case "apple": |
| print("delish"); |
| break; |
| label:case "fig": |
| print("bleh"); |
| break; |
| other:default: |
| break; |
| } |
| <<< |
| switch (fruit) { |
| case "apple": |
| print("delish"); |
| break; |
| label: |
| case "fig": |
| print("bleh"); |
| break; |
| other: |
| default: |
| break; |
| } |
| >>> Don't split at parentheses. |
| switch ("a long string that must wrap") { |
| case 0: |
| return "ok"; |
| } |
| <<< |
| switch ("a long string that must wrap") { |
| case 0: |
| return "ok"; |
| } |
| >>> Split a delimited expression in the switch expression. |
| switch ([veryLongElement,veryLongElement]) { |
| case 0: |
| return "ok"; |
| } |
| <<< |
| switch ([ |
| veryLongElement, |
| veryLongElement, |
| ]) { |
| case 0: |
| return "ok"; |
| } |
| >>> Block split in pattern. |
| switch (obj) { |
| case [veryLongElement,veryLongElement,veryLongElement,]: body; |
| } |
| <<< |
| switch (obj) { |
| case [ |
| veryLongElement, |
| veryLongElement, |
| veryLongElement, |
| ]: |
| body; |
| } |
| >>> Infix `||` pattern as outermost. |
| ### Switch expressions have some special formatting rules so here we just |
| ### validate that those rules don't inadvertently affect switch statements too. |
| switch (obj) { |
| case oneConstant || twoConstant || threeConstant: body; |
| } |
| <<< |
| switch (obj) { |
| case oneConstant || |
| twoConstant || |
| threeConstant: |
| body; |
| } |