aboutsummaryrefslogtreecommitdiff
path: root/helix-tui
Commit message (Collapse)AuthorAge
* Add narrow no-break space support (#9604)Quentin2024-03-25
|
* Respect undercurl config even with no terminfo (#9897)Khang Nguyen Duy2024-03-19
| | | | | | | | | | | | | | I have just found out that my recent Windows Terminal version supported rendering undercurl (see https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-20-release ). However, looking at the source, terminfo is required for helix to emit the undercurl control code, which isn't available on Windows AFAIK. This commit make helix respects the `editor.undercurl` option when there is no terminfo. Tested on Windows Terminal Preview 1.20 Signed-off-by: Khang Nguyen <khang.nguyenduycse@hcmut.edu.vn>
* build(deps): bump the rust-dependencies group with 3 updates (#9929)dependabot[bot]2024-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps the rust-dependencies group with 3 updates: [bitflags](https://github.com/bitflags/bitflags), [toml](https://github.com/toml-rs/toml) and [lsp-types](https://github.com/gluon-lang/lsp-types). Updates `bitflags` from 2.4.2 to 2.5.0 - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.4.2...2.5.0) Updates `toml` from 0.8.10 to 0.8.12 - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.10...toml-v0.8.12) Updates `lsp-types` from 0.95.0 to 0.95.1 - [Changelog](https://github.com/gluon-lang/lsp-types/blob/master/CHANGELOG.md) - [Commits](https://github.com/gluon-lang/lsp-types/compare/v0.95.0...v0.95.1) --- updated-dependencies: - dependency-name: bitflags dependency-type: direct:production update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: lsp-types dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Avoid cloning the whole paragraph content just for rendering (#9739)Mo2024-02-27
| | | | | * Avoid cloning the whole paragraph content just for rendering * Fix tests
* build(deps): bump unicode-segmentation from 1.10.1 to 1.11.0 (#9617)dependabot[bot]2024-02-13
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Handle failure when enabling bracketed paste (#9353)Ahmed Hagi2024-01-18
| | | | | | | | | * match instead of crash * pulling bracketedpaste out, refactor, tracking for bracketed paste * sending disable bracketed paste only when supports true * move disable bracketed paste to throwaway
* build(deps): bump once_cell from 1.18.0 to 1.19.0 (#9053)dependabot[bot]2023-12-12
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* use workspace inheritance for common version (#8925)Skyler Hawthorne2023-12-05
|
* set Cargo feature resolver to v2 (#8917)Fomalhaut Weisszwerg2023-11-27
| | | | | | | | | | | | | | | | | | | * fix: version of Cargo feature resolver. This commit solve the ambiguity to determin the version of resolver. To get more detail, see the following two documents: - https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions - https://doc.rust-lang.org/edition-guide/rust-2021/default-cargo-resolver.html * unified: Rust edition in all workspaces. Now, the Rust 2021 is available in all workspaces. * fined up: Cargo.toml by using workspace inheritance. To get more detail of the `workspace.package` table, see a following document: - https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table
* bump MSRV to 1.70.0 (#8877)Cole Helbling2023-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | * rust-toolchain.toml: bump MSRV to 1.70.0 With Firefox 120 released on 21 November 2023, the MSRV is now 1.70.0. * Fix cargo fmt with Rust 1.70.0 * Fix cargo clippy with Rust 1.70.0 * Fix cargo doc with Rust 1.70.0 * rust-toolchain.toml: add clippy component * .github: bump dtolnay/rust-toolchain to 1.70 * helix-term: bump rust-version to 1.70 * helix-view/gutter: use checked_ilog10 to count digits * helix-core/syntax: use MAIN_SEPARATOR_STR constant * helix-view/handlers/dap: use Display impl for displaying process spawn error * WIP: helix-term/commands: use checked math to assert ranges cannot overlap
* Use terminfo to reset terminal cursor style (#8591)Ryan Mehri2023-10-26
|
* crossterm: Handle 'hidden' modifier (#8120)Michael Davis2023-08-31
| | | | Crossterm supports the 'hidden' SGR parameter but we previously didn't set the attribute when the "hidden" modifier was specified in a theme.
* Handle switch from crossterm::Result to io::ResultMichael Davis2023-08-22
|
* build(deps): bump crossterm from 0.26.1 to 0.27.0dependabot[bot]2023-08-22
| | | | | | | | | | | | | | | Bumps [crossterm](https://github.com/crossterm-rs/crossterm) from 0.26.1 to 0.27.0. - [Release notes](https://github.com/crossterm-rs/crossterm/releases) - [Changelog](https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md) - [Commits](https://github.com/crossterm-rs/crossterm/compare/0.26.1...0.27.0) --- updated-dependencies: - dependency-name: crossterm dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* Stop Terminal::drop from overriding work of Terminal::restore. (#7931)Dillard Robertson2023-08-15
| | | | | | | | | | | | | | When Application::run is exiting, either Terminal::restore or Terminal::force_restore will be called depending on if a panic occured or not. Both of these functions will reset the cursor to terminal's default. After this is done, Terminal::drop will be called. If terminal.cursor_kind == Hidden, then the cursor will be reset to a CursorKind::Block, undoing the work of restore or force_restore. This commit just removes the drop implementation, as its job is already better handled in restore and force_restore.
* build(deps): bump bitflags from 2.3.3 to 2.4.0 (#7943)dependabot[bot]2023-08-15
| | | | | | | | | | | | | | | | Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.3.3 to 2.4.0. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.3.3...2.4.0) --- updated-dependencies: - dependency-name: bitflags dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix style overwriting in table rows with multiple cells (#7281)Michael Davis2023-06-08
|
* build(deps): bump once_cell from 1.17.2 to 1.18.0 (#7248)dependabot[bot]2023-06-06
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump bitflags from 2.2.1 to 2.3.1 (#7117)dependabot[bot]2023-05-23
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix warnings from clippy (#7013)ZJPzjp2023-05-11
| | | | | * Fix warnings from clippy * revert MAIN_SEPARATOR_STR
* build(deps): bump termini from 0.1.4 to 1.0.0 (#7001)dependabot[bot]2023-05-09
| | | | | | | | | | | | | | | Bumps [termini](https://github.com/pascalkuthe/termini) from 0.1.4 to 1.0.0. - [Release notes](https://github.com/pascalkuthe/termini/releases) - [Commits](https://github.com/pascalkuthe/termini/compare/v0.1.4...v1.0.0) --- updated-dependencies: - dependency-name: termini dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump bitflags from 2.1.0 to 2.2.1 (#6869)dependabot[bot]2023-04-25
| | | | | | | | | | | | | | | | Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.1.0 to 2.2.1. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.1.0...2.2.1) --- updated-dependencies: - dependency-name: bitflags dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* tui: Allow toggling mouse capture at runtime (#6675)Michael Davis2023-04-21
| | | | | This picks up changes to the `editor.mouse` option at runtime - either through `:set-option` or `:config-reload`. When the value changes, we tell the terminal to enable or disable mouse capture sequences.
* build(deps): bump bitflags from 2.0.2 to 2.1.0 (#6699)dependabot[bot]2023-04-11
| | | | | | | | | | | | | | | | Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.0.2 to 2.1.0. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.0.2...2.1.0) --- updated-dependencies: - dependency-name: bitflags dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix typos (#6643)Daniel Sedlak2023-04-07
|
* Performant and correct set_spans_truncatedPascal Kuthe2023-03-31
| | | | | | | | | | the previous implementation used set_string_truncated. This is not only awkward with this kind of "streaming" string (and therefore lead to an inefficient and incorrect initial implementation) but that function also truncates strings of width 1 when there is only a single char available. The implementation here is performant, correct and also handles the single width case correctly.
* Truncate paths in the file picker (#6410)mWalrus2023-03-31
|
* tui: Handle keyboard enhancement check failure (#6438)Michael Davis2023-03-29
| | | | | | | | | If the terminal doesn't send the primary device attributes response to the query, the `terminal::supports_keyboard_enhancement` function from crossterm may timeout and return an Err. We should interpret this error to mean that the terminal doesn't support the keyboard enhancement protocol rather than an error in claiming the terminal.
* Fix clippy lints (#6454)Philipp Mildenberger2023-03-27
|
* build(deps): bump bitflags from 1.3.2 to 2.0.2 (#6387)dependabot[bot]2023-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * build(deps): bump bitflags from 1.3.2 to 2.0.2 Bumps [bitflags](https://github.com/bitflags/bitflags) from 1.3.2 to 2.0.2. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/1.3.2...2.0.2) --- updated-dependencies: - dependency-name: bitflags dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * deps: Resolve bitflags 2.0 breaking changes Bitflags 2.0 release made some breaking changes requiring some small changes to the Helix codebase. Almost all of the necessary changes are to manually `#[derive(..)]` trait implementations which are no longer automatically derived for all bitflags. All of these were previously automatically derived: #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy] I have derived the minimum traits for each bitflag type. The other change was to the `.bits` field. This is now a `.bits()` method so the usage of this has been updated in the `Borders` type. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Fix highlighting in picker with multiple columns (#6333)exp802023-03-18
|
* Add undercurl config option #6196 (#6253)Jonatan Pettersson2023-03-14
| | | If set to 'true' this option will force terminal undercurl support.
* 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.
* Fix clippy 1.67 warnings (#5697)Miguel Madrid-Mencía2023-01-27
|
* Replace menu::Item::{row, label} with format()Gokul Soumya2023-01-18
|
* Minimize allocation when converting table rows to stringGokul Soumya2023-01-18
|
* Use upstream implementation of table column calculationGokul Soumya2023-01-18
| | | | Changed in https://github.com/fdehau/tui-rs/commit/a68e38e59e6735c0a99139303b1609669d2c38da.
* Reuse table in pickerGokul Soumya2023-01-18
|
* Detect WezTerm and mark it as undercurl/Smulx capableBlaž Hrastnik2022-12-02
|
* update `x_offset` calculation in Buffer::set_string_truncated (#3839)kristopherbullinger2022-11-17
| | | | when `truncate_start` is `true`, the `x_offset` is now properly updated according to the width of the content or the truncated length.
* Resolve a bunch of upcoming clippy lintsBlaž Hrastnik2022-11-04
|
* Allow the area to be bigger than u16 (width and height remain u16) (#4318)A-Walrus2022-10-26
| | | | Now the editor can fill **very** large terminals. Changed/removed tests which check the truncating behaviour.
* 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).