[
https://issues.apache.org/jira/browse/VELOCITY-253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656011#action_12656011
]
byronvf edited comment on VELOCITY-253 at 12/12/08 7:16 AM:
-----------------------------------------------------------------
It seem straight forward to alter the parser so that no white space is
consumed. Then, with a property switch, the AST tree could be walked and
altered so that white space is aggressively removed post-parse according to the
rules provided in the issue discription.
was (Author: byronvf):
It seem straight forward to alter the parser so that all white space is not
consumed. Then, with a property switch, the AST tree could be walked and
altered so that white space is aggressively removed post-parse according to the
rules provided in the issue discription.
> Enhance whitespace gobbling
> ---------------------------
>
> Key: VELOCITY-253
> URL: https://issues.apache.org/jira/browse/VELOCITY-253
> Project: Velocity
> Issue Type: Wish
> Components: Engine
> Affects Versions: 1.0-Release
> Environment: Operating System: other
> Platform: Other
> Reporter: Christoph Reck
> Fix For: 2.0
>
>
> 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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]