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