{
    "__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",
            "data": {
                "text": "Hey!"
            },
            "expected": "(Hey!)",
            "template": "{{=<% %>=}}(<%text%>)",
            "desc": "The equals sign (used on both sides) should permit delimiter changes."
        },
        {
            "name": "Special Characters",
            "data": {
                "text": "It worked!"
            },
            "expected": "(It worked!)",
            "template": "({{=[ ]=}}[text])",
            "desc": "Characters with special meaning regexen should be valid delimiters."
        },
        {
            "name": "Sections",
            "data": {
                "section": true,
                "data": "I got interpolated."
            },
            "expected": "[\n  I got interpolated.\n  |data|\n\n  {{data}}\n  I got interpolated.\n]\n",
            "template": "[\n{{#section}}\n  {{data}}\n  |data|\n{{/section}}\n\n{{= | | =}}\n|#section|\n  {{data}}\n  |data|\n|/section|\n]\n",
            "desc": "Delimiters set outside sections should persist."
        },
        {
            "name": "Inverted Sections",
            "data": {
                "section": false,
                "data": "I got interpolated."
            },
            "expected": "[\n  I got interpolated.\n  |data|\n\n  {{data}}\n  I got interpolated.\n]\n",
            "template": "[\n{{^section}}\n  {{data}}\n  |data|\n{{/section}}\n\n{{= | | =}}\n|^section|\n  {{data}}\n  |data|\n|/section|\n]\n",
            "desc": "Delimiters set outside inverted sections should persist."
        },
        {
            "name": "Partial Inheritence",
            "data": {
                "value": "yes"
            },
            "expected": "[ .yes. ]\n[ .yes. ]\n",
            "template": "[ {{>include}} ]\n{{= | | =}}\n[ |>include| ]\n",
            "desc": "Delimiters set in a parent template should not affect a partial.",
            "partials": {
                "include": ".{{value}}."
            }
        },
        {
            "name": "Post-Partial Behavior",
            "data": {
                "value": "yes"
            },
            "expected": "[ .yes.  .yes. ]\n[ .yes.  .|value|. ]\n",
            "template": "[ {{>include}} ]\n[ .{{value}}.  .|value|. ]\n",
            "desc": "Delimiters set in a partial should not affect the parent template.",
            "partials": {
                "include": ".{{value}}. {{= | | =}} .|value|."
            }
        },
        {
            "name": "Surrounding Whitespace",
            "data": {},
            "expected": "|  |",
            "template": "| {{=@ @=}} |",
            "desc": "Surrounding whitespace should be left untouched."
        },
        {
            "name": "Outlying Whitespace (Inline)",
            "data": {},
            "expected": " | \n",
            "template": " | {{=@ @=}}\n",
            "desc": "Whitespace should be left untouched."
        },
        {
            "name": "Standalone Tag",
            "data": {},
            "expected": "Begin.\nEnd.\n",
            "template": "Begin.\n{{=@ @=}}\nEnd.\n",
            "desc": "Standalone lines should be removed from the template."
        },
        {
            "name": "Indented Standalone Tag",
            "data": {},
            "expected": "Begin.\nEnd.\n",
            "template": "Begin.\n  {{=@ @=}}\nEnd.\n",
            "desc": "Indented standalone lines should be removed from the template."
        },
        {
            "name": "Standalone Line Endings",
            "data": {},
            "expected": "|\r\n|",
            "template": "|\r\n{{= @ @ =}}\r\n|",
            "desc": "\"\\r\\n\" should be considered a newline for standalone tags."
        },
        {
            "name": "Standalone Without Previous Line",
            "data": {},
            "expected": "=",
            "template": "  {{=@ @=}}\n=",
            "desc": "Standalone tags should not require a newline to precede them."
        },
        {
            "name": "Standalone Without Newline",
            "data": {},
            "expected": "=\n",
            "template": "=\n  {{=@ @=}}",
            "desc": "Standalone tags should not require a newline to follow them."
        },
        {
            "name": "Pair with Padding",
            "data": {},
            "expected": "||",
            "template": "|{{= @   @ =}}|",
            "desc": "Superfluous in-tag whitespace should be ignored."
        }
    ]
}