fix(ansi): pad line end when erasing characters (#2259)
This commit is contained in:
parent
aa17374d13
commit
263f5cbfd2
8 changed files with 85 additions and 77 deletions
|
|
@ -1616,10 +1616,17 @@ impl Grid {
|
||||||
}
|
}
|
||||||
self.output_buffer.update_line(self.cursor.y);
|
self.output_buffer.update_line(self.cursor.y);
|
||||||
}
|
}
|
||||||
pub fn erase_characters(&mut self, count: usize, empty_char_style: CharacterStyles) {
|
fn erase_characters(&mut self, count: usize, empty_char_style: CharacterStyles) {
|
||||||
let mut empty_character = EMPTY_TERMINAL_CHARACTER;
|
let mut empty_character = EMPTY_TERMINAL_CHARACTER;
|
||||||
empty_character.styles = empty_char_style;
|
empty_character.styles = empty_char_style;
|
||||||
let current_row = self.viewport.get_mut(self.cursor.y).unwrap();
|
let current_row = self.viewport.get_mut(self.cursor.y).unwrap();
|
||||||
|
|
||||||
|
// pad row if needed
|
||||||
|
if current_row.width_cached() < self.width {
|
||||||
|
let padding_count = self.width - current_row.width_cached();
|
||||||
|
let mut columns_padding = VecDeque::from(vec![EMPTY_TERMINAL_CHARACTER; padding_count]);
|
||||||
|
current_row.columns.append(&mut columns_padding);
|
||||||
|
}
|
||||||
for _ in 0..count {
|
for _ in 0..count {
|
||||||
let deleted_character = current_row.delete_and_return_character(self.cursor.x);
|
let deleted_character = current_row.delete_and_return_character(self.cursor.x);
|
||||||
let excess_width = deleted_character
|
let excess_width = deleted_character
|
||||||
|
|
@ -1629,6 +1636,7 @@ impl Grid {
|
||||||
for _ in 0..excess_width {
|
for _ in 0..excess_width {
|
||||||
current_row.insert_character_at(empty_character, self.cursor.x);
|
current_row.insert_character_at(empty_character, self.cursor.x);
|
||||||
}
|
}
|
||||||
|
current_row.push(empty_character);
|
||||||
}
|
}
|
||||||
self.output_buffer.update_line(self.cursor.y);
|
self.output_buffer.update_line(self.cursor.y);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||||
assertion_line: 831
|
assertion_line: 833
|
||||||
expression: "format!(\"{:?}\", grid)"
|
expression: "format!(\"{:?}\", grid)"
|
||||||
---
|
---
|
||||||
00 (C): [aram@green zellij]$ 🏠🏠🏠
|
00 (C): [aram@green zellij]$ 🏠🏠🏠
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||||
assertion_line: 809
|
assertion_line: 811
|
||||||
expression: "format!(\"{:?}\", grid)"
|
expression: "format!(\"{:?}\", grid)"
|
||||||
---
|
---
|
||||||
00 (C): [aram@green zellij]$ 🏠 def abc
|
00 (C): [aram@green zellij]$ 🏠 def abc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||||
assertion_line: 941
|
assertion_line: 943
|
||||||
expression: "format!(\"{:?}\", grid)"
|
expression: "format!(\"{:?}\", grid)"
|
||||||
---
|
---
|
||||||
00 (C): 12 4
|
00 (C): 12 4
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||||
|
assertion_line: 1432
|
||||||
expression: "format!(\"{:?}\", grid)"
|
expression: "format!(\"{:?}\", grid)"
|
||||||
|
|
||||||
---
|
---
|
||||||
00 (C):
|
00 (C):
|
||||||
01 (C): 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running
|
01 (C): 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||||
assertion_line: 465
|
assertion_line: 569
|
||||||
expression: "format!(\"{:?}\", grid)"
|
expression: "format!(\"{:?}\", grid)"
|
||||||
---
|
---
|
||||||
00 (C): ABAAAAAAAAAAAAAAAAA
|
00 (C): ABAAAAAAAAAAAAAAAAA
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||||
|
assertion_line: 591
|
||||||
expression: "format!(\"{:?}\", grid)"
|
expression: "format!(\"{:?}\", grid)"
|
||||||
|
|
||||||
---
|
---
|
||||||
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||||
|
assertion_line: 613
|
||||||
expression: "format!(\"{:?}\", grid)"
|
expression: "format!(\"{:?}\", grid)"
|
||||||
|
|
||||||
---
|
---
|
||||||
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue