mirror of
https://github.com/tmux/tmux.git
synced 2024-12-14 10:58:48 +00:00
Update TODO.
This commit is contained in:
parent
3a298454ce
commit
aa2b3472c5
86
TODO
86
TODO
@ -148,90 +148,7 @@
|
|||||||
TODO soonish maybe:
|
TODO soonish maybe:
|
||||||
|
|
||||||
- Horizontal cursor position is incorrect after resize (bug), issue 1323.
|
- Horizontal cursor position is incorrect after resize (bug), issue 1323.
|
||||||
- Multiple status lines:
|
- Multiple status lines (DONE but not committed yet).
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
- Store hooks as options, issue 1619.
|
- Store hooks as options, issue 1619.
|
||||||
- Support buffer prefixes, issue 1501.
|
- Support buffer prefixes, issue 1501.
|
||||||
- copy-pipe should be synchronous, issue 1517.
|
- copy-pipe should be synchronous, issue 1517.
|
||||||
@ -242,7 +159,6 @@ TODO soonish maybe:
|
|||||||
silly really though), reflow performance (can reflow blocks on
|
silly really though), reflow performance (can reflow blocks on
|
||||||
demand). It would possibly be good if history-limit could be global
|
demand). It would possibly be good if history-limit could be global
|
||||||
and collected LRU.
|
and collected LRU.
|
||||||
- Array options should be a tree rather than being sparse.
|
|
||||||
- Formats to get the default formats for various things, notably
|
- Formats to get the default formats for various things, notably
|
||||||
choose-tree. GitHub issue 1634.
|
choose-tree. GitHub issue 1634.
|
||||||
- Command aliases should be able to override builtin commands in order to add
|
- Command aliases should be able to override builtin commands in order to add
|
||||||
|
Loading…
Reference in New Issue
Block a user