aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock9
-rw-r--r--helix-core/Cargo.toml2
-rw-r--r--helix-core/src/graphemes.rs16
3 files changed, 18 insertions, 9 deletions
diff --git a/Cargo.lock b/Cargo.lock
index b089ac56..6d51546a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -266,7 +266,7 @@ dependencies = [
"toml",
"tree-sitter",
"unicode-general-category",
- "unicode-segmentation 1.7.1 (git+https://github.com/unicode-rs/unicode-segmentation.git)",
+ "unicode-segmentation",
"unicode-width",
]
@@ -332,7 +332,7 @@ dependencies = [
"cassowary",
"crossterm",
"serde",
- "unicode-segmentation 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-segmentation",
"unicode-width",
]
@@ -992,11 +992,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
[[package]]
-name = "unicode-segmentation"
-version = "1.7.1"
-source = "git+https://github.com/unicode-rs/unicode-segmentation.git#58d73acf0e92f9806619fa79c3138dd410bca216"
-
-[[package]]
name = "unicode-width"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/helix-core/Cargo.toml b/helix-core/Cargo.toml
index e205af08..84886aa6 100644
--- a/helix-core/Cargo.toml
+++ b/helix-core/Cargo.toml
@@ -17,7 +17,7 @@ helix-syntax = { path = "../helix-syntax" }
ropey = "1.2"
smallvec = "1.4"
tendril = "0.4.2"
-unicode-segmentation = { git = "https://github.com/unicode-rs/unicode-segmentation.git" }
+unicode-segmentation = "1.7.1"
unicode-width = "0.1"
unicode-general-category = "0.4.0"
# slab = "0.4.2"
diff --git a/helix-core/src/graphemes.rs b/helix-core/src/graphemes.rs
index 9844a343..af740f61 100644
--- a/helix-core/src/graphemes.rs
+++ b/helix-core/src/graphemes.rs
@@ -3,6 +3,8 @@ use ropey::{iter::Chunks, str_utils::byte_to_char_idx, RopeSlice};
use unicode_segmentation::{GraphemeCursor, GraphemeIncomplete};
use unicode_width::UnicodeWidthStr;
+use std::fmt;
+
#[must_use]
pub fn grapheme_width(g: &str) -> usize {
if g.as_bytes()[0] <= 127 {
@@ -147,7 +149,7 @@ pub fn is_grapheme_boundary(slice: RopeSlice, char_idx: usize) -> bool {
}
/// An iterator over the graphemes of a `RopeSlice`.
-#[derive(Debug, Clone)]
+#[derive(Clone)]
pub struct RopeGraphemes<'a> {
text: RopeSlice<'a>,
chunks: Chunks<'a>,
@@ -156,6 +158,18 @@ pub struct RopeGraphemes<'a> {
cursor: GraphemeCursor,
}
+impl<'a> fmt::Debug for RopeGraphemes<'a> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("RopeGraphemes")
+ .field("text", &self.text)
+ .field("chunks", &self.chunks)
+ .field("cur_chunk", &self.cur_chunk)
+ .field("cur_chunk_start", &self.cur_chunk_start)
+ // .field("cursor", &self.cursor)
+ .finish()
+ }
+}
+
impl<'a> RopeGraphemes<'a> {
#[must_use]
pub fn new(slice: RopeSlice) -> RopeGraphemes {