From 3a20fbfe944f1afca4f722ea1280c059701c41d8 Mon Sep 17 00:00:00 2001 From: Stefan Holderbach Date: Mon, 4 Sep 2023 02:22:25 +0200 Subject: [PATCH] Update `crossterm`/`ratatui`/dev-`reedline` (#10137) # Description This updates most crates to 0.27 `crossterm`. To do so we need the most recent `ratatui` `reedline` can now update as well. See https://github.com/nushell/reedline/pull/625 Sadly this introduces some crate duplication again as there are some other dependency updates. Furthermore we have another crate depending on 0.26.1 crossterm (`comfy-table` that some how gets pulled in by polars) # User-Facing Changes 2 additional mouse events detected by `input listen` # Tests + Formatting None --- Cargo.lock | 81 ++++++++++++++----- Cargo.toml | 4 +- crates/nu-cli/Cargo.toml | 2 +- crates/nu-command/Cargo.toml | 2 +- .../src/platform/input/input_listen.rs | 2 + crates/nu-explore/Cargo.toml | 4 +- 6 files changed, 67 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 01029fcbdc..50a5e40884 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -686,7 +686,7 @@ version = "7.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ab77dbd8adecaf3f0db40581631b995f312a8a5ae3aa9993188bb8f23d83a5b" dependencies = [ - "crossterm", + "crossterm 0.26.1", "strum 0.24.1", "strum_macros 0.24.3", "unicode-width", @@ -808,7 +808,7 @@ dependencies = [ "clap", "criterion-plot", "is-terminal", - "itertools", + "itertools 0.10.5", "num-traits", "once_cell", "oorandom", @@ -829,7 +829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools", + "itertools 0.10.5", ] [[package]] @@ -892,6 +892,22 @@ dependencies = [ "libc", "mio", "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" +dependencies = [ + "bitflags 2.3.3", + "crossterm_winapi", + "libc", + "mio", + "parking_lot", "serde", "signal-hook", "signal-hook-mio", @@ -1822,6 +1838,12 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "indoc" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4" + [[package]] name = "inotify" version = "0.9.6" @@ -1928,6 +1950,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.8" @@ -2567,7 +2598,7 @@ version = "0.84.1" dependencies = [ "assert_cmd", "criterion", - "crossterm", + "crossterm 0.27.0", "ctrlc", "log", "miette", @@ -2622,7 +2653,7 @@ name = "nu-cli" version = "0.84.1" dependencies = [ "chrono", - "crossterm", + "crossterm 0.27.0", "fancy-regex", "fuzzy-matcher", "is_executable", @@ -2708,7 +2739,7 @@ name = "nu-cmd-lang" version = "0.84.1" dependencies = [ "fancy-regex", - "itertools", + "itertools 0.10.5", "nu-ansi-term", "nu-engine", "nu-parser", @@ -2744,7 +2775,7 @@ dependencies = [ "chrono", "chrono-humanize", "chrono-tz", - "crossterm", + "crossterm 0.27.0", "csv", "dialoguer", "digest", @@ -2758,7 +2789,7 @@ dependencies = [ "htmlescape", "indexmap 2.0.0", "indicatif", - "itertools", + "itertools 0.10.5", "libc", "log", "lscolors", @@ -2843,7 +2874,7 @@ name = "nu-explore" version = "0.84.1" dependencies = [ "ansi-str", - "crossterm", + "crossterm 0.27.0", "lscolors", "nu-ansi-term", "nu-color-config", @@ -2880,7 +2911,7 @@ version = "0.84.1" dependencies = [ "bytesize", "chrono", - "itertools", + "itertools 0.10.5", "log", "nu-engine", "nu-path", @@ -3931,7 +3962,7 @@ checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" dependencies = [ "anstyle", "difflib", - "itertools", + "itertools 0.10.5", "predicates-core", ] @@ -4114,13 +4145,17 @@ dependencies = [ [[package]] name = "ratatui" -version = "0.20.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcc0d032bccba900ee32151ec0265667535c230169f5a011154cdcd984e16829" +checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.3.3", "cassowary", - "crossterm", + "crossterm 0.27.0", + "indoc", + "itertools 0.11.0", + "paste", + "strum 0.25.0", "unicode-segmentation", "unicode-width", ] @@ -4179,13 +4214,12 @@ dependencies = [ [[package]] name = "reedline" version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3defc4467a8909614bcb02cb304a3e8472c31f7a44e6c6c287eb9575b212bc4d" +source = "git+https://github.com/nushell/reedline.git?branch=main#31257a4c5413d4a262912359f515907b8295db5c" dependencies = [ "chrono", - "crossterm", + "crossterm 0.27.0", "fd-lock", - "itertools", + "itertools 0.10.5", "nu-ansi-term", "rusqlite", "serde", @@ -4682,9 +4716,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -4901,6 +4935,9 @@ name = "strum" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.1", +] [[package]] name = "strum_macros" @@ -5654,7 +5691,7 @@ checksum = "06c7a3bac6110ac062b7b422a442b7ee23e07209e2784a036654cab1e71bbafc" dependencies = [ "bstr 0.2.17", "const_format", - "itertools", + "itertools 0.10.5", "nom", "nom-supreme", "pori", diff --git a/Cargo.toml b/Cargo.toml index 81999866f4..6a8d9786b4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,7 @@ nu-utils = { path = "./crates/nu-utils", version = "0.84.1" } nu-ansi-term = "0.49.0" reedline = { version = "0.23.0", features = ["bashisms", "sqlite"] } -crossterm = "0.26" +crossterm = "0.27" ctrlc = "3.4" log = "0.4" miette = { version = "5.10", features = ["fancy-no-backtrace"] } @@ -163,7 +163,7 @@ bench = false # To use a development version of a dependency please use a global override here # changing versions in each sub-crate of the workspace is tedious [patch.crates-io] -# reedline = { git = "https://github.com/nushell/reedline.git", branch = "main"} +reedline = { git = "https://github.com/nushell/reedline.git", branch = "main"} # nu-ansi-term = {git = "https://github.com/nushell/nu-ansi-term.git", branch = "main"} # Criterion benchmarking setup diff --git a/crates/nu-cli/Cargo.toml b/crates/nu-cli/Cargo.toml index 142c121179..7003ebc0f4 100644 --- a/crates/nu-cli/Cargo.toml +++ b/crates/nu-cli/Cargo.toml @@ -28,7 +28,7 @@ nu-ansi-term = "0.49.0" reedline = { version = "0.23.0", features = ["bashisms", "sqlite"] } chrono = { default-features = false, features = ["std"], version = "0.4" } -crossterm = "0.26" +crossterm = "0.27" fancy-regex = "0.11" fuzzy-matcher = "0.3" is_executable = "1.0" diff --git a/crates/nu-command/Cargo.toml b/crates/nu-command/Cargo.toml index 69b7c0feef..b6b308e7f9 100644 --- a/crates/nu-command/Cargo.toml +++ b/crates/nu-command/Cargo.toml @@ -36,7 +36,7 @@ calamine = "0.21" chrono = { version = "0.4", features = ["std", "unstable-locales"], default-features = false } chrono-humanize = "0.2.3" chrono-tz = "0.8" -crossterm = "0.26" +crossterm = "0.27" csv = "1.2" dialoguer = { default-features = false, features = ["fuzzy-select"], version = "0.10" } digest = { default-features = false, version = "0.10" } diff --git a/crates/nu-command/src/platform/input/input_listen.rs b/crates/nu-command/src/platform/input/input_listen.rs index e974a6f0f8..f0ad136c51 100644 --- a/crates/nu-command/src/platform/input/input_listen.rs +++ b/crates/nu-command/src/platform/input/input_listen.rs @@ -380,6 +380,8 @@ fn create_mouse_event( MouseEventKind::Moved => "moved".to_string(), MouseEventKind::ScrollDown => "scroll_down".to_string(), MouseEventKind::ScrollUp => "scroll_up".to_string(), + MouseEventKind::ScrollLeft => "scroll_left".to_string(), + MouseEventKind::ScrollRight => "scroll_right".to_string(), }; let mut record = record! { diff --git a/crates/nu-explore/Cargo.toml b/crates/nu-explore/Cargo.toml index 62ee33738f..1d55bb9edc 100644 --- a/crates/nu-explore/Cargo.toml +++ b/crates/nu-explore/Cargo.toml @@ -22,7 +22,7 @@ nu-utils = { path = "../nu-utils", version = "0.84.1" } terminal_size = "0.2" strip-ansi-escapes = "0.2.0" -crossterm = "0.26" -ratatui = "0.20" +crossterm = "0.27" +ratatui = "0.23" ansi-str = "0.8" lscolors = { version = "0.15", default-features = false, features = ["nu-ansi-term"] }