Checkpointing after some debugging
This commit is contained in:
parent
1c13b41040
commit
8e4c54ab61
2 changed files with 26 additions and 4 deletions
|
@ -484,6 +484,7 @@ mod tests {
|
||||||
let (chunks, _) = build_chunks(
|
let (chunks, _) = build_chunks(
|
||||||
term.lock().renderable_content().display_iter,
|
term.lock().renderable_content().display_iter,
|
||||||
&Default::default(),
|
&Default::default(),
|
||||||
|
0.,
|
||||||
);
|
);
|
||||||
let content = chunks.iter().map(|e| e.0.trim()).collect::<String>();
|
let content = chunks.iter().map(|e| e.0.trim()).collect::<String>();
|
||||||
content.contains("7")
|
content.contains("7")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use alacritty_terminal::{
|
use alacritty_terminal::{
|
||||||
ansi::Color as AnsiColor,
|
ansi::Color as AnsiColor,
|
||||||
grid::{GridIterator, Indexed},
|
grid::{Dimensions, GridIterator, Indexed},
|
||||||
index::Point,
|
index::Point,
|
||||||
term::{
|
term::{
|
||||||
cell::{Cell, Flags},
|
cell::{Cell, Flags},
|
||||||
|
@ -121,8 +121,13 @@ impl Element for TerminalEl {
|
||||||
let term = view_handle.read(cx).term.lock();
|
let term = view_handle.read(cx).term.lock();
|
||||||
let content = term.renderable_content();
|
let content = term.renderable_content();
|
||||||
|
|
||||||
|
//TODO: Remove
|
||||||
|
// dbg!("*******");
|
||||||
|
// dbg!(cur_size.columns());
|
||||||
|
|
||||||
//And we're off! Begin layouting
|
//And we're off! Begin layouting
|
||||||
let (chunks, line_count) = build_chunks(content.display_iter, &terminal_theme);
|
let (chunks, line_count) =
|
||||||
|
build_chunks(content.display_iter, &terminal_theme, cell_width.0);
|
||||||
|
|
||||||
let shaped_lines = layout_highlighted_chunks(
|
let shaped_lines = layout_highlighted_chunks(
|
||||||
chunks
|
chunks
|
||||||
|
@ -135,6 +140,11 @@ impl Element for TerminalEl {
|
||||||
line_count,
|
line_count,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//TODO: Remove
|
||||||
|
// for shaped_line in &shaped_lines {
|
||||||
|
// dbg!(shaped_line.width());
|
||||||
|
// }
|
||||||
|
|
||||||
let backgrounds = chunks
|
let backgrounds = chunks
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|(_, _, line_span)| line_span != &RectSpan::default())
|
.filter(|(_, _, line_span)| line_span != &RectSpan::default())
|
||||||
|
@ -290,6 +300,7 @@ impl Element for TerminalEl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///Configures a text style from the current settings.
|
||||||
fn make_text_style(font_cache: &FontCache, settings: &Settings) -> TextStyle {
|
fn make_text_style(font_cache: &FontCache, settings: &Settings) -> TextStyle {
|
||||||
TextStyle {
|
TextStyle {
|
||||||
color: settings.theme.editor.text_color,
|
color: settings.theme.editor.text_color,
|
||||||
|
@ -304,6 +315,7 @@ fn make_text_style(font_cache: &FontCache, settings: &Settings) -> TextStyle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///Configures a size info object from the given information.
|
||||||
fn make_new_size(
|
fn make_new_size(
|
||||||
constraint: SizeConstraint,
|
constraint: SizeConstraint,
|
||||||
cell_width: &CellWidth,
|
cell_width: &CellWidth,
|
||||||
|
@ -324,6 +336,7 @@ fn make_new_size(
|
||||||
pub(crate) fn build_chunks(
|
pub(crate) fn build_chunks(
|
||||||
grid_iterator: GridIterator<Cell>,
|
grid_iterator: GridIterator<Cell>,
|
||||||
theme: &TerminalStyle,
|
theme: &TerminalStyle,
|
||||||
|
em_width: f32,
|
||||||
) -> (Vec<(String, Option<HighlightStyle>, RectSpan)>, usize) {
|
) -> (Vec<(String, Option<HighlightStyle>, RectSpan)>, usize) {
|
||||||
let mut line_count: usize = 0;
|
let mut line_count: usize = 0;
|
||||||
//Every `group_by()` -> `into_iter()` pair needs to be seperated by a local variable so
|
//Every `group_by()` -> `into_iter()` pair needs to be seperated by a local variable so
|
||||||
|
@ -356,8 +369,16 @@ pub(crate) fn build_chunks(
|
||||||
.chain(iter::once(("\n".to_string(), None, Default::default())))
|
.chain(iter::once(("\n".to_string(), None, Default::default())))
|
||||||
.collect::<Vec<(String, Option<HighlightStyle>, RectSpan)>>()
|
.collect::<Vec<(String, Option<HighlightStyle>, RectSpan)>>()
|
||||||
})
|
})
|
||||||
//We have a Vec<Vec<>> (Vec of lines of styled chunks), flatten to just Vec<> (the styled chunks)
|
//TODO: Remove
|
||||||
|
// .inspect(|line_chunks| {
|
||||||
|
// let mut line_len = 0;
|
||||||
|
// for chunk in line_chunks {
|
||||||
|
// line_len += chunk.0.len();
|
||||||
|
// }
|
||||||
|
// dbg!((line_len, line_len as f32 * em_width));
|
||||||
|
// })
|
||||||
.flatten()
|
.flatten()
|
||||||
|
//We have a Vec<Vec<>> (Vec of lines of styled chunks), flatten to just Vec<> (the styled chunks)
|
||||||
.collect::<Vec<(String, Option<HighlightStyle>, RectSpan)>>();
|
.collect::<Vec<(String, Option<HighlightStyle>, RectSpan)>>();
|
||||||
(result, line_count)
|
(result, line_count)
|
||||||
}
|
}
|
||||||
|
@ -398,7 +419,7 @@ fn get_cursor_position(
|
||||||
) -> Option<Vector2F> {
|
) -> Option<Vector2F> {
|
||||||
let cursor_line = cursor_point.line.0 as usize + display_offset;
|
let cursor_line = cursor_point.line.0 as usize + display_offset;
|
||||||
shaped_lines.get(cursor_line).map(|layout_line| {
|
shaped_lines.get(cursor_line).map(|layout_line| {
|
||||||
let cursor_x = layout_line.x_for_index(cursor_point.column.0);
|
let cursor_x = layout_line.x_for_index(cursor_point.column.0 + 3);
|
||||||
vec2f(cursor_x, cursor_line as f32 * line_height.0)
|
vec2f(cursor_x, cursor_line as f32 * line_height.0)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue