pivot-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roger Whitcomb (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PIVOT-960) Implement simple macro system in JSONSerializer
Date Tue, 04 Nov 2014 20:44:34 GMT

    [ https://issues.apache.org/jira/browse/PIVOT-960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14196772#comment-14196772

Roger Whitcomb commented on PIVOT-960:

Okay, in looking at the code trying to change the macro expansion from $(NAME) to just $NAME
I see a couple of problems:
1. Suppose I have a macro like:
#define PREFIX vertical
and I want to use it like this:
$(PREFIX)Alignment : 'center'
I cannot do this with just the $PREFIXAlignment syntax...
2. Even though "$" is not a valid JSON character by itself, it might be found inside some
text strings, which could cause confusion in a case like this:
'Enter price as $123'
where the $123 should not be interpreted as a macro (the intention in this text), but is with
this syntax.
The $(NAME) is not something that would be normal in text, and so is much less likely to be
wrongly interpreted as a macro expansion.

So, I think (even though it is more verbose) that I will stick to the $(NAME) syntax.

Thoughts?  Thanks.

> Implement simple macro system in JSONSerializer
> -----------------------------------------------
>                 Key: PIVOT-960
>                 URL: https://issues.apache.org/jira/browse/PIVOT-960
>             Project: Pivot
>          Issue Type: Improvement
>          Components: core-json
>    Affects Versions: 2.0.4
>         Environment: All
>            Reporter: Roger Whitcomb
>            Assignee: Roger Whitcomb
>            Priority: Minor
>             Fix For: 2.1
>         Attachments: 960.patch
> It occurred to me since we are using JSON style sheets to style our application, and
it is getting quite big, that a macro system (maybe similar to C/C++ with #define or something
similar) would be useful, especially for repeated colors, and other constants (like padding
values, fonts, etc.)  This would enable using custom values consistently while avoiding inconsistencies
due to typos or changes introduced one place and not others.
> I was thinking of a simple
> #define NAME value
> as in C/C++, and then using $(NAME) as the substitution token.  This is easily implemented
in JSONSerializer.
> I'm open to suggestions for the syntax, but I believe the feature will be very useful,
especially for the JSON stylesheet.

This message was sent by Atlassian JIRA

View raw message