Uploaded image for project: 'Velocity'
  1. Velocity
  2. VELOCITY-253

Enhance whitespace gobbling

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Closed
    • Major
    • Resolution: Implemented
    • 1.0-Release
    • 2.0
    • Engine
    • None
    • Operating System: other
      Platform: Other
    • 27413

    Description

      I expect that when adding velocity markup to an existing text file
      to not affect the spacing in the output. This includes indented #foreach
      directives and inner indented #if/#set/#macro directives.

      So the rule I proposed was to allow adding velocity markup, one per line,
      and still have the same output - e.g. add an #if statement around
      existing text to conditionally mask it out. Or add an #foreach around
      a table row and be able to repeat the body with dynamic data, etc.

      As sonn as a directive is placed wihtin other text in the same line,
      any whitespace around it should remain untouched.

      If a line is looks like this:
      DirectiveLine ::= LineEnd TabsAndSpaces? Directive TabsAndSpaces? LineEnd
      TabsAndSpaces ::= (#x20 | #x09)+
      LineEnd ::= StartOfStream | ((#x0D #x0A) | #x0D | #x0A) | EndOfStream
      then the first "TabsAndSpaces?" and the closing "TabsAndSpaces? LineEnd"
      should be gobbled. (Note that it supports multiline directives, that is
      why "DirectiveLine" is not simply "Line".) If you whant the first
      "LineEnd" to be gobbled prepend a ## before it (makes the EOL part of
      the previous line!).

      This has been an isse since velocity birth and discussed in many
      user and developer threads. Some users agree with my proposals,
      some say that velocity sould not touch any whitespaces and a
      code formatter should be run after the template rendering.

      The proposal is not 100% BC, but a switch could allow the classic
      style (by default), or to pass all whitespaces.

      A new directive could be created to control the gobbling for
      the enclosed parts within a template.

      Attachments

        Issue Links

          Activity

            People

              cbrisson Claude Brisson
              chreck Christoph Reck
              Votes:
              4 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: