[ 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-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org