Christoph Reck wrote:
> 
> +1 to dropping the old #set syntax.
> 
> I hope in this debut with Mr. Parser you will have the chance to fix
> some problems like it refuting double-quoted strings as parameters
> ending in a $ or #. 

That's actually my main motivation.  I hate that bug :)

Also it might be the chance to get the whitespace
> handling fixed. This should demonstrate the issue:
> ---
> #if( !$foo )
>   #set( $bar = "bar" )
>   \$bar is now set to $bar
>   #if( $bar )
>     #set( $foo = $bar )
>   #else
>     #set( $foo = "bar" )
>   #end
>   \$foo is now set to $foo
>   List: #foreach( $item in $list )
>     $item#if( $velocityCount != $list.size() ),#end
>   #end
>   That was it!
> #end
> ---
> produces (within example.vm):
> ---
>   $bar is now set to bar
>       $foo is now set to bar
>   List:     ArrayList element 1,      ArrayList element 2,      ArrayList element 3, 
>     ArrayList element 4    That was it!
> ---
> instead of
> ---
>   $foo is now set to bar
>   List:
>     ArrayList element 1,
>     ArrayList element 2,
>     ArrayList element 3,
>     ArrayList element 4
>   That was it!
> ---
> Here the whitespace is not what would be expected:
> 1. #ends chewed up the EOL (no empty line to the next)
> 2. The set is nice and transparent (it even slurped the
>    leading whitespaces). But leading whitespaces of an
>    indented #if, #foreach, #macro, etc. still show up
>    in the output.
> 3. If this snippet resides in a parsed file, I get:
>    ---
>      bar is now set to bar
>    ---
>    where the escaping was ignored.
> 
> (look at the output of the admin app and pjyve and you
> will see the strange formatting resulting from indented
> directives).

Reminds me of the old joke :

Patient : "Doctor : when I raise my arm like this, it hurts"
Doctor : "Stop raising your arm"

<agreed>

geir

> The right solution would be to absorb leading/trailing
> whitespaces *only* when the directive is standalone in
> a line. If the designer wishes, he can then supress
> any leading whitespaces by replacing it with a #* ... *#,
> and trailing EOL by appending a ##.
> 
> :) Chistoph
> 
> "Geir Magnusson Jr." wrote:
> >
> > It's time to say goodbye to an old friend, the original #set directive.
> > In it's brief time with us, in it's binary home, Ol' #set lived each
> > assignment with zest and passion.  And those that knew Ol' #set will
> > always remember how it always teased Mr. Parser with it's
> > non-conformity, refusing to simply 'go along' with the syntax of the
> > other directives, refusing to be able to be used inline.  It was this
> > appreciation for the small things (like "is a + is bound to the
> > directive or the following schmoo?")  But fear not, the spirit of Ole'
> > #set will always be with is, in #set()...
> >
> > Ok. I was at a funeral yesterday, hence the eulogy format :)
> >
> > Seriously, lets finally knock the old #set off.  I propose (and will do
> > it if no one yipes) that it goes away Real Soon Now.  If there is no
> > opposition, I will remove it.
> >
> > To recap :
> >
> > A LONG time ago, we changed the #set directive to conform with the rest
> > of the directives, in that the expression is contained in parenthesis -
> >
> > Old : #set $foo = 'bar'
> >
> > 'New' : #set( $foo = 'bar' )  or #set ( $foo = 'bar') or ....
> >
> > We currently still support the old way (w/o the parens), and log as a
> > convenience to the user, but lets get rid of it.  It's been a long time,
> > it was well publicised, and the log, if you read it, tells you in which
> > template at what line you have the old syntax.
> >
> > All in favor, say '+1'.  Actually, it's more important to understand who
> > / why against, so all not in favor, -1 and why...
> >
> > geir

-- 
Geir Magnusson Jr.                               [EMAIL PROTECTED]
Velocity : it's not just a good idea. It should be the law.
http://jakarta.apache.org/velocity

Reply via email to