summaryrefslogtreecommitdiffstats
path: root/mode-tree.c
AgeCommit message (Collapse)Author
2019-12-12Do not crash in tree modes if the pane is only 1 in width, reported bynicm
KOIE Hidetaka in GitHub issue 2015.
2019-08-16Add a flag to reverse sort in the various choose modes, from Benjaminnicm
Poirier in GitHub issue 1875.
2019-07-19Add a few vi(1) key aliases, from D Ben Knoble.nicm
2019-05-30Remove a leftover abort and some fixes from cppcheck.nicm
2019-05-28Change display-menu from taking a single string to a set of arguments,nicm
which is much easier to work with. Based on a diff from Avi Halachmi.
2019-05-27Fix the intended ordering of items in buffer mode - it should not alwaysnicm
be tag 0 when the tree is empty. GitHub issue 1759.
2019-05-26Add formats for word and line under the mouse and use them to add somenicm
items to the pane menu.
2019-05-23Replace the split parser code (cfg.c and cmd-string.c) with a singlenicm
parser using yacc(1). This is a major change but is clearer and simpler and allows some edge cases to be made more consistent, as well as tidying up how aliases are handled. It will also allow some further improvements later. Entirely the same parser is now used for parsing the configuration file and for string commands. This means that constructs previously only available in .tmux.conf, such as %if, can now be used in string commands (for example, those given to if-shell - not commands invoked from the shell, they are still parsed by the shell itself). The only syntax change I am aware of is that #{} outside quotes or a comment is now considered a format and not a comment, so #{ is now a syntax error (notably, if it is at the start of a line). This also adds two new sections to the man page documenting the syntax and outlining how parsing and command execution works. Thanks to everyone who sent me test configs (they still all parse without errors - but this doesn't mean they still work as intended!). Thanks to Avi Halachmi for testing and man page improvements, also to jmc@ for reviewing the man page changes.
2019-05-12Fix some indentation and dead assignments.nicm
2019-05-12Add simple menus to tree, client, buffer modes.nicm
2019-03-18Extend the #[] style syntax and use that together with previous formatnicm
changes to allow the status line to be entirely configured with a single option. Now that it is possible to configure their content, enable the existing code that lets the status line be multiple lines in height. The status option can now take a value of 2, 3, 4 or 5 (as well as the previous on or off) to configure more than one line. The new status-format array option configures the format of each line, the default just references the existing status-* options, although some of the more obscure status options may be eliminated in time. Additions to the #[] syntax are: "align" to specify alignment (left, centre, right), "list" for the window list and "range" to configure ranges of text for the mouse bindings. The "align" keyword can also be used to specify alignment of entries in tree mode and the pane status lines.
2019-03-12DECRC and DECSC apparently need to preserve origin mode as well, basednicm
on a fix from Marc Reisner.
2018-11-12Allow style #[] in mode formats.nicm
2018-08-02Make key trees and some other bits static.nicm
2018-02-28Add -Z flag to choose-tree, choose-client, choose-buffer tonicm
automatically zoom the pane when the mode is entered and unzoom when it exits, assuming the pane is not already zoomed. Add -Z to the default key bindings.
2018-02-26C-g for modes too, from Mike Hamrick.nicm
2018-02-05Show if filter is active/no matches in modes.nicm
2017-11-03Clear key properly if on space with nothing in it.nicm
2017-11-03Support mouse on preview in tree mode.nicm
2017-11-03Change mouse in modes so that one click moves the cursor and a doublenicm
click chooses the line.
2017-11-02Make the mode draw function use the parent screen directly rather thannicm
its own to avoid copying twice.
2017-11-02Add a "fast" version of screen_write_copy for tree mode that doesn't donicm
all the checks and selection and marking stuff needed for copy mode.
2017-10-25h/l keys for expand and collapse.nicm
2017-10-25Add P key to paste tagged in buffer mode, and trim some code that shouldnicm
no longer be necessary.
2017-10-11Clear to end of line properly with UTF-8 present.nicm
2017-10-11Add C-n and C-p keys for tree mode, and choose the right initial linenicm
when no panes.
2017-09-08Fix a few errors in how the selected line is chosen after resize,nicm
reported by Felix Rosencrantz in GitHub issue 1059.
2017-08-27Do not allow the current line of screen when the preview is toggled,nicm
from Thomas Adam.
2017-08-23Key (v) and flag (-N) to toggle preview in choose modes.nicm
2017-07-12Line up keys in tree mode, and don't expand windows with one pane. Fromnicm
Thomas Adam.
2017-07-04Handle 0 size of preview box in caller.nicm
2017-06-09Extend filters (f key) to buffer and client mode and add -f flag tonicm
specify to command.
2017-06-09Add -O option to choose-* to set initial sort order.nicm
2017-06-07Return 1 if name matches not 0, also fix some spaces.nicm
2017-06-07Add simple searching (C-s and n) to the various choose modes: by namenicm
for client and tree, and by name and content for buffer.
2017-06-04Do not leak command, from David CARLIER.nicm
2017-05-30Rewrite of choose mode, both to simplify and tidy the code and to addnicm
some modern features. Now the common code is in mode-tree.c, which provides an API used by the three modes now separated into window-{buffer,client,tree}.c. Buffer mode shows buffers, client mode clients and tree mode a tree of sessions, windows and panes. Each mode has a common set of key bindings plus a few that are specific to the mode. Other changes are: - each mode has a preview pane: for buffers this is the buffer content (very useful), for others it is a preview of the pane; - items may be sorted in different ways ('O' key); - multiple items may be tagged and an operation applied to all of them (for example, to delete multiple buffers at once); - in tree mode a command may be run on the selected item (session, window, pane) or on tagged items (key ':'); - displayed items may be filtered in tree mode by using a format (this is used to implement find-window) (key 'f'); - the custom format (-F) for the display is no longer available; - shortcut keys change from 0-9, a-z, A-Z which was always a bit weird with keys used for other uses to 0-9, M-a to M-z. Now that the code is simpler, other improvements will come later. Primary key bindings for each mode are documented under the commands in the man page (choose-buffer, choose-client, choose-tree). Parts written by Thomas Adam.