From 114610f7dc5d6395ef5cce9111a363f7c8d879a4 Mon Sep 17 00:00:00 2001 From: Pascal Kuthe Date: Thu, 6 Oct 2022 20:46:24 +0200 Subject: [PATCH] switch to termini for terminfo --- Cargo.lock | 17 ++++++++++------- helix-tui/Cargo.toml | 2 +- helix-tui/src/backend/crossterm.rs | 6 +++--- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f980c4175..03b3a6d4f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -176,12 +176,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "cxterminfo" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da92c5e3aaf2cc1fea346d9b3bac0c59c6ffc1d1d46f18d991d449912a3e6f07" - [[package]] name = "dirs-next" version = "2.0.0" @@ -510,10 +504,10 @@ dependencies = [ "bitflags", "cassowary", "crossterm", - "cxterminfo", "helix-core", "helix-view", "serde", + "termini", "unicode-segmentation", ] @@ -1105,6 +1099,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "termini" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00733d628ac0a8bd4fd3171a28eb6c09759ae1b43d8b587eadebaccee01d01a3" +dependencies = [ + "dirs-next", +] + [[package]] name = "textwrap" version = "0.15.1" diff --git a/helix-tui/Cargo.toml b/helix-tui/Cargo.toml index 1c6a6a8d4..a4a1c389f 100644 --- a/helix-tui/Cargo.toml +++ b/helix-tui/Cargo.toml @@ -20,7 +20,7 @@ bitflags = "1.3" cassowary = "0.3" unicode-segmentation = "1.10" crossterm = { version = "0.25", optional = true } -cxterminfo = "0.2" +termini = "0.1" serde = { version = "1", "optional" = true, features = ["derive"]} helix-view = { version = "0.6", path = "../helix-view", features = ["term"] } helix-core = { version = "0.6", path = "../helix-core" } diff --git a/helix-tui/src/backend/crossterm.rs b/helix-tui/src/backend/crossterm.rs index 3e6dc5f59..4d8c66503 100644 --- a/helix-tui/src/backend/crossterm.rs +++ b/helix-tui/src/backend/crossterm.rs @@ -27,13 +27,13 @@ impl Capabilities { /// on the $TERM environment variable. If detection fails, returns /// a default value where no capability is supported. pub fn from_env_or_default() -> Self { - match cxterminfo::terminfo::TermInfo::from_env() { + match termini::TermInfo::from_env() { Err(_) => Capabilities::default(), Ok(t) => Capabilities { // Smulx, VTE: https://unix.stackexchange.com/a/696253/246284 // Su (used by kitty): https://sw.kovidgoyal.net/kitty/underlines - has_extended_underlines: t.get_ext_string("Smulx").is_some() - || *t.get_ext_bool("Su").unwrap_or(&false) + has_extended_underlines: t.extended_cap("Smulx").is_some() + || t.extended_cap("Su").is_some() || vte_version() >= Some(5102), }, }