code: function report(token, neededIndentLevel) {
              const actualIndent = Array.from(tokenInfo.getTokenIndent(token));
              const numSpaces = actualIndent.filter(char => char === " ").length;
              const numTabs = actualIndent.filter(char => char === "\t").length;
              const neededChars = neededIndentLevel * indentSize;
  
              context.report({
                  node: token,
                  message: createErrorMessage(neededChars, numSpaces, numTabs),
                  loc: {
                      start: { line: token.loc.start.line, column: 0 },
                      end: { line: token.loc.start.line, column: token.loc.start.column }
                  },
                  fix(fixer) {
                      const range = [token.range[0] - token.loc.start.column, token.range[0]];
                      const newText = (indentType === "space" ? " " : "\t").repeat(neededChars);
  
                      return fixer.replaceTextRange(range, newText);
                  }
              });
          }
docs: Reports a given indent violation
  @param {Token} token Token violating the indent rule
  @param {int} neededIndentLevel Expected indentation level
  @param {int} gottenSpaces Actual number of indentation spaces for the token
  @param {int} gottenTabs Actual number of indentation tabs for the token
  @returns {void}