New valexpr function: curr_offset

38 views
Skip to first unread message

John Wiegley

unread,
Mar 19, 2012, 5:45:45 AM3/19/12
to ledge...@googlegroups.com
For all you format string writers out there: oh, I mean, yeah -- you.

A value expression within a format string now has access to a new function,
curr_offset. The value is always an integer giving the column where the
string will be interpolated. Example:

"12345%(curr_offset)" => "123456"

This makes writing complex reports which use the justify() function much
simpler. Here is what the built-in --register-format looks like now:

%(ansify_if(
ansify_if(justify(format_date(date), int(date_width)),
green if color and date > today),
bold if should_bold))
%(ansify_if(
ansify_if(justify(truncated(payee, int(payee_width)),
int(payee_width)),
bold if color and !cleared and actual),
bold if should_bold))
%(ansify_if(
ansify_if(justify(truncated(display_account, int(account_width),
int(abbrev_len)), int(account_width)),
blue if color),
bold if should_bold))
%(ansify_if(justify(scrub(display_amount), int(amount_width),
curr_offset + int(meta_width) + int(prepend_width),
true, color),
bold if should_bold))
%(ansify_if(justify(scrub(display_total), int(total_width),
curr_offset + int(meta_width) + int(prepend_width),
true, color),
bold if should_bold))\n%/
%(justify(" ", int(date_width)))
%(ansify_if(justify(truncated(has_tag("Payee") ? payee : " ",
int(payee_width)), int(payee_width)),
bold if should_bold))
%$3 %$4 %$5\n

Um, yeah. It doth scintillate with clarity, don't it? So, back to what you
were doing. :)

John

java night

unread,
Apr 29, 2012, 1:55:41 PM4/29/12
to ledge...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages