CodeMirror.defineMode("changes", function (config, modeConfig) {
  var headerSeperator = /^-+$/;
  var headerLine =
    /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /;
  var simpleEmail = /^[\w+.-]+@[\w.-]+/;

  return {
    token: function (stream) {
      if (stream.sol()) {
        if (stream.match(headerSeperator)) {
          return "tag";
        }
        if (stream.match(headerLine)) {
          return "tag";
        }
      }
      if (stream.match(simpleEmail)) {
        return "string";
      }
      stream.next();
      return null;
    },
  };
});

CodeMirror.defineMIME("text/x-rpm-changes", "changes");
