mirror of
https://github.com/wez/wezterm.git
synced 2024-12-23 13:21:38 +03:00
bidi: remove stray debug logging, add reordered_runs method
This commit is contained in:
parent
a52ef48add
commit
c737fb66df
@ -133,6 +133,21 @@ impl<'a> Iterator for RunIter<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||||
|
pub struct ReorderedRun {
|
||||||
|
/// The direction for this run. Derived from the level.
|
||||||
|
pub direction: Direction,
|
||||||
|
|
||||||
|
/// Embedding level of this run.
|
||||||
|
pub level: Level,
|
||||||
|
|
||||||
|
/// The starting and ending codepoint indices for this run
|
||||||
|
pub range: Range<usize>,
|
||||||
|
|
||||||
|
/// The indices in their adjusted order
|
||||||
|
pub indices: Vec<usize>,
|
||||||
|
}
|
||||||
|
|
||||||
fn span_len(start: usize, levels: &[Level]) -> usize {
|
fn span_len(start: usize, levels: &[Level]) -> usize {
|
||||||
let starting_level = levels[start];
|
let starting_level = levels[start];
|
||||||
levels
|
levels
|
||||||
@ -171,6 +186,28 @@ impl BidiContext {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn reordered_runs(&self, line_range: Range<usize>) -> Vec<ReorderedRun> {
|
||||||
|
let (levels, reordered) = self.reorder_line(line_range);
|
||||||
|
let mut runs = vec![];
|
||||||
|
|
||||||
|
let mut idx = 0;
|
||||||
|
while idx < levels.len() {
|
||||||
|
let len = span_len(idx, &levels);
|
||||||
|
let level = levels[idx];
|
||||||
|
if !level.removed_by_x9() {
|
||||||
|
runs.push(ReorderedRun {
|
||||||
|
direction: level.direction(),
|
||||||
|
level,
|
||||||
|
range: idx..idx + len,
|
||||||
|
indices: reordered[idx..idx + len].to_vec(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
idx += len;
|
||||||
|
}
|
||||||
|
|
||||||
|
runs
|
||||||
|
}
|
||||||
|
|
||||||
/// `line_range` indicates a contiguous range of character indices
|
/// `line_range` indicates a contiguous range of character indices
|
||||||
/// in the paragraph set via `resolve_paragraph`.
|
/// in the paragraph set via `resolve_paragraph`.
|
||||||
/// This method returns the reordered set of indices for display
|
/// This method returns the reordered set of indices for display
|
||||||
@ -274,10 +311,7 @@ impl BidiContext {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log::error!("visual before retain: {:?}", visual);
|
|
||||||
visual.retain(|&i| i != DELETED);
|
visual.retain(|&i| i != DELETED);
|
||||||
log::error!("visual after retain: {:?}", visual);
|
|
||||||
|
|
||||||
visual
|
visual
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user