diff --git a/CHANGELOG.md b/CHANGELOG.md
index 319f5d54..c595c11c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,11 +4,14 @@
- [r3bl-cmdr](#r3bl-cmdr)
+ - [Next Release](#next-release)
- [v0.0.11 2024-01-14](#v0011-2024-01-14)
- [v0.0.10 2024-01-02](#v0010-2024-01-02)
- [v0.0.9 2023-12-31](#v009-2023-12-31)
- [v0.0.8 2023-12-22](#v008-2023-12-22)
- [r3bl_tuify](#r3bl_tuify)
+ - [v0.1.26 2024-04-15](#v0126-2024-04-15)
+ - [v0.1.25 2024-01-14](#v0125-2024-01-14)
- [v0.1.24 2023-12-31](#v0124-2023-12-31)
- [v0.1.23 2023-12-22](#v0123-2023-12-22)
- [v0.1.22 2023-12-20](#v0122-2023-12-20)
@@ -18,6 +21,8 @@
- [v0.1.18 2023-10-17](#v0118-2023-10-17)
- [v0.1.17 2023-10-14](#v0117-2023-10-14)
- [r3bl_tui](#r3bl_tui)
+ - [v0.5.3 2024-04-15](#v053-2024-04-15)
+ - [v0.5.2 2024-01-14](#v052-2024-01-14)
- [v0.5.1 2024-01-09](#v051-2024-01-09)
- [v0.5.0 2023-12-31](#v050-2023-12-31)
- [v0.4.0 2023-12-22](#v040-2023-12-22)
@@ -30,6 +35,7 @@
- [v0.3.2 2023-03-06](#v032-2023-03-06)
- [v0.3.1 2023-03-06](#v031-2023-03-06)
- [r3bl_rs_utils_core](#r3bl_rs_utils_core)
+ - [v0.9.13 2024-04-15](#v0913-2024-04-15)
- [v0.9.12 2024-01-07](#v0912-2024-01-07)
- [v0.9.11 2024-01-02](#v0911-2024-01-02)
- [v0.9.10 2023-12-22](#v0910-2023-12-22)
@@ -46,6 +52,8 @@
- [v0.9.7 2023-10-21](#v097-2023-10-21)
- [v0.9.6 2023-10-17](#v096-2023-10-17)
- [v0.9.5 2023-10-14](#v095-2023-10-14)
+- [r3bl_terminal_async](#r3bl_terminal_async)
+ - [v0.3.0 2024-04-15](#v030-2024-04-15)
- [r3bl_ansi_color](#r3bl_ansi_color)
- [v0.6.9 2023-10-21](#v069-2023-10-21)
- [v0.6.8 2023-10-16](#v068-2023-10-16)
@@ -74,6 +82,17 @@
## `r3bl-cmdr`
+### Next Release
+
+
+- Changed:
+ - Use the latest deps:
+ - `r3bl_tui` version `0.5.3`.
+ - `r3bl_rs_utils_core` version `0.9.13`.
+- Fixed:
+ - TBD: markdown parser issues
+ - TBD: editor issues
+
### v0.0.11 (2024-01-14)
@@ -134,7 +153,18 @@
## `r3bl_tuify`
+### v0.1.26 (2024-04-15)
+
+
+- Updated:
+ - Make `clip_string_to_width_with_ellipsis` pub so that other crates can use it (eg:
+ `r3bl_terminal_async`).
+ - Change the names of enums to be more readable.
+ - `IsTTYResult::IsTTY` -> `TTYResult::IsInteractive`.
+ - `IsTTYResult::IsNotTTY` -> `TTYResult::IsNotInteractive`.
+
### v0.1.25 (2024-01-14)
+
- Updated:
- Dependency updated `reedline` version `0.28.0`, `r3bl_rs_utils_core` version `0.9.12`.
@@ -228,7 +258,15 @@
## `r3bl_tui`
+### v0.5.3 (2024-04-15)
+
+
+- Updated:
+ - Dependency changes inherited from `r3bl_rs_utils_core` version `0.9.13`.
+ - Lots of clippy fixes.
+
### v0.5.2 (2024-01-14)
+
- Updated:
- Dependency updated `reedline` version `0.28.0`, `r3bl_rs_utils_core` version `0.9.12`.
@@ -449,10 +487,18 @@
## `r3bl_rs_utils_core`
+### v0.9.13 (2024-04-15)
+
+
+- Changed:
+ - Removed `syntect` dep.
+ - Rename `Style` to `TuiStyle`.
+ - Lots of cargo clippy fixes.
+
### v0.9.12 (2024-01-07)
-Added:
+- Added:
- Add `generate_friendly_random_id()` to generate human readable and friendly IDs.
### v0.9.11 (2024-01-02)
@@ -565,6 +611,21 @@ Added:
- Dependency on `simplelog` is replaced w/ `r3bl_simple_logger` (which is in the
`r3bl_rs_utils` repo workspace as `simple_logger`).
+## `r3bl_terminal_async`
+
+
+### v0.3.0 (2024-04-15)
+
+
+This is the first release of this crate.
+
+- Added:
+ - A new crate in this repo that allows for async terminal input and output. This is
+ useful for building TUIs that are async and can handle input and output in parallel.
+ To build apps that are not full TUI, this is a great option to create interactive CLIs
+ and REPLs that are fully async and multithreaded (with input and output) with a really
+ powerful (multi) line editor and prompt.
+
## `r3bl_ansi_color`
diff --git a/Cargo.lock b/Cargo.lock
index 05cd33a4..2d47e474 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -678,9 +678,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
[[package]]
name = "h2"
-version = "0.3.24"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
dependencies = [
"bytes",
"fnv",
@@ -949,12 +949,9 @@ dependencies = [
[[package]]
name = "line-wrap"
-version = "0.1.1"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
-dependencies = [
- "safemem",
-]
+checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e"
[[package]]
name = "linked-hash-map"
@@ -1040,9 +1037,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.8.10"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
"libc",
"log",
@@ -1348,9 +1345,9 @@ checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
[[package]]
name = "plist"
-version = "1.6.0"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
+checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9"
dependencies = [
"base64",
"indexmap",
@@ -1773,12 +1770,6 @@ version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
-[[package]]
-name = "safemem"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-
[[package]]
name = "same-file"
version = "1.0.6"
diff --git a/tui/src/lib.rs b/tui/src/lib.rs
index e5db7a26..07a4df34 100644
--- a/tui/src/lib.rs
+++ b/tui/src/lib.rs
@@ -429,7 +429,7 @@
//! 2. [App] - This is where you write your code. You pass in a [App] to the [TerminalWindow] to
//! bootstrap your TUI app. You can just use [App] to build your app, if it is a simple one & you
//! don't really need any sophisticated layout or styling. But if you want layout and styling,
-//! now we have to deal with [FlexBox], [Component], and [r3bl_rs_utils_core::Style].
+//! now we have to deal with [FlexBox], [Component], and [r3bl_rs_utils_core::TuiStyle].
//!
//! # Layout and styling
//!
diff --git a/tui/src/tui/color_wheel/tui_styled_text.rs b/tui/src/tui/color_wheel/tui_styled_text.rs
index 606f3372..4b6ecc83 100644
--- a/tui/src/tui/color_wheel/tui_styled_text.rs
+++ b/tui/src/tui/color_wheel/tui_styled_text.rs
@@ -23,7 +23,7 @@ use crate::*;
#[derive(Debug, Clone, Default)]
pub struct TuiStyledText(pub TuiStyle, pub UnicodeString);
-/// Use [styled_texts!] macro for easier construction.
+/// Use [tui_styled_texts!] macro for easier construction.
pub type TuiStyledTexts = List;
mod tui_styled_text_impl {
diff --git a/tui/src/tui/lolcat/lolcat_impl.rs b/tui/src/tui/lolcat/lolcat_impl.rs
index 82cb1162..3db1f6ce 100644
--- a/tui/src/tui/lolcat/lolcat_impl.rs
+++ b/tui/src/tui/lolcat/lolcat_impl.rs
@@ -57,7 +57,7 @@ impl Debug for Lolcat {
impl Lolcat {
/// This function does not respect [r3bl_ansi_color::global_color_support::detect()]
/// (it will always colorize to truecolor regardless of terminal limitations). Use
- /// [ColorWheel] if you want to respect
+ /// [crate::ColorWheel] if you want to respect
/// [r3bl_ansi_color::global_color_support::detect].
pub fn colorize_to_styled_texts(&mut self, input: &UnicodeString) -> TuiStyledTexts {
let mut acc = TuiStyledTexts::default();
diff --git a/tui/src/tui/syntax_highlighting/intermediate_types.rs b/tui/src/tui/syntax_highlighting/intermediate_types.rs
index 6cb9dfa1..cab12b5e 100644
--- a/tui/src/tui/syntax_highlighting/intermediate_types.rs
+++ b/tui/src/tui/syntax_highlighting/intermediate_types.rs
@@ -28,7 +28,7 @@
//! strings).
//! 2. This intermediate type is [clipped](StyleUSSpanLine::clip) to the visible area of the editor
//! component (based on scroll state in viewport). And finally that is converted to a
-//! [crate::StyledTexts].
+//! [crate::TuiStyledTexts].
use r3bl_rs_utils_core::*;
@@ -134,7 +134,7 @@ impl StyleUSSpanLine {
}
/// Clip the text (in one line) in this range: [ `start_col` .. `end_col` ]. Each line is
- /// represented as a [List] of ([Style], [US])`s.
+ /// represented as a [List] of ([TuiStyle], [US])`s.
pub fn clip(
&self,
scroll_offset_col_index: ChUnit,
diff --git a/tui/src/tui/syntax_highlighting/md_parser_syn_hi/mod.rs b/tui/src/tui/syntax_highlighting/md_parser_syn_hi/mod.rs
index cf2c284f..b6d714fb 100644
--- a/tui/src/tui/syntax_highlighting/md_parser_syn_hi/mod.rs
+++ b/tui/src/tui/syntax_highlighting/md_parser_syn_hi/mod.rs
@@ -19,7 +19,7 @@
//! 1. [crate::md_parser] - Responsible for parsing markdown into a [crate::MdDocument] data
//! structure.
//! 2. [crate::syntax_highlighting] - Responsible for converting a [crate::MdDocument] into a list
-//! of tuples of [r3bl_rs_utils_core::Style] and [String].
+//! of tuples of [r3bl_rs_utils_core::TuiStyle] and [String].
//! 3. [crate::editor] - Responsible for displaying the [crate::MdDocument] to the user.
// Attach.
diff --git a/tui/src/tui/syntax_highlighting/syntect_to_styled_text_conversion.rs b/tui/src/tui/syntax_highlighting/syntect_to_styled_text_conversion.rs
index f2f991af..27653b61 100644
--- a/tui/src/tui/syntax_highlighting/syntect_to_styled_text_conversion.rs
+++ b/tui/src/tui/syntax_highlighting/syntect_to_styled_text_conversion.rs
@@ -26,7 +26,7 @@
//!
//! This requires the conversion code to perform the following steps:
//! 1. Convert the syntect [SyntectStyleStrSpanLine] into a [StyleUSSpanLine].
-//! 2. Then convert [StyleUSSpanLine] into a [StyledTexts].
+//! 2. Then convert [StyleUSSpanLine] into a [TuiStyledTexts].
use syntect::parsing::SyntaxSet;
diff --git a/tui/src/tui/terminal_lib_backends/crossterm_backend/offscreen_buffer_paint_impl.rs b/tui/src/tui/terminal_lib_backends/crossterm_backend/offscreen_buffer_paint_impl.rs
index e9f0ba3f..5145ce30 100644
--- a/tui/src/tui/terminal_lib_backends/crossterm_backend/offscreen_buffer_paint_impl.rs
+++ b/tui/src/tui/terminal_lib_backends/crossterm_backend/offscreen_buffer_paint_impl.rs
@@ -69,9 +69,9 @@ impl OffscreenBufferPaint for OffscreenBufferPaintImplCrossterm {
/// Process each [PixelChar] in [OffscreenBuffer] and generate a [RenderOp] for it. Return a
/// [RenderOps] containing all the [RenderOp]s.
///
- /// > Note that each [PixelChar] gets the full [Style] embedded in it (not just a part of it
+ /// > Note that each [PixelChar] gets the full [TuiStyle] embedded in it (not just a part of it
/// > that is different than the previous char). This means that it is possible to quickly
- /// > "diff" between 2 of them, since the [Style] is part of the [PixelChar]. This is important
+ /// > "diff" between 2 of them, since the [TuiStyle] is part of the [PixelChar]. This is important
/// > for selective re-rendering of the [OffscreenBuffer].
///
/// Here's the algorithm used in this function using pseudo-code:
diff --git a/tui/src/tui/terminal_lib_backends/render_op.rs b/tui/src/tui/terminal_lib_backends/render_op.rs
index c9fc67ae..98183211 100644
--- a/tui/src/tui/terminal_lib_backends/render_op.rs
+++ b/tui/src/tui/terminal_lib_backends/render_op.rs
@@ -251,20 +251,20 @@ pub enum RenderOp {
ClearScreen,
- /// Directly set the fg color for crossterm w/out using [Style].
+ /// Directly set the fg color for crossterm w/out using [TuiStyle].
SetFgColor(TuiColor),
- /// Directly set the bg color for crossterm w/out using [Style].
+ /// Directly set the bg color for crossterm w/out using [TuiStyle].
SetBgColor(TuiColor),
ResetColor,
- /// Translate [Style] into fg and bg colors for crossterm. Note that this does not
+ /// Translate [TuiStyle] into fg and bg colors for crossterm. Note that this does not
/// apply attributes (bold, italic, underline, strikethrough, etc). If you need to
/// apply attributes, use [RenderOp::PaintTextWithAttributes] instead.
ApplyColors(Option),
- /// Translate [Style] into *only* attributes for crossterm (bold, italic, underline,
+ /// Translate [TuiStyle] into *only* attributes for crossterm (bold, italic, underline,
/// strikethrough, etc) and not colors. If you need to apply color, use
/// [RenderOp::ApplyColors] instead.
///