aboutsummaryrefslogtreecommitdiff
path: root/src/vterm
Commit message (Collapse)AuthorAge
* refactor: adopt vtermdundargoc2025-01-07
| | | | | | We have changed too much to consider it a mere bundled dependency (such as unicode handling in e3bfcf2fd4a4ebf00b104b082cfe83c8144a842d), and can consider it our own at this point.
* feat(terminal): support grapheme clusters, including emojibfredl2025-01-02
|
* test(vterm): move test functions into vterm_test fixtureJames McCoy2024-12-02
| | | | | | | In order to run unittests with a release build, we need the test functions to be accessible when NDEBUG is defined. Moving the functions into the test fixture ensures they are available and only available for use by the unit tests.
* test: port libvterm unit test to neovim test suitedundargoc2024-10-22
| | | | | | | These were imported from the v0.3.3 git tag https://github.com/neovim/libvterm/tree/v0.3.3 and not the latest commit. This is for compatibility reasons as the libvterm code was imported from v0.3.3.
* refactor(vterm): inline REFLOW macroPaul "LeoNerd" Evans2024-09-05
| | | | cherry-picked from https://github.com/neovim/libvterm/commit/dfc4c5e5b3dd99247dc95031a8f40087f181dea5
* 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.
* fix(terminal): handle C0 characters in OSC terminator (#30090)Gregory Anders2024-08-19
| | | | | | | | | | | | | | When a C0 character is present in an OSC terminator (i.e. after the ESC but before a \ (0x5c) or printable character), vterm executes the control character and resets the current string fragment. If the C0 character is the final byte in the sequence, the string fragment has a zero length. However, because the VT parser is still in the "escape" state, vterm attempts to subtract 1 from the string length (to account for the escape character). When the string fragment is empty, this causes an underflow in the unsigned size variable, resulting in a buffer overflow. The fix is simple: explicitly check if the string length is non-zero before subtracting.
* feat(term): support OSC 8 hyperlinks in :terminal (#30050)Gregory Anders2024-08-15
|
* feat(term): enable reflow by default (#21124)Christian Clason2024-08-10
| | | | | | | | | | | | Problem: Contents of terminal buffer are not reflown when Nvim is resized. Solution: Enable reflow in libvterm by default. Now that libvterm is vendored, also fix "TUI rapid resize" test failures there. Note: Neovim's scrollback buffer does not support reflow (yet), so lines vanishing into the buffer due to a too small window will be restored without reflow.
* build(deps): vendor libvterm at v0.3.3Christian Clason2024-08-10
Problem: Adding support for modern Nvim features (reflow, OSC 8, full utf8/emoji support) requires coupling libvterm to Nvim internals (e.g., utf8proc). Solution: Vendor libvterm at v0.3.3.