freemarker-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Dekany (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (FREEMARKER-82) A new whitespace tag to indicate the baseline indentation for <@macro> and includes.
Date Fri, 27 Oct 2017 11:51:00 GMT

    [ https://issues.apache.org/jira/browse/FREEMARKER-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16222211#comment-16222211
] 

Daniel Dekany edited comment on FREEMARKER-82 at 10/27/17 11:50 AM:
--------------------------------------------------------------------

More intelligent indentation would be a great feature for sure, but that involves deciding
the indentation on run time. Back then I was thinking about it, and found that you ran into
limitations if things just print into a `Writer` internally. Instead, you need a stream of
fragments with richer semantics, so that you can tell if a fragment is indentation that might
can be removed, and so on. As not using a `Writer` in API-s like `TemplateDirectiveModel`
is not backward compatible, this issue was postponed to FreeMarker 3 (which however haven't
yet reached the state where this will be attempted). But maybe there's a less perfect solution
that works with `Writer`-s... I don't know, will have to think about it. (Also, I tried it
without any directives, just generating the output that a human would expect.)


was (Author: ddekany):
More intelligent indentation would be a great feature for sure, but that involves deciding
the indentation on run time. Back then when I was thinking about it, and found that you ran
into limitations if things just print into a `Writer` internally. Instead, you need a stream
of fragments with richer semantics, so that you can tell if a fragment is indentation that
might can be removed, and so on. As not using a `Writer` in API-s like `TemplateDirectiveModel`
is not backward compatible, this issue was postponed to FreeMarker 3 (which however haven't
yet reached the state where this will be attempted). But maybe there's a less perfect solution
that works with `Writer`-s... I don't know, will have to think about it. (Also, I tried it
without any directives, just generating the output that a human would expect.)

> A new whitespace tag to indicate the baseline indentation for <@macro> and includes.
> ------------------------------------------------------------------------------------
>
>                 Key: FREEMARKER-82
>                 URL: https://issues.apache.org/jira/browse/FREEMARKER-82
>             Project: Apache Freemarker
>          Issue Type: Wish
>          Components: engine
>            Reporter: Brent
>
> Sometimes, perhaps most of the times, it is useful to split up small pieces of my template
into macros or otherwise other templates to include.
> However, since V2.3, lines containing only FTL tags get trimmed. This is annoying because
I may want to include a macro or another template, with the current indentation of where I
call it.
> This brings me to my next point, as shown in [my answer on StackOverflow|https://stackoverflow.com/a/46973468/2686165],
it is possible to keep this indentation with <#nt>, but this only works for the first
line of the macro (see SO answer at the bottom).
> So I propose an easy way to say "use the current indentation of the line, as a base of
all the indentation for my macro or included template.
> Any indentation inside the included template, or the macro would be relative. If one
wished to break the relative indentation for a line inside their included template or macro,
another tag should be foreseen to indicate that.
> New tags:
> * To indicate an indentation base for templates/macros
> * To indicate that a line inside the included template/macro must not use the indentation
base (so you can put lines that don't follow the indentation, perhaps <#t> already provides
this functionality)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message