3 var _ws = require('rocambole-whitespace');
4 var _br = require('rocambole-linebreak');
5 var _tk = require('rocambole-token');
6 var limit = require('../limit');
9 exports.format = function SwitchCase(node) {
11 // we want case to always be on the same line!
12 _br.limitBefore(node.test.startToken, 0);
13 _ws.limitBefore(node.test.startToken, 1);
15 var endToken = node.endToken;
16 if (endToken.value !== ':') {
17 // endToken might be ":" or "break" or ";"
18 var breakKeyword = _tk.findPrev(endToken.next, 'break');
20 limit.before(breakKeyword, 'BreakKeyword');
21 limit.after(endToken, 'BreakKeyword');
27 exports.getIndentEdges = function(node) {
29 startToken: node.startToken,
30 // we need to get the next token because `default` might end with a `}`
31 // (ie. IfStatement) we also need to search for next `case` or `}` or
32 // `break` or `default` to make sure comments are included inside the range
33 endToken: _tk.findNext(node.endToken, ['}', 'case', 'break', 'default']).prev