aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/tui/termkey
Commit message (Collapse)AuthorAge
* feat(tui): recognize X1 and X2 mouse eventszeertzjq2025-01-21
| | | | | Ref: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Other-buttons
* refactor: delete duplicate utf8-functionalitydundargoc2025-01-13
| | | | | | | | | | | | Also remove British National Replacement Character Set. We keep the DEC Special Graphics and ASCII despite it not being unicode as some old software such as calcurse still rely on this functionality. References: - https://github.com/neovim/neovim/pull/31934#discussion_r1911046426 - https://en.wikipedia.org/wiki/DEC_Special_Graphics - https://vt100.net/docs/vt220-rm/chapter2.html#S2.4.3
* fix(tui): handle key events for arrow and function keys (#31804)Gregory Anders2024-12-31
| | | | | | | | | | | | | Arrow and function keys do not use CSI u with the kitty keyboard protocol. For example, the Up arrow key uses CSI A, and the function keys use a variety of different CSI sequences. Until now, termkey only parsed subparams used by key events for CSI u sequences. The result being that any key which did not use CSI u (e.g. arrow and function keys) was being emitted twice by termkey since it was not recognizing the separate press and release events. This commit makes termkey also parse subparams for other key sequences so that the release key events do not send duplicate keys.
* feat(tui): handle kitty key events in libtermkey (#31727)Gregory Anders2024-12-31
| | | | | | Enable key event reporting in the kitty keyboard protocol. This causes supporting terminals to send key events for presses, repeats, and key releases. For now we ignore release events, but eventually we will support users mapping those.
* fix(termkey): fix null pointer dereference (#31792)Gregory Anders2024-12-30
|
* fix(build): <termios.h> is system-dependent #31705Justin M. Keyes2024-12-23
| | | | | | | | | | | | | | | Problem: Since 2a7d0ed6145bf3f8b139c2694563f460f829813a, build fails with glibc version 2.28 / RHEL8 (where `termios.h` does not include unistd.h and is therefore missing `_POSIX_VDISABLE`): …/src/nvim/tui/termkey/termkey.c: In function 'termkey_start': …/src/nvim/tui/termkey/termkey.c:516:31: error: '_POSIX_VDISABLE' undeclared (first use in this function) 516 | termios.c_cc[VQUIT] = _POSIX_VDISABLE; | ^~~~~~~~~~~~~~~ …/src/nvim/tui/termkey/termkey.c:516:31: note: each undeclared identifier is reported only once for each function it appears in Solution: - Undo the `<termios.h>` change and mark the imports with `IWYU pragma: keep`.
* refactor: iwyu #31637Justin M. Keyes2024-12-23
| | | Result of `make iwyu` (after some "fixups").
* docs: misc (#31138)dundargoc2024-11-21
| | | Co-authored-by: zeertzjq <zeertzjq@outlook.com>
* fix(coverity/509227/509228): tui driver_ti underflow #30341Devon Gardner2024-09-19
| | | | | | | | | Problem: write() can return -1 but is cast to unsigned type causing coverity to detect possible overflowed integer Solution: Perform check to ensure all negative values are captured rather than just -1 before casting to unsigned type
* refactor: adopt termkey and eliminate duplicate codedundargoc2024-09-05
Termkey is abandoned and it's now our code, so there's no reason not to treat it as such. An alternative approach could be to have a proper repo that we maintain such as with unibilium, although with this approach we can make a few assumptions that will allow us to remove more code. Also eliminate duplicate code from both termkey and libvterm.