Add to TODO.

This commit is contained in:
Nicholas Marriott 2019-03-13 09:30:30 +00:00
parent 4f5cb88c2b
commit 7a6b21de65

39
TODO
View File

@ -155,9 +155,9 @@ TODO soonish maybe:
#{W:#{window_name} }. It would need to be able to reach #{W:#{window_name} }. It would need to be able to reach
into a window's options in order to allow different windows into a window's options in order to allow different windows
to have different format, maybe an operator to evaluate an to have different format, maybe an operator to evaluate an
option value as a format, maybe make it so ! on evaluates option value as a format, maybe make it so E: on evaluates
the result as a format again something like, so end up with the result as a format again something like, so end up with
something like #{W:#{!window-status-format} } something like #{W:#{E:window-status-format} }
2) Some way to include alignment information for part of a format. 2) Some way to include alignment information for part of a format.
@ -167,16 +167,45 @@ TODO soonish maybe:
status-left and right and the default status-format becomes status-left and right and the default status-format becomes
something like (plus some bits for current window): something like (plus some bits for current window):
#{L:#{!status-left} #{M:#{W:{!window-status-format}}} #{R:#{!status-right}} #{L:#{E:status-left} #{M:#{W:{E:window-status-format}}} #{R:#{E:status-right}}
Where L = left, M = middle, R = right; W = for each window; Where L = left, M = middle, R = right; W = for each window;
! = get option value and evaluate as format. E = get option value and evaluate as format.
4) Also need a way to return mouse positioning, so a format 4) Also need a way to return mouse positioning, so a format
like the alignment that stores the offset/size for like the alignment that stores the offset/size for
Mouse*Status{Left,Right}. Mouse*Status{Left,Right}.
5) Then status-format can be an array option specifying 5) Likewise, styles. Alignment, mouse, styles can all be done
similarly - format_expand can be given the available width
and then build a list of format_range with type (ALIGN_LEFT,
STYLE, MOUSE_LEFT and so on) which a format_draw function
can use to draw the format, and can be stored to be used by
the mouse positioning check code.
6) status-left-length and similar will need to be taken into
account, perhaps add an alternative form of the length limit
eg #{l:#{status-left-length},#{...}}.
7) Supporting trimming the window list and adding <> might be
tricky, probably a second pass over the format_range list to
trim as appropriate. But it will need to know which element
to trim first, so some way to mark that is needed (maybe a
priority or something in the alignment/length limit).
8) Formats are going to get very long so perhaps standardize
them a bit so they are all something like #{F/argument:text}
then then could be #{A/foo;B/bar:text} rather than
#{A:foo,#{B:bar,text}} and so on. Need to keep the old style
for compatibility, at least for the most popular formats. So
the status-left part would be something like:
#{A/left;S/#{status-left-style};M/left;l/#{status-left-length};E:status-left}
Where A = alignment, S = style, M = mouse, l = length limit,
E = expand again.
9) Then status-format can be an array option specifying
multiple status lines. Perhaps one option for top and one multiple status lines. Perhaps one option for top and one
for bottom. for bottom.