summaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2019-03-18 12:00:10 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2019-03-18 12:00:10 +0000
commitaa2b3472c515dd1e5f57618e17c0c612cfa3c117 (patch)
treebcc4e84b55da6a670ead29c239241f75bc503a12 /TODO
parent3a298454ced9ea282a027c3ee4eb389e96716ac5 (diff)
Update TODO.
Diffstat (limited to 'TODO')
-rw-r--r--TODO86
1 files changed, 1 insertions, 85 deletions
diff --git a/TODO b/TODO
index bcb4305f..0da4e49a 100644
--- a/TODO
+++ b/TODO
@@ -148,90 +148,7 @@
TODO soonish maybe:
- Horizontal cursor position is incorrect after resize (bug), issue 1323.
-- Multiple status lines:
-
- 1) Extend formats to include some way to loop over every window
- (or pane or session), perhaps something like
- #{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. (DONE) An operator to evaluate an
- 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:#{E:window-status-format} }
-
- 2) Some way to include alignment information for part of a format.
-
- 3) Then the entire status line can be drawn with one option,
- instead of status-left/status-right. But how to stay
- backwards compatible, even slightly? Can probably keep
- status-left and right and the default status-format becomes
- something like (plus some bits for current window):
-
- #{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;
- 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) 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.
-
-(DONE) 6) status-left-length and similar will need to be taken into
- account.
-
- 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).
-
-(DONE) 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;=/#{status-left-length};E:status-left}
-
- Where A = alignment, S = style, M = mouse, = = length limit,
- E = expand again.
-
- Existing formats are:
-
- #{l:foo} <-- literal
- #{m:foo} <-- match
- #{C:foo} <-- search
- #{b:foo} <-- basename
- #{d:foo} <-- dirname
- #{t:foo} <-- time
- #{q:foo} <-- quote
- #{s/a/b/:foo} <-- sub
- #{=123:foo} <-- length
-
- #{||:foo,bar} <-- or
- #{&&:foo,bar} <-- and
- #{!=:foo,bar} <-- neq
- #{==:foo,bar} <-- eq
- #{?foo,bar,baz} <-- if
-
- So comparisons and ? can stay as they are.
-
- All other formats can be parsed as #{X/arg1/arg2/arg3:...}
- with an optional leading and trailing /. Each argument can
- be expanded.
-
- 9) Then status-format can be an array option specifying
- multiple status lines. Perhaps one option for top and one
- for bottom.
-
+- Multiple status lines (DONE but not committed yet).
- Store hooks as options, issue 1619.
- Support buffer prefixes, issue 1501.
- copy-pipe should be synchronous, issue 1517.
@@ -242,7 +159,6 @@ TODO soonish maybe:
silly really though), reflow performance (can reflow blocks on
demand). It would possibly be good if history-limit could be global
and collected LRU.
-- Array options should be a tree rather than being sparse.
- Formats to get the default formats for various things, notably
choose-tree. GitHub issue 1634.
- Command aliases should be able to override builtin commands in order to add