nicm
e4856de8bf
Do not crash on a zero size character.
2021-12-20 09:02:12 +00:00
nicm
759efe1b33
Add -e flag to set environment for popup, from Alexis Hildebrandt in
...
GitHub issue 2924.
2021-10-11 10:55:30 +00:00
nicm
caa8703a23
Spacing tweaks.
2021-08-20 20:04:22 +00:00
nicm
5f32b7d961
Hide struct args behind a couple of accessor functions.
2021-08-20 19:50:16 +00:00
nicm
c76b28de24
Remove some unnecessary blank lines.
2021-08-20 19:08:36 +00:00
nicm
e463e8622d
Remove stray spaces after function names.
2021-08-20 17:50:42 +00:00
nicm
01fd4b997e
Add pipe variants of the line copy commands. While here make the command
...
list less unreadable. GitHub issue 2813.
2021-08-11 20:35:46 +00:00
nicm
be5988457f
Change copy-line and copy-end-of-line not to cancel and add -and-cancel
...
variants, like the other copy commands. GitHub issue 2799.
2021-08-09 13:08:08 +00:00
nicm
43514f4af6
Fix rectangle selection, from Anindya Mukherjee, GitHub issue 2709.
2021-06-10 07:58:42 +00:00
nicm
77b1290698
More accurate vi(1) word navigation in copy mode and on the status line.
...
This changes the meaning of the word-separators option - setting it to
the empty string is equivalent to the previous behavior. From Will Noble
in GitHub issue 2693.
2021-06-10 07:56:47 +00:00
nicm
5900b164a4
Fix a couple of edge cases with the jump-back-xxx commands, and also
...
update back-to-indentation to use grid_reader, thereby fixing line
wrapping issues. From Anindya Mukherjee, GitHub issue 2633.
2021-04-05 08:43:48 +00:00
nicm
28cd956729
Change search-again with vi keys to work like actual vi(1), also some
...
other fixes. From Aaron Jensen with help from Anindya Mukherjee.
2021-04-01 06:46:12 +00:00
nicm
7f87280cd5
Allow cursor to be just after match if copying, GitHub issue 2602.
2021-03-09 13:07:50 +00:00
nicm
81e5736510
Copy mode improvements from Anindya Mukherjee:
...
- Fix word and word-end for wrapped lines.
- Fix copying of selection end on wrapped lines.
- Fix wrapped word selection edge case.
- Update select-line to respect wrapped lines.
- Update window_copy_..._pos() functions to use grid_reader.
GitHub issue 2605.
2021-03-09 08:24:09 +00:00
nicm
c44750792a
Drop support for popups where the content is provided directly to tmux
...
(which does not have many practical uses) and only support running a
program in the popup. display-popup is now simpler and can accept
multiple arguments to avoid escaping problems (like the other commands).
2021-03-02 10:56:45 +00:00
nicm
5f425ee318
Fix regex searching with wrapped lines, from Anindya Mukherjee; GitHub
...
issue 2570.
2021-02-22 08:31:19 +00:00
nicm
e858270006
There are many format variables now so allocating all the default ones
...
each time a tree is created is too expensive. Instead, convert them all
into callbacks and put them in a static table so they only allocate on
demand. The tree remains for the moment for extra (non-default)
variables added by for example copy mode or popups. Also reduce
expensive calls to localtime_r/strftime. GitHub issue 2253.
2021-02-22 07:09:06 +00:00
nicm
8986c8dfcd
Move jump commands to grid reader, make them UTF-8 aware, and tidy up,
...
from Anindya Mukherjee.
2021-02-22 06:53:04 +00:00
nicm
e3005e5ec4
Add "pipe" variants of the "copy-pipe" commands which do not copy, from
...
Christian Zangl.
2021-02-08 14:46:53 +00:00
nicm
bba71f696f
Add rectangle-on and rectangle-off copy mode commands, GitHub isse 2546
...
from author at will dot party.
2021-01-22 10:24:52 +00:00
nicm
8d185395e4
Fix some cursor movement commands, from Anindya Mukherjee.
2021-01-22 10:21:24 +00:00
nicm
0730dce5ab
Hide some warnings on newer GCC versions, GitHUb issue 2525.
2021-01-18 11:14:23 +00:00
nicm
b96c5e3687
With incremental search, start empty and only repeat the previous search
...
if the user tries to search again with an empty prompt. This matches
emacs behaviour more closely.
2021-01-08 08:22:10 +00:00
nicm
ccb8b9eb2a
Remove unused variable, from Ben Boeckel.
2021-01-06 07:29:49 +00:00
nicm
c68baaad98
Remove current match indicator which can't work anymore since we only
...
search the visible region. From Anindya Mukherjee, GitHub issue 2508.
2020-12-28 09:36:26 +00:00
nicm
c43f2dce1b
Break cursor movement in grid into a common set of functions that can
...
handle line wrapping and so on in one place and use them for the obvious
copy mode commands. From Anindya Mukherjee.
2020-12-22 09:22:14 +00:00
nicm
bbab5b7a30
Allow previous-word to scroll onto the first line, noticed by Anindya
...
Mukherjee.
2020-11-10 08:16:52 +00:00
nicm
b9392d5cb1
Do not wrap at end of text when positioning at end of match because the
...
length may include trailing spaces.
2020-09-22 08:41:27 +00:00
nicm
88b66e9e28
Free buffer earlier to avoid confusing some compilers, GitHub issue
...
2382.
2020-09-18 11:23:29 +00:00
nicm
869c0e860f
Fix some warnings, GitHub issue 2382.
2020-09-16 18:37:55 +00:00
nicm
df7fbcd7a5
Change searching to behave more like emacs and so that regex searching
...
doesn't overlap when searching forwards.
2020-08-05 09:11:09 +00:00
nicm
8f1179d656
Handle padding cells correctly when searching, GitHub issue 2301.
2020-07-15 10:09:54 +00:00
nicm
afe4ea4250
Correctly move to previous line when looking for previous word, from
...
Derry Jing.
2020-06-16 07:28:57 +00:00
nicm
63c2ed1483
Add some formats for search in copy mode (search_present, search_match).
...
GitHub issue 2268.
2020-06-11 19:43:34 +00:00
nicm
4e5e2c19d0
Now that we mostly only search visible text, the rate limit on repeating
...
search does not seem to be necessary, remove it for the moment.
2020-06-05 07:44:42 +00:00
nicm
2154e1f4fb
Search marks outside the visible text are not useful, so there is no
...
point in allocating a big buffer to store them - just allocate the
visible text size, and ignore any outside.
2020-06-04 21:40:27 +00:00
nicm
c4732af006
Some improvements to performance of searching:
...
- Do not allow searches to be repeated at intervals of less than 50
milliseconds, to prevent a huge queue of repeat key presses blocking
up everything for ages.
- If the search text hasn't changed, the match count can't have changed
and there is no need to do a full search, so only search the visible
text. This includes both scrolling and repeating the search.
- Do not redraw twice when jumping to the search location.
GitHub issue 2258.
2020-06-04 20:41:57 +00:00
nicm
dc74d2e054
Make the -no-clear command variants not clear the search marks either.
2020-06-04 10:24:14 +00:00
nicm
f5366ff828
Missing ; in previous.
2020-06-02 19:16:46 +00:00
nicm
5fbae8c8c6
Fire copy-pipe command even if there is no text, means it works if it
...
has side effects.
2020-06-02 19:10:26 +00:00
nicm
f3931497f8
Use CLOCK_MONOTONIC for timer measurement and add a timestamp to control
...
mode %output blocks.
2020-06-02 08:17:27 +00:00
nicm
49ec074271
Tidy up new UTF-8 code and make it more generic.
2020-05-25 18:19:29 +00:00
nicm
4589297e43
Do not attempt to divide by zero when working out copy position.
2020-05-25 12:12:58 +00:00
nicm
3a5219c6d0
Instead of storing all UTF-8 characters in the extended cell which means
...
that 14 bytes are wasted for each character in the BMP, only store
characters of three bytes or less in the cell itself and store others
(outside the BMP or with combining characters) in a separate global
tree. Can reduce grid memory use for heavy Unicode users by around 30%.
2020-05-25 09:32:10 +00:00
nicm
ff8dd150e0
Add a mark in copy mode. Set with set-mark command (bound to 'X') by
...
default 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.
2020-05-16 16:10:28 +00:00
nicm
126bacb473
Do not loop forever when search finds an empty match, GitHub issue 2203.
2020-05-16 16:03:57 +00:00
nicm
592f141dee
Fix next-matching-bracket logic, from Chris Barber.
2020-05-16 16:03:30 +00:00
nicm
6ea6d46d0a
Store and restore cursor position when copy mode is resized, from
...
Anindya Mukherjee.
2020-05-16 15:49:20 +00:00
nicm
d056144aa1
Try to search the entire history first for up to 200 ms so a search
...
count can be shown. If it takes too long, search the visible text only.
2020-05-16 15:38:14 +00:00
nicm
9605b080f6
Do not hoke into struct window_pane from the tty code and instead set
...
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.
2020-05-16 15:34:08 +00:00