aboutsummaryrefslogtreecommitdiff
path: root/src/termkey
Commit message (Collapse)AuthorAge
* 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.
* feat(tui): parse CSI subparams in termkey (#29805)Gregory Anders2024-07-21
| | | | | | | | | | | | | | | | | | | | | | | libtermkey does not know how to parse CSI subparameters (parameters separated by ':', ASCII 0x3A) and currently just ignores them. However, many important CSI sequences sent by the terminal make use of subparameters, most notably key events when using the kitty keyboard protocol [1]. Enabling subparameters is a prerequisite for expanding kitty keyboard protocol support in Neovim. Concretely, we do this by returning pointers into the internal termkey buffer for each CSI parameter rather than parsing them into integers directly. When a caller wants to actually use the parameter as an integer, they must call termkey_interpret_csi_param, which parses the full parameter string into an integer parameter and zero or more subparameters. The pointers into the internal buffer will become invalidated when new input arrives from the terminal so it is important that the individual params are used and parsed right away. All of our code (and libtermkey's code) does this, so this is fine for now, but is something to keep in mind moving forward. [1]: https://sw.kovidgoyal.net/kitty/keyboard-protocol/
* Handle mouse buttons 6/7 (often used for horizontal scrolling)Paul "LeoNerd" Evans2023-12-31
|
* Ignore key_mouse unless it is exactly \e[M because some terminfos relate to ↵Paul "LeoNerd" Evans2023-12-31
| | | | different encoding modes (thanks Ninji)
* fix(termkey): include IO header on WindowsGregory Anders2023-11-30
|
* fix(termkey): accept BEL (0x07) as OSC terminatorGregory Anders2023-11-30
|
* fix(termkey): do not sign extend mode valueGregory Anders2023-11-30
|
* build: vendor libtermkeydundargoc2023-11-30
This is a proof of concept/WIP to evaluate the viability of vendoring libtermkey as it's been deprecated.