code: function (node) {
  
      // Search first caller in chain.
      // Ex.:
      //
      // Models <- Identifier
      //   .User
      //   .find()
      //   .exec(function () {
      //   // function body
      // });
      //
      // Looks for 'Models'
      var calleeNode = node.parent; // FunctionExpression
      while (calleeNode.parent &&
             calleeNode.parent.type === 'CallExpression') {
        calleeNode = calleeNode.parent;
      }
  
      var indent;
  
      if (calleeNode.parent &&
          (calleeNode.parent.type === 'Property' ||
           calleeNode.parent.type === 'ArrayExpression')) {
        // If function is part of array or object, comma can be put at left
        indent = getNodeIndent(calleeNode, false, true);
      } else {
        // If function is standalone, simple calculate indent
        indent = getNodeIndent(calleeNode);
      }
  
      indent += indentSize;
      // If function content is not empty
      if (node.body.length > 0) {
        // Calculate left shift position don't require strict indent
        // allow function body allign to (indentSize * X)
        while (getNodeIndent(node.body[0]) > indent) {
          indent += indentSize;
        }
      }
  
      checkNodesIndent(node.body, indent);
  
      checkLastNodeLineIndent(node, indent - indentSize);
    }
docs: Check indent for function block content