aboutsummaryrefslogtreecommitdiff
path: root/helix-tui/src/backend/crossterm.rs
Commit message (Collapse)AuthorAge
* tui: Log keyboard enhancement query timeMichael Davis2023-03-08
| | | | | | In my testing this takes around 3-4ms in terminals that support the enhanced keyboard protocol (Kitty, WezTerm) and a few hundred microseconds in terminals that don't (st, Alacritty).
* tui: Cache the keyboard enhancement checkMichael Davis2023-03-08
| | | | | | | | | | | Wether the host terminal supports keyboard enhancement can be cached for the lifetime of a Helix session. Caching this lookup prevents a potential lockup within crossterm's event reading system where the query for the keyboard enhancement support waits on the next keyboard event, which can happen if the crossterm event stream is checked by `tokio::select!` in another thread.
* Move terminal claim/restore code to helix-tuiMichael Davis2023-03-08
| | | | | | | | | | | | | | | | | | This moves the `Application::claim_term` and `helix-term::application::restore_term` functions into the helix-tui crate. How the terminal should be claimed and restored is a TUI concern and is implemented differently through different TUI backends. This cleans out a lot of crossterm and TUI code in Application and makes it easier to modify claim/restore based on information we query from the terminal host. The child commit will take advantage of this to cache the check for whether the host terminal supports the keyboard enhancement protocol. Without this change, caching that information takes much more code which is not easily reusable for anything else. The code to restore the terminal is somewhat duplicated by this patch: we want to restore the terminal in cases of panics. Panic handler hooks must live for `'static` and the Application's terminal does not.
* Update crossterm to 0.26.1Michael Davis2023-02-28
| | | | | Crossterm 0.26.x includes a breaking change for the command to set the cursor shape. This commit includes a change which uses the new type.
* Detect WezTerm and mark it as undercurl/Smulx capableBlaž Hrastnik2022-12-02
|
* fix terminfo detectionPascal Kuthe2022-10-12
|
* avoid visual artificats on terminal emulators that do not support underline ↵Pascal Kuthe2022-10-06
| | | | colors
* switch to termini for terminfoPascal Kuthe2022-10-06
|
* make underline_style a seperate optionPascal Kuthe2022-10-01
| | | | | | | | | | Underline styles are mutally exclusive and overwrite each other. Therefore implementing as an modifier lead to incorrect behaviour when the underline style is overwritten. For backwards compatability the "underline" modified is retained (but deprecated). Instead the "underline_style" and "underline_color" optios should be used to style underlines.
* Detect extended underline support using terminfoGokul Soumya2022-10-01
| | | | | | | The cxterminfo crate has been used over popular alternatives like `term` since it supports querying for extended capabilities and also for it's small codebase size (which will make it easy to inline it into helix in the future if required).
* Add separate color for underlinesA-Walrus2022-10-01
|
* Support different kinds of underline renderingGokul Soumya2022-10-01
| | | | | | | | | Adds four new modifiers that can be used in themes: - undercurled - underdashed - underdotted - double-underline
* reverse the dependency between helix-tui and helix-view (#366)Keith Simmons2021-06-25
| | | | | | | | | * reverse the dependency between helix-tui and helix-view by moving a fiew types to view * fix tests * clippy and format fixes Co-authored-by: Keith Simmons <keithsim@microsoft.com>
* Add other cursor shapeIvan Tham2021-06-15
|
* Inline tui as helix-tui fork.Blaž Hrastnik2021-05-09
We only rely on some of the rendering primitives and implement our Cursive-style compositor on top.