summaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2019-03-13 09:30:30 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2019-03-13 09:30:42 +0000
commit7a6b21de6514736ef5f0a7cbdf429b8f38c25016 (patch)
tree0e98ba659e6c2261734029c5c4c0a0970cf0718e /TODO
parent4f5cb88c2b16c4e651f3974d8bf651badfe92822 (diff)
Add to TODO.
Diffstat (limited to 'TODO')
-rw-r--r--TODO39
1 files changed, 34 insertions, 5 deletions
diff --git a/TODO b/TODO
index 7a4a7a7d..1a25d9b0 100644
--- a/TODO
+++ b/TODO
@@ -155,9 +155,9 @@ TODO soonish maybe:
#{W:#{window_name} }. It would need to be able to reach
into a window's options in order to allow different windows
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
- 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.
@@ -167,16 +167,45 @@ TODO soonish maybe:
status-left and right and the default status-format becomes
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;
- ! = 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
like the alignment that stores the offset/size for
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
for bottom.