[stringtemplate-interest] Output formatting issue (formatting constraints and other)

Terence Parr parrt at cs.usfca.edu
Thu May 26 13:02:13 PDT 2005


On May 26, 2005, at 2:11 AM, stefan wrote:

>       A streight forward application of the stringtemplate would be  
> a code
> beautifier, as those present in Eclipse, Netbeans etc.

Yes, I plan on writing one of these beasts soon to learn how to do it  
properly. :)

>      Next lines are some older notices of mine :
> _____________________________________________________________
>      Lets say that we have the classic java method :
> .................
> public static SomeResultClass getYooopie(String _str,  
> SomeOtherClass _soc) {
> ____________________
> }
> .................
>       and the templates:
> .................
> method(access_modif,static_modif,result,id b_op,a_op,args, b_cp,  
> a_cp) ::=<<
> $access_modif$ $static_modif$ $result$ $id$$b_op$($a_op$$args$$b_cp 
> $)$a_cp$ {
>     $body$
> }
>
>>>
>>>
> parameter(type, id) ::= "$type$ $id$";
> .................
>
>       I would like to reprint it in conformance with some basic  
> composition
> rules (constraints) like:
>         - [0] line length ("should be shorter than 80 chars")
>         - [1] "one parameter/line and one under the other" (split  
> point before
> each parameter)
>         - [2] "put on the line as much as possible" (split point at  
> the end of
> the line)
>         - [3] "put on the line as much as possible but do not split  
> in two the
> parameters" (split point is at the and of the line and before  
> parameter) (eg.
> can not have "String" on current line and "_str" on the next)
>
>       As I see it right now, a constraint would be a combination of  
> [0] and
> one of the other rules. For rules [1-3] I have to do two things:
>     a) specify the split points by marking them in stringtemplate  
> (otherwise
> default split points are inserted before each $$ element)
>     b) apply constraint at write time

Yes, seems complicated at the moment...i'll learn more when I build one.

>       Open questions :
>   - should I insert split points by default in front of each $$?
>   - should I evaluate chunks length without completely writing  
> them: delay
> chunk write till the constraint is resolved? (the complete write is  
> ordered
> by enclosing template)
> ______________________________________________________________________
>
>      As soon as I will start working on a code beautifier I'll give  
> more
> feedback,

Sounds great!

Ter
>               Stefan.
> On Thursday 26 May 2005 02:37, Terence Parr wrote:
>
>> On May 25, 2005, at 10:19 AM, jobapply wrote:
>>
>>>> It relies on the controller to wrap objects in the appropriate
>>>> "renderer" object.  I'm adding a mapping concept in the next  
>>>> version
>>>> that lets you pass in a collection of renderers, one for each
>>>> locale,
>>>> so you could generically say format dates in this way. :)
>>>>
>>>
>>> I used to think of renderers as of a part of code..
>>>
>>
>> Well they are implemented in code, but used by view
>>
>>
>>> Could you explain how
>>>  {$header|truncate:40:"..."}.
>>> example will be handled with "renderers"?
>>>
>>
>> The problem is the "40".  What if you need to do truncate but not in
>> the middle of an HTML tag?  I have been thinking about size of
>> strings as you have seen on the list.  I wonder if a truncate
>> operator would be useful in general.  I can easily make a renderer
>> that truncates, but there is no way to pass it an argument...that is
>> specifically disallowed in general as it would be too much like code,
>> but perhaps a special operator would satisfy everybody :)
>>
>> Ter
>> --
>> CS Professor & Grad Director, University of San Francisco
>> Creator, ANTLR Parser Generator, http://www.antlr.org
>> Cofounder, http://www.jguru.com
>>
>> _______________________________________________
>> stringtemplate-interest mailing list
>> stringtemplate-interest at antlr.org
>> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-interest
>>
> _______________________________________________
> stringtemplate-interest mailing list
> stringtemplate-interest at antlr.org
> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-interest
>

--
CS Professor & Grad Director, University of San Francisco
Creator, ANTLR Parser Generator, http://www.antlr.org
Cofounder, http://www.jguru.com



More information about the stringtemplate-interest mailing list