diff --git a/lib/hooks/SwitchCase.js b/lib/hooks/SwitchCase.js index d12e22a..9230e8f 100644 --- a/lib/hooks/SwitchCase.js +++ b/lib/hooks/SwitchCase.js @@ -14,16 +14,15 @@ exports.format = function SwitchCase(node) { } var endToken = node.endToken; - if (endToken.value === ':') { - limit.before(endToken, 'SwitchCaseColon'); - limit.after(endToken, 'SwitchCaseColon'); - } else { - // endToken might be ":" or "break" or ";" - var breakKeyword = _tk.findPrev(endToken.next, 'break'); - if (breakKeyword) { - limit.before(breakKeyword, 'BreakKeyword'); - limit.after(endToken, 'BreakKeyword'); - } + var colon = _tk.findNext(node.startToken, ':'); + limit.before(colon, 'SwitchCaseColon'); + limit.after(colon, 'SwitchCaseColon'); + + // endToken might be ":" or "break" or ";" + var breakKeyword = _tk.findInBetweenFromEnd(node.startToken, endToken.next, 'break'); + if (breakKeyword) { + limit.before(breakKeyword, 'BreakKeyword'); + limit.after(endToken, 'BreakKeyword'); } }; diff --git a/lib/preset/default.json b/lib/preset/default.json index a6437a4..0996763 100644 --- a/lib/preset/default.json +++ b/lib/preset/default.json @@ -130,6 +130,7 @@ "ReturnStatement" : -1, "SwitchOpeningBrace" : 0, "SwitchClosingBrace" : ">=1", + "SwitchCaseColon": 0, "ThisExpression" : -1, "ThrowStatement" : ">=1", "TryKeyword": -1, diff --git a/test/compare/custom/switch_statement-in.js b/test/compare/custom/switch_statement-in.js index 9cb97f8..2ab26fc 100644 --- a/test/compare/custom/switch_statement-in.js +++ b/test/compare/custom/switch_statement-in.js @@ -11,6 +11,18 @@ switch ( event.keyCode ) { x(); } +switch ( event.keyCode ) { + case $.ui.keyCode.ENTER : + whatever = 'nothing'; + break + case $.ui.keyCode.ESCAPE + : + whatever = 'something'; + break; + default: + x(); +} + call(function(){ switch (fruit) { case Fruit.APPLE: diff --git a/test/compare/custom/switch_statement-out.js b/test/compare/custom/switch_statement-out.js index eab66a2..39dca13 100644 --- a/test/compare/custom/switch_statement-out.js +++ b/test/compare/custom/switch_statement-out.js @@ -15,6 +15,20 @@ default: x(); } +switch ( event.keyCode ) +{ +case $.ui.keyCode.ENTER: + whatever = 'nothing'; + break + +case $.ui.keyCode.ESCAPE: + whatever = 'something'; + break; + +default: + x(); +} + call(function() { switch ( fruit ) {