You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Byron Foster (JIRA)" <de...@velocity.apache.org> on 2008/12/12 14:29:44 UTC
[jira] Commented: (VELOCITY-253) Enhance whitespace gobbling
[ https://issues.apache.org/jira/browse/VELOCITY-253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656011#action_12656011 ]
Byron Foster commented on VELOCITY-253:
---------------------------------------
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: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org