{"version":3,"file":"tiddlywiki-C-W_icqq.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/tiddlywiki.js"],"sourcesContent":["// Tokenizer\nvar textwords = {};\n\nvar keywords = {\n  \"allTags\": true, \"closeAll\": true, \"list\": true,\n  \"newJournal\": true, \"newTiddler\": true,\n  \"permaview\": true, \"saveChanges\": true,\n  \"search\": true, \"slider\": true, \"tabs\": true,\n  \"tag\": true, \"tagging\": true, \"tags\": true,\n  \"tiddler\": true, \"timeline\": true,\n  \"today\": true, \"version\": true, \"option\": true,\n  \"with\": true, \"filter\": true\n};\n\nvar isSpaceName = /[\\w_\\-]/i,\n    reHR = /^\\-\\-\\-\\-+$/,                                 // <hr>\n    reWikiCommentStart = /^\\/\\*\\*\\*$/,            // /***\n    reWikiCommentStop = /^\\*\\*\\*\\/$/,             // ***/\n    reBlockQuote = /^<<<$/,\n\n    reJsCodeStart = /^\\/\\/\\{\\{\\{$/,                       // //{{{ js block start\n    reJsCodeStop = /^\\/\\/\\}\\}\\}$/,                        // //}}} js stop\n    reXmlCodeStart = /^<!--\\{\\{\\{-->$/,           // xml block start\n    reXmlCodeStop = /^<!--\\}\\}\\}-->$/,            // xml stop\n\n    reCodeBlockStart = /^\\{\\{\\{$/,                        // {{{ TW text div block start\n    reCodeBlockStop = /^\\}\\}\\}$/,                 // }}} TW text stop\n\n    reUntilCodeStop = /.*?\\}\\}\\}/;\n\nfunction chain(stream, state, f) {\n  state.tokenize = f;\n  return f(stream, state);\n}\n\nfunction tokenBase(stream, state) {\n  var sol = stream.sol(), ch = stream.peek();\n\n  state.block = false;        // indicates the start of a code block.\n\n  // check start of  blocks\n  if (sol && /[<\\/\\*{}\\-]/.test(ch)) {\n    if (stream.match(reCodeBlockStart)) {\n      state.block = true;\n      return chain(stream, state, twTokenCode);\n    }\n    if (stream.match(reBlockQuote))\n      return 'quote';\n    if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop))\n      return 'comment';\n    if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop))\n      return 'comment';\n    if (stream.match(reHR))\n      return 'contentSeparator';\n  }\n\n  stream.next();\n  if (sol && /[\\/\\*!#;:>|]/.test(ch)) {\n    if (ch == \"!\") { // tw header\n      stream.skipToEnd();\n      return \"header\";\n    }\n    if (ch == \"*\") { // tw list\n      stream.eatWhile('*');\n      return \"comment\";\n    }\n    if (ch == \"#\") { // tw numbered list\n      stream.eatWhile('#');\n      return \"comment\";\n    }\n    if (ch == \";\") { // definition list, term\n      stream.eatWhile(';');\n      return \"comment\";\n    }\n    if (ch == \":\") { // definition list, description\n      stream.eatWhile(':');\n      return \"comment\";\n    }\n    if (ch == \">\") { // single line quote\n      stream.eatWhile(\">\");\n      return \"quote\";\n    }\n    if (ch == '|')\n      return 'header';\n  }\n\n  if (ch == '{' && stream.match('{{'))\n    return chain(stream, state, twTokenCode);\n\n  // rudimentary html:// file:// link matching. TW knows much more ...\n  if (/[hf]/i.test(ch) &&\n      /[ti]/i.test(stream.peek()) &&\n      stream.match(/\\b(ttps?|tp|ile):\\/\\/[\\-A-Z0-9+&@#\\/%?=~_|$!:,.;]*[A-Z0-9+&@#\\/%=~_|$]/i))\n    return \"link\";\n\n  // just a little string indicator, don't want to have the whole string covered\n  if (ch == '\"')\n    return 'string';\n\n  if (ch == '~')    // _no_ CamelCase indicator should be bold\n    return 'brace';\n\n  if (/[\\[\\]]/.test(ch) && stream.match(ch)) // check for [[..]]\n    return 'brace';\n\n  if (ch == \"@\") {    // check for space link. TODO fix @@...@@ highlighting\n    stream.eatWhile(isSpaceName);\n    return \"link\";\n  }\n\n  if (/\\d/.test(ch)) {        // numbers\n    stream.eatWhile(/\\d/);\n    return \"number\";\n  }\n\n  if (ch == \"/\") { // tw invisible comment\n    if (stream.eat(\"%\")) {\n      return chain(stream, state, twTokenComment);\n    } else if (stream.eat(\"/\")) { //\n      return chain(stream, state, twTokenEm);\n    }\n  }\n\n  if (ch == \"_\" && stream.eat(\"_\")) // tw underline\n    return chain(stream, state, twTokenUnderline);\n\n  // strikethrough and mdash handling\n  if (ch == \"-\" && stream.eat(\"-\")) {\n    // if strikethrough looks ugly, change CSS.\n    if (stream.peek() != ' ')\n      return chain(stream, state, twTokenStrike);\n    // mdash\n    if (stream.peek() == ' ')\n      return 'brace';\n  }\n\n  if (ch == \"'\" && stream.eat(\"'\")) // tw bold\n    return chain(stream, state, twTokenStrong);\n\n  if (ch == \"<\" && stream.eat(\"<\")) // tw macro\n    return chain(stream, state, twTokenMacro);\n\n  // core macro handling\n  stream.eatWhile(/[\\w\\$_]/);\n  return textwords.propertyIsEnumerable(stream.current()) ? \"keyword\" : null\n}\n\n// tw invisible comment\nfunction twTokenComment(stream, state) {\n  var maybeEnd = false, ch;\n  while (ch = stream.next()) {\n    if (ch == \"/\" && maybeEnd) {\n      state.tokenize = tokenBase;\n      break;\n    }\n    maybeEnd = (ch == \"%\");\n  }\n  return \"comment\";\n}\n\n// tw strong / bold\nfunction twTokenStrong(stream, state) {\n  var maybeEnd = false,\n      ch;\n  while (ch = stream.next()) {\n    if (ch == \"'\" && maybeEnd) {\n      state.tokenize = tokenBase;\n      break;\n    }\n    maybeEnd = (ch == \"'\");\n  }\n  return \"strong\";\n}\n\n// tw code\nfunction twTokenCode(stream, state) {\n  var sb = state.block;\n\n  if (sb && stream.current()) {\n    return \"comment\";\n  }\n\n  if (!sb && stream.match(reUntilCodeStop)) {\n    state.tokenize = tokenBase;\n    return \"comment\";\n  }\n\n  if (sb && stream.sol() && stream.match(reCodeBlockStop)) {\n    state.tokenize = tokenBase;\n    return \"comment\";\n  }\n\n  stream.next();\n  return \"comment\";\n}\n\n// tw em / italic\nfunction twTokenEm(stream, state) {\n  var maybeEnd = false,\n      ch;\n  while (ch = stream.next()) {\n    if (ch == \"/\" && maybeEnd) {\n      state.tokenize = tokenBase;\n      break;\n    }\n    maybeEnd = (ch == \"/\");\n  }\n  return \"emphasis\";\n}\n\n// tw underlined text\nfunction twTokenUnderline(stream, state) {\n  var maybeEnd = false,\n      ch;\n  while (ch = stream.next()) {\n    if (ch == \"_\" && maybeEnd) {\n      state.tokenize = tokenBase;\n      break;\n    }\n    maybeEnd = (ch == \"_\");\n  }\n  return \"link\";\n}\n\n// tw strike through text looks ugly\n// change CSS if needed\nfunction twTokenStrike(stream, state) {\n  var maybeEnd = false, ch;\n\n  while (ch = stream.next()) {\n    if (ch == \"-\" && maybeEnd) {\n      state.tokenize = tokenBase;\n      break;\n    }\n    maybeEnd = (ch == \"-\");\n  }\n  return \"deleted\";\n}\n\n// macro\nfunction twTokenMacro(stream, state) {\n  if (stream.current() == '<<') {\n    return 'meta';\n  }\n\n  var ch = stream.next();\n  if (!ch) {\n    state.tokenize = tokenBase;\n    return null;\n  }\n  if (ch == \">\") {\n    if (stream.peek() == '>') {\n      stream.next();\n      state.tokenize = tokenBase;\n      return \"meta\";\n    }\n  }\n\n  stream.eatWhile(/[\\w\\$_]/);\n  return keywords.propertyIsEnumerable(stream.current()) ? \"keyword\" : null\n}\n\n// Interface\nexport const tiddlyWiki = {\n  name: \"tiddlywiki\",\n\n  startState: function () {\n    return {tokenize: tokenBase};\n  },\n\n  token: function (stream, state) {\n    if (stream.eatSpace()) return null;\n    var style = state.tokenize(stream, state);\n    return style;\n  }\n};\n\n"],"names":["textwords","keywords","allTags","closeAll","list","newJournal","newTiddler","permaview","saveChanges","search","slider","tabs","tag","tagging","tags","tiddler","timeline","today","version","option","with","filter","isSpaceName","reHR","reWikiCommentStart","reWikiCommentStop","reBlockQuote","reJsCodeStart","reJsCodeStop","reXmlCodeStart","reXmlCodeStop","reCodeBlockStart","reCodeBlockStop","reUntilCodeStop","chain","stream","state","f","tokenize","tokenBase","sol","ch","peek","block","test","match","twTokenCode","next","skipToEnd","eatWhile","eat","twTokenComment","twTokenEm","twTokenUnderline","twTokenStrike","twTokenStrong","twTokenMacro","propertyIsEnumerable","current","maybeEnd","sb","tiddlyWiki","name","startState","token","eatSpace"],"mappings":"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","x_google_ignoreList":[0]}