aboutsummaryrefslogtreecommitdiff
path: root/window-copy.c
Commit message (Collapse)AuthorAge
* Add a mark in copy mode. Set with set-mark command (bound to 'X') by defaultNicholas Marriott2020-05-13
| | | | | | | | and the mark and cursor position are swapped with 'jump-to-mark' (bound to M-x). The line containing the mark is shown in copy-mode-mark-style with the horizontal position in reverse. From Anindya Mukherjee in GitHub issue 2209.
* Do not loop forever when search finds an empty match, GitHub issue 2203.Nicholas Marriott2020-05-10
|
* Fix next-matching-bracket logic, from Chris Barber.Nicholas Marriott2020-05-09
|
* Store and restore cursor position when copy mode is resized, from AnindyaNicholas Marriott2020-05-05
| | | | Mukherjee.
* Try to search the entire history first for up to 200 ms so a search count canNicholas Marriott2020-05-03
| | | | be shown. If it takes too long, search the visible text only.
* Use the cursor position not the current position when working out which marksNicholas Marriott2020-05-03
| | | | are current.
* Do not hoke into struct window_pane from the tty code and instead setNicholas Marriott2020-05-01
| | | | | | everything up in tty_ctx. Provide a way to initialize the tty_ctx from a callback and use it to let popups draw directly through input_parse in the same way as panes do, rather than forcing a full redraw on every change.
* Copy mode search improvements:Nicholas Marriott2020-04-29
| | | | | | | | | - Add styles for the search marking styles (copy-mode-match-style and copy-mode-current-match-style). - Show the current match (the one with the cursor on it) in a different style. - Copying without a selection will copy the current match if there is one.
* Drop having a separate type for style options and make them all strings, whichNicholas Marriott2020-04-28
| | | | | | | | | | | | | | | | | allows formats to be expanded. Any styles without a '#{' are still validated when they are set but any with a '#{' are not. Formats are not expanded usefully in many cases yet, that will be changed later. To make this work, a few other changes: - set-option -a with a style option automatically appends a ",". - OSC 10 and 11 don't set the window-style option anymore, instead the fg and bg are stored in the pane struct and act as the defaults that can be overridden by window-style. - status-fg and -bg now override status-style instead of trying to keep them in sync.
* time.h is needed.Nicholas Marriott2020-04-23
|
* Only trim blank lines when the source pane is not the target pane,nicm2020-04-20
| | | | otherwise the cursor moves which is a bit strange.
* Make sure the cursor position is still on screen after we have trimmednicm2020-04-17
| | | | empty lines. Also improve some log messages.
* Add a copy-command option and change copy-pipe and friends to pipe to itnicm2020-04-17
| | | | | if used without arguments, allows all copy key bindings to be changed to pipe with one option.
* Don't miss the last line off the screen when writing after resize, fromnicm2020-04-16
| | | | Anindya Mukherjee.
* Clear the selection and repeat the search on refresh same as resize.nicm2020-04-15
|
* Instead of fixing with the cursor position when the copied screen isnicm2020-04-15
| | | | | | created, resize it and let the resize/reflow code fix it up and return it. Solves various problems with cursor position and resizing when in copy mode. With Anindya Mukherjee.
* Leave the cursor above empty lines.nicm2020-04-14
|
* Adjust cursor and scroll positions when entering copy mode so that thenicm2020-04-14
| | | | | cursor line is still visible even if the source and target panes are different heights.
* Make client -c and -t handling common in cmd-queue.c and try to benicm2020-04-13
| | | | | clearer about whether the client is the target client (must have a session) or not.
* Now that copy mode copies the pane content rather than keeping anicm2020-04-10
| | | | | | | | | | reference to it, it isn't necessary that the pane in copy mode is the same as the one copying from. Add a -s flag to copy-mode to specify a different pane for the source content. This means it is possible to view two places in a pane's history at the same time in different panes, or copy from a pane's history into an editor or shell in the same pane. From Anindya Mukherjee.
* Fix history-bottom to use the right line when working out the length.nicm2020-04-09
|
* Some minor style nits.nicm2020-04-09
|
* Some unnecessary assignments and unused variables.nicm2020-04-09
|
* Change copy mode to make copy of the pane history so it does not need tonicm2020-04-06
| | | | | | freeze updates (which does not play nicely with some applications, a longstanding problem) and will allow some other changes later. From Anindya Mukherjee.
* Check previous line rather than an extra line, from Anindya Mukherjee.nicm2020-04-03
|
* Only search the visible part of the history when marking (highlighting)nicm2020-04-02
| | | | search terms, much faster than searching the whole history.
* Add a 10 second timeout to prevent searches taking too much time, fromnicm2020-04-01
| | | | Anindya Mukherjee.
* Do not go down the regex search path (which is expensive because we neednicm2020-04-01
| | | | | | to convert the grid data into a string for regexec and reverse it to find the grid position) if the search string does not contain any regex special characters.
* Use a comparison to check for wrap and avoid an expensive modulus.nicm2020-04-01
|
* Performance improvements for regex searching, most notably:nicm2020-04-01
| | | | | | | | | | | | | - Use the grid data directly instead of copying it. - Special case the most typical one byte character cells and use memcmp for multiple bytes instead of a handrolled loop. - Hoist regcomp out of the loop into the calling functions. GitHub issue 2143. Also a man page from from jmc@.
* Do not go down the regex search path (which is expensive because we neednicm2020-04-01
| | | | | | to convert the grid data into a string for regexec and reverse it to find the grid position) if the search string does not contain any regex special characters.
* Use a comparison to check for wrap and avoid an expensive modulus.nicm2020-04-01
|
* Performance improvements for regex searching, most notably:nicm2020-04-01
| | | | | | | | | | | | | - Use the grid data directly instead of copying it. - Special case the most typical one byte character cells and use memcmp for multiple bytes instead of a handrolled loop. - Hoist regcomp out of the loop into the calling functions. GitHub issue 2143. Also a man page from from jmc@.
* Add non-regex search variants to avoid the performance cost for peoplenicm2020-03-31
| | | | with large histories or long lines.
* Set end position correctly, GitHub issue 2129 from Anindya Mukherjee.nicm2020-03-21
|
* Fix select-word when not on a word, from Anindya Mukherjee.nicm2020-03-20
|
* Make the mouse_word and mouse_line formats work in copy mode and enablenicm2020-03-20
| | | | the default pane menu in copy mode.
* select_word_end needs to forward no_reset flag or select-word selectsnicm2020-03-20
| | | | too much.
* Another fix to make other-end forget the selection mode, from Anindya Mukherjee.nicm2020-03-20
|
* Add a flag to run a background process in a pty as well, not used fornicm2020-03-19
| | | | anything yet.
* Various fixes to copying with select-word and select-line, includingnicm2020-03-19
| | | | | making it consistent with keys and with the mouse, and using other-end. From Anindya Mukherjee.
* Adjust selection correctly when scrolling, from Anindya Mukherjee.nicm2020-03-16
|
* Reset selection flag when clearing or stopping selection, from Marknicm2020-03-15
| | | | Kelly.
* Add a copy-mode -H flag to hide the position marker in the top right.nicm2020-03-12
|
* Start a new selection if outside the existing selection after a word hasnicm2020-03-11
| | | | been selected. From Anindya Mukherjee.
* Change mouse selection so that after selecting a word, dragging selectsnicm2020-02-24
| | | | only words and similar for lines. From Anindya Mukherjee.
* Add selection_active format for when the selection is present but notnicm2020-02-20
| | | | moving with the cursor, from Mark Kelly.
* Do not jump to next word end if already on a word end when selecting anicm2020-02-13
| | | | | word. Fixes select-word with single character words and vi(1) keys. From Mark Kelly.
* Support regex search in copy mode, from Anindya Mukherjee in GitHubnicm2019-12-27
| | | | issue 2038.
* Tweak previous to check the wrapped flag and stop if not set.nicm2019-12-11
|