message: implement group links in matrixLinkify:MATRIXTO. Simplify if/else w/ map
diff: @@ -169,11 +169,18 @@ matrixLinkify.VECTOR_URL_PATTERN = "^(?:https?:\/\/)?(?:"
  + "(?:www\\.)?(?:riot|vector)\\.im/(?:app|beta|staging|develop)/"
  + ")(#.*)";
  -matrixLinkify.MATRIXTO_URL_PATTERN = "^(?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/((#|@|!).*)";
  +matrixLinkify.MATRIXTO_URL_PATTERN = "^(?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/([#@!+].*)";
  matrixLinkify.MATRIXTO_MD_LINK_PATTERN =
  - '\\[([^\\]]*)\\]\\((?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/((#|@|!)[^\\)]*)\\)';
  + '\\[([^\\]]*)\\]\\((?:https?:\/\/)?(?:www\\.)?matrix\\.to/#/([#@!+][^\\)]*)\\)';
  matrixLinkify.MATRIXTO_BASE_URL= baseUrl;
  +const matrixToEntityMap = {
  + '@': '#/user/',
  + '#': '#/room/',
  + '!': '#/room/',
  + '+': '#/group/',
  +};
  +
  matrixLinkify.options = {
  events: function(href, type) {
  switch (type) {
  @@ -204,25 +211,21 @@ matrixLinkify.options = {
  case 'userid':
  case 'groupid':
  return matrixLinkify.MATRIXTO_BASE_URL + '/#/' + href;
  - default:
  - var m;
  + default: {
  // FIXME: horrible duplication with HtmlUtils' transform tags
  - m = href.match(matrixLinkify.VECTOR_URL_PATTERN);
  + let m = href.match(matrixLinkify.VECTOR_URL_PATTERN);
  if (m) {
  return m[1];
  }
  m = href.match(matrixLinkify.MATRIXTO_URL_PATTERN);
  if (m) {
  const entity = m[1];
  - if (entity[0] === '@') {
  - return '#/user/' + entity;
  - } else if (entity[0] === '#' || entity[0] === '!') {
  - return '#/room/' + entity;
  - }
  + if (matrixToEntityMap[entity[0]]) return matrixToEntityMap[entity[0]] + entity;
  }
  return href;
  }
  + }
  },
  linkAttributes: {
  