89a8b9a77bcf8de0007c716eda64e5ee3d013930
[platform/framework/web/crosswalk-tizen.git] /
1 "use strict";
2
3 var _tk = require('rocambole-token');
4 var _ws = require('rocambole-whitespace');
5
6
7 exports.format = function MemberExpression(node) {
8   var opening = _tk.findPrevNonEmpty(node.property.startToken),
9     closing = _tk.findNextNonEmpty(node.property.endToken);
10   if (opening && closing && opening.value === '[' && closing.value === ']') {
11     _ws.limitAfter(opening, "MemberExpressionOpening");
12     _ws.limitBefore(closing, "MemberExpressionClosing");
13   }
14 };
15
16
17 exports.getIndentEdges = function(node) {
18   var edge = {};
19   edge.startToken = node.object.endToken;
20
21   if (node.object.type !== 'CallExpression') {
22     edge.startToken = edge.startToken.next;
23   }
24
25   edge.endToken = node.endToken;
26   if (node.parent.type === 'CallExpression' &&
27     node.parent.callee.type === 'MemberExpression') {
28     edge.endToken = node.parent.endToken;
29   }
30
31   // only indent if on a different line
32   if (!_tk.findInBetween(edge.startToken, node.property.startToken, _tk.isBr)) {
33     return false;
34   }
35
36   return edge;
37 };
38