(function()()

in kitsune/sumo/static/sumo/js/codemirror.sumo-mode.js [3:176]


(function() {
  'use strict';

  CodeMirror.defineSimpleMode('sumo', {
    start: [
      {
        token: 'variable.language',
        regex: '__TOC__'
      },
      {
        token: ['variable.language', 'meta.tag.name'],
        regex: /(\{)(for)/,
        next: 'fx_version_os_version'
      },
      {
        token: ['variable.language', 'meta.tag.name'],
        regex: /(\{)(note|warning)/,
        next: 'close_tag'
      },
      {
        token: 'variable.language',
        regex: /\{\/(for|note|warning)\}/
      },
      {
        token: 'meta.tag',
        regex: /<\/?br>/
      },
      {
        token: ['variable.language', 'meta.tag', 'markup.italic', 'variable.language'],
        regex: /(\{)(filepath|key|menu|button|pref)(.*?)(\})/
      },
      {
        token: ['markup.other.link', 'markup.other.link', 'markup.other.link', 'markup.other.link'],
        regex: /(\[{2})([^\]]*?)(\|.*?)(\]{2})/
      },
      {
        token: ['markup.other.link', 'markup.other.link', 'markup.other.link', 'markup.other.link'],
        regex: /(\[{2})(\S*:)(.*?)(\]{2})/
      },
      {
        token: ['markup.other.link', 'markup.other.link', 'markup.other.link'],
        regex: /(\[{2})(.*?)(\]{2})/
      },
      {
        token: ['markup.other.link', 'markup.other.link', 'markup.other.link', 'markup.other.link'],
        regex: /(\[)(\S*)(.*?)(\])/
      },
      {
        token: ['variable.language', 'markup.bold', 'variable.language'],
        regex: /(''')(.*?)(''')/
      },
      {
        token: ['variable.language', 'markup.italic', 'variable.language'],
        regex: /('')(.*?)('')/
      },
      {
        token: ['variable.language', 'markup.underline', 'variable.language'],
        regex: /(<u>)(.*?)(<\/u>)/
      },
      {
        token: ['variable.language', 'markup.strikethrough', 'variable.language'],
        regex: /(<s>)(.*?)(<\/s>)/
      },
      {
        token: ['variable.language', 'markup.strikethrough', 'variable.language'],
        regex: /(<del>)(.*?)(<\/del>)/
      },
      {
        token: 'variable.language',
        regex: /<nowiki>/,
        next: 'nowiki'
      },
      {
        token: 'variable.language',
        regex: /<code>/,
        next: 'code'
      },
      {
        token: 'variable.language',
        regex: /<pre>/,
        next: 'pre'
      },
      {
        token: 'markup.quote',
        regex: /^\s+.*/,
        sol: true
      },
      {
        token: ['markup.bold', 'markup.bold', 'markup.bold'],
        regex: /^(={1,6})(.*?)(\1)$/,
        sol: true
      },
      {
        token: 'variable.language',
        regex: /^[\-]{4}/,
        sol: true
      },
      {
        token: 'variable.language',
        regex: /^[;:#\*]+/,
        sol: true
      },
      {
        token: 'variable.language',
        regex: /^\{?[\|!][+\-]?\}?/,
        sol: true
      },
      {
        token: 'comment',
        merge: true,
        regex: '<\\!--',
        next: 'comment'
      }
    ],
    comment: [
      {
        token: 'comment',
        regex: '.*?-->',
        next: 'start'
      }, {
        token: 'comment',
        merge: true,
        regex: '.+'
      }
    ],
    nowiki: [
      {
        token: 'variable.language',
        regex: /<\/nowiki>/,
        next: 'start'
      },
      {
        token: 'comment',
        regex: /./
      }
    ],
    code: [
      {
        token: 'variable.language',
        regex: /<\/code>/,
        next: 'start'
      },
      {
        token: 'comment',
        regex: /./
      }
    ],
    pre: [
      {
        token: 'variable.language',
        regex: /<\/pre>/,
        next: 'start'
      },
      {
        token: 'comment',
        regex: /./
      }
    ],
    space: [
      {
        token: 'text',
        regex: '\\s+'
      }
    ],
    fx_version_os_version: [
      {
        token: ['markup.italic'],
        regex: /((?:,\s?)?(?:not\s)?(?:(?:win(?:xp|7|8)?|mac|linux|android|maemo)|=?(?:fx|tb|m)\d*))+/,
        next: 'close_tag'
      },
      {
        token: 'variable.language',
        regex: /\{\/for\}/
      }