function getFixerFunction(node, needed) {
      const indent = repeat(indentChar, needed);

      if (node.type === 'JSXText' || node.type === 'Literal') {
        return function fix(fixer) {
          const regExp = /\n[\t ]*(\S)/g;
          const fixedText = node.raw.replace(regExp, (match, p1) => `\n${indent}${p1}`);
          return fixer.replaceText(node, fixedText);
        };
      }

      if (node.type === 'ReturnStatement') {
        const raw = getText(context, node);
        const lines = raw.split('\n');
        if (lines.length > 1) {
          return function fix(fixer) {
            const lastLineStart = raw.lastIndexOf('\n');
            const lastLine = raw.slice(lastLineStart).replace(/^\n[\t ]*(\S)/, (match, p1) => `\n${indent}${p1}`);
            return fixer.replaceTextRange(
              [node.range[0] + lastLineStart, node.range[1]],
              lastLine
            );
          };
        }
      }

      return function fix(fixer) {
        return fixer.replaceTextRange(
          [node.range[0] - node.loc.start.column, node.range[0]],
          indent
        );
      };
    }
Responsible for fixing the indentation issue fix
@param {ASTNode} node Node violating the indent rule
@param {number} needed Expected indentation character count
@returns {Function} function to be executed by the fixer
@private