{
  "__ATTN__": "Do not edit this file; changes belong in the appropriate YAML file.",
  "overview": "Set Delimiter tags are used to change the tag delimiters for all content\nfollowing the tag in the current compilation unit.\n\nThe tag's content MUST be any two non-whitespace sequences (separated by\nwhitespace) EXCEPT an equals sign ('=') followed by the current closing\ndelimiter.\n\nSet Delimiter tags SHOULD be treated as standalone when appropriate.\n",
  "tests": [
    {
      "name": "Pair Behavior",
      "desc": "The equals sign (used on both sides) should permit delimiter changes.",
      "data": {
        "text": "Hey!"
      },
      "template": "{{=<% %>=}}(<%text%>)",
      "expected": "(Hey!)"
    },
    {
      "name": "Special Characters",
      "desc": "Characters with special meaning regexen should be valid delimiters.",
      "data": {
        "text": "It worked!"
      },
      "template": "({{=[ ]=}}[text])",
      "expected": "(It worked!)"
    },
    {
      "name": "Sections",
      "desc": "Delimiters set outside sections should persist.",
      "data": {
        "section": true,
        "data": "I got interpolated."
      },
      "template": "[\n{{#section}}\n  {{data}}\n  |data|\n{{/section}}\n\n{{= | | =}}\n|#section|\n  {{data}}\n  |data|\n|/section|\n]\n",
      "expected": "[\n  I got interpolated.\n  |data|\n\n  {{data}}\n  I got interpolated.\n]\n"
    },
    {
      "name": "Inverted Sections",
      "desc": "Delimiters set outside inverted sections should persist.",
      "data": {
        "section": false,
        "data": "I got interpolated."
      },
      "template": "[\n{{^section}}\n  {{data}}\n  |data|\n{{/section}}\n\n{{= | | =}}\n|^section|\n  {{data}}\n  |data|\n|/section|\n]\n",
      "expected": "[\n  I got interpolated.\n  |data|\n\n  {{data}}\n  I got interpolated.\n]\n"
    },
    {
      "name": "Partial Inheritence",
      "desc": "Delimiters set in a parent template should not affect a partial.",
      "data": {
        "value": "yes"
      },
      "partials": {
        "include": ".{{value}}."
      },
      "template": "[ {{>include}} ]\n{{= | | =}}\n[ |>include| ]\n",
      "expected": "[ .yes. ]\n[ .yes. ]\n"
    },
    {
      "name": "Post-Partial Behavior",
      "desc": "Delimiters set in a partial should not affect the parent template.",
      "data": {
        "value": "yes"
      },
      "partials": {
        "include": ".{{value}}. {{= | | =}} .|value|."
      },
      "template": "[ {{>include}} ]\n[ .{{value}}.  .|value|. ]\n",
      "expected": "[ .yes.  .yes. ]\n[ .yes.  .|value|. ]\n"
    },
    {
      "name": "Surrounding Whitespace",
      "desc": "Surrounding whitespace should be left untouched.",
      "data": {
      },
      "template": "| {{=@ @=}} |",
      "expected": "|  |"
    },
    {
      "name": "Outlying Whitespace (Inline)",
      "desc": "Whitespace should be left untouched.",
      "data": {
      },
      "template": " | {{=@ @=}}\n",
      "expected": " | \n"
    },
    {
      "name": "Standalone Tag",
      "desc": "Standalone lines should be removed from the template.",
      "data": {
      },
      "template": "Begin.\n{{=@ @=}}\nEnd.\n",
      "expected": "Begin.\nEnd.\n"
    },
    {
      "name": "Indented Standalone Tag",
      "desc": "Indented standalone lines should be removed from the template.",
      "data": {
      },
      "template": "Begin.\n  {{=@ @=}}\nEnd.\n",
      "expected": "Begin.\nEnd.\n"
    },
    {
      "name": "Standalone Line Endings",
      "desc": "\"\\r\\n\" should be considered a newline for standalone tags.",
      "data": {
      },
      "template": "|\r\n{{= @ @ =}}\r\n|",
      "expected": "|\r\n|"
    },
    {
      "name": "Standalone Without Previous Line",
      "desc": "Standalone tags should not require a newline to precede them.",
      "data": {
      },
      "template": "  {{=@ @=}}\n=",
      "expected": "="
    },
    {
      "name": "Standalone Without Newline",
      "desc": "Standalone tags should not require a newline to follow them.",
      "data": {
      },
      "template": "=\n  {{=@ @=}}",
      "expected": "=\n"
    },
    {
      "name": "Pair with Padding",
      "desc": "Superfluous in-tag whitespace should be ignored.",
      "data": {
      },
      "template": "|{{= @   @ =}}|",
      "expected": "||"
    }
  ]
}