overview: |
  Set Delimiter tags are used to change the tag delimiters for all content
  following the tag in the current compilation unit.

  The tag's content MUST be any two non-whitespace sequences (separated by
  whitespace) EXCEPT an equals sign ('=') followed by the current closing
  delimiter.

  Set Delimiter tags SHOULD be treated as standalone when appropriate.
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: |
      [
      {{#section}}
        {{data}}
        |data|
      {{/section}}

      {{= | | =}}
      |#section|
        {{data}}
        |data|
      |/section|
      ]
    expected: |
      [
        I got interpolated.
        |data|

        {{data}}
        I got interpolated.
      ]

  - name: Inverted Sections
    desc: Delimiters set outside inverted sections should persist.
    data: { section: false, data: 'I got interpolated.' }
    template: |
      [
      {{^section}}
        {{data}}
        |data|
      {{/section}}

      {{= | | =}}
      |^section|
        {{data}}
        |data|
      |/section|
      ]
    expected: |
      [
        I got interpolated.
        |data|

        {{data}}
        I got interpolated.
      ]

  - name: Partial Inheritence
    desc: Delimiters set in a parent template should not affect a partial.
    data: { value: 'yes' }
    partials:
      include: '.{{value}}.'
    template: |
      [ {{>include}} ]
      {{= | | =}}
      [ |>include| ]
    expected: |
      [ .yes. ]
      [ .yes. ]

  - 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}} ]
      [ .{{value}}.  .|value|. ]
    expected: |
      [ .yes.  .yes. ]
      [ .yes.  .|value|. ]

  # Whitespace Sensitivity

  - 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.
      {{=@ @=}}
      End.
    expected: |
      Begin.
      End.

  - name: Indented Standalone Tag
    desc: Indented standalone lines should be removed from the template.
    data: { }
    template: |
      Begin.
        {{=@ @=}}
      End.
    expected: |
      Begin.
      End.

  - 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"

  # Whitespace Insensitivity

  - name: Pair with Padding
    desc: Superfluous in-tag whitespace should be ignored.
    data: { }
    template: '|{{= @   @ =}}|'
    expected: '||'
