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);
|
||||
}
|
||||
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;
|
||||
empty_character.styles = empty_char_style;
|
||||
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 {
|
||||
let deleted_character = current_row.delete_and_return_character(self.cursor.x);
|
||||
let excess_width = deleted_character
|
||||
|
|
@ -1629,6 +1636,7 @@ impl Grid {
|
|||
for _ in 0..excess_width {
|
||||
current_row.insert_character_at(empty_character, self.cursor.x);
|
||||
}
|
||||
current_row.push(empty_character);
|
||||
}
|
||||
self.output_buffer.update_line(self.cursor.y);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||
assertion_line: 831
|
||||
assertion_line: 833
|
||||
expression: "format!(\"{:?}\", grid)"
|
||||
---
|
||||
00 (C): [aram@green zellij]$ 🏠🏠🏠
|
||||
00 (C): [aram@green zellij]$ 🏠🏠🏠
|
||||
01 (C):
|
||||
02 (C):
|
||||
03 (C):
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||
assertion_line: 809
|
||||
assertion_line: 811
|
||||
expression: "format!(\"{:?}\", grid)"
|
||||
---
|
||||
00 (C): [aram@green zellij]$ 🏠 def abc
|
||||
00 (C): [aram@green zellij]$ 🏠 def abc
|
||||
01 (C):
|
||||
02 (C):
|
||||
03 (C):
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||
assertion_line: 941
|
||||
assertion_line: 943
|
||||
expression: "format!(\"{:?}\", grid)"
|
||||
---
|
||||
00 (C): 12 4
|
||||
00 (C): 12 4
|
||||
01 (C):
|
||||
02 (C):
|
||||
03 (C):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||
assertion_line: 1432
|
||||
expression: "format!(\"{:?}\", grid)"
|
||||
|
||||
---
|
||||
00 (C):
|
||||
01 (C): 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running
|
||||
|
|
@ -11,24 +11,24 @@ expression: "format!(\"{:?}\", grid)"
|
|||
05 (C): Mem[|||||||||||||||||||||||||||||||||||||8.80G/15.3G]
|
||||
06 (C): Swp[| 2.82M/16.0G]
|
||||
07 (C):
|
||||
08 (C): PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
|
||||
08 (C): PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
|
||||
09 (C): 20 0 8576 4508 3356 R 1.3 0.0 0:00.11 htop
|
||||
10 (C): 20 0 171M 10868 7804 S 0.0 0.1 2:08.38 /sbin/init
|
||||
11 (C): 20 0 107M 29364 28092 S 0.0 0.2 0:03.42 /usr/lib/systemd/systemd-journald
|
||||
12 (C): 20 0 32648 9568 6616 S 0.0 0.1 0:01.87 /usr/lib/systemd/systemd-udevd
|
||||
13 (C): 20 0 78060 992 856 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f
|
||||
10 (C): 20 0 171M 10868 7804 S 0.0 0.1 2:08.38 /sbin/init
|
||||
11 (C): 20 0 107M 29364 28092 S 0.0 0.2 0:03.42 /usr/lib/systemd/systemd-journald
|
||||
12 (C): 20 0 32648 9568 6616 S 0.0 0.1 0:01.87 /usr/lib/systemd/systemd-udevd
|
||||
13 (C): 20 0 78060 992 856 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f
|
||||
14 (C): 20 0 6952 4356 3492 S 0.0 0.0 0:57.67 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidf
|
||||
15 (C): 20 0 14824 7552 5984 S 0.0 0.0 0:12.93 /usr/bin/connmand -n --nodnsproxy
|
||||
16 (C): 20 0 17696 7940 6696 S 0.0 0.0 0:01.25 /usr/lib/systemd/systemd-logind
|
||||
17 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:27.24 /usr/bin/dockerd -H fd://
|
||||
18 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:38.37 /usr/bin/dockerd -H fd://
|
||||
19 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.01 /usr/bin/dockerd -H fd://
|
||||
20 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
|
||||
21 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
|
||||
22 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
|
||||
23 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.55 /usr/bin/dockerd -H fd://
|
||||
24 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:26.19 /usr/bin/dockerd -H fd://
|
||||
25 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:40.77 /usr/bin/dockerd -H fd://
|
||||
26 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.26 /usr/bin/dockerd -H fd://
|
||||
15 (C): 20 0 14824 7552 5984 S 0.0 0.0 0:12.93 /usr/bin/connmand -n --nodnsproxy
|
||||
16 (C): 20 0 17696 7940 6696 S 0.0 0.0 0:01.25 /usr/lib/systemd/systemd-logind
|
||||
17 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:27.24 /usr/bin/dockerd -H fd://
|
||||
18 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:38.37 /usr/bin/dockerd -H fd://
|
||||
19 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.01 /usr/bin/dockerd -H fd://
|
||||
20 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
|
||||
21 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
|
||||
22 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
|
||||
23 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.55 /usr/bin/dockerd -H fd://
|
||||
24 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:26.19 /usr/bin/dockerd -H fd://
|
||||
25 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:40.77 /usr/bin/dockerd -H fd://
|
||||
26 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.26 /usr/bin/dockerd -H fd://
|
||||
27 (C): F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||
assertion_line: 465
|
||||
assertion_line: 569
|
||||
expression: "format!(\"{:?}\", grid)"
|
||||
---
|
||||
00 (C): ABAAAAAAAAAAAAAAAAA
|
||||
00 (C): ABAAAAAAAAAAAAAAAAA
|
||||
01 (C):
|
||||
02 (C):
|
||||
03 (C): Test of 'Delete Character'. The top line should be 'AB'. Push <RETURN>
|
||||
|
|
|
|||
|
|
@ -1,32 +1,32 @@
|
|||
---
|
||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||
assertion_line: 591
|
||||
expression: "format!(\"{:?}\", grid)"
|
||||
|
||||
---
|
||||
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
|
||||
03 (C): The right column should be staggered DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
|
||||
04 (C): by one. Push <RETURN>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
|
||||
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
|
||||
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
|
||||
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
|
||||
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
||||
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
|
||||
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
|
||||
15 (C): PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
|
||||
16 (C): QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
|
||||
17 (C): RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
|
||||
18 (C): SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
|
||||
19 (C): TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
||||
20 (C): UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
|
||||
21 (C): VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
|
||||
22 (C): WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
23 (C): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
|
||||
03 (C): The right column should be staggered DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
|
||||
04 (C): by one. Push <RETURN>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
|
||||
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
|
||||
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
|
||||
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
|
||||
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
||||
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
|
||||
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
|
||||
15 (C): PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
|
||||
16 (C): QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
|
||||
17 (C): RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
|
||||
18 (C): SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
|
||||
19 (C): TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
||||
20 (C): UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
|
||||
21 (C): VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
|
||||
22 (C): WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
23 (C): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
24 (C):
|
||||
25 (C):
|
||||
26 (C):
|
||||
|
|
|
|||
|
|
@ -1,32 +1,32 @@
|
|||
---
|
||||
source: zellij-server/src/panes/./unit/grid_tests.rs
|
||||
assertion_line: 613
|
||||
expression: "format!(\"{:?}\", grid)"
|
||||
|
||||
---
|
||||
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
|
||||
03 (C): The right column should be staggered
|
||||
04 (C): by one. Push <RETURN>EEEEEEEEEEEEE
|
||||
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
|
||||
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
|
||||
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
|
||||
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKK
|
||||
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMM
|
||||
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNN
|
||||
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOO
|
||||
15 (C): PPPPPPPPPPPPPPPPPPPPPPPP
|
||||
16 (C): QQQQQQQQQQQQQQQQQQQQQQQ
|
||||
17 (C): RRRRRRRRRRRRRRRRRRRRRR
|
||||
18 (C): SSSSSSSSSSSSSSSSSSSSS
|
||||
19 (C): TTTTTTTTTTTTTTTTTTTT
|
||||
20 (C): UUUUUUUUUUUUUUUUUUU
|
||||
21 (C): VVVVVVVVVVVVVVVVVV
|
||||
22 (C): WWWWWWWWWWWWWWWWW
|
||||
23 (C): XXXXXXXXXXXXXXXX
|
||||
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
|
||||
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
|
||||
03 (C): The right column should be staggered
|
||||
04 (C): by one. Push <RETURN>EEEEEEEEEEEEE
|
||||
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
|
||||
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
|
||||
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
|
||||
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKK
|
||||
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLL
|
||||
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMM
|
||||
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNN
|
||||
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOO
|
||||
15 (C): PPPPPPPPPPPPPPPPPPPPPPPP
|
||||
16 (C): QQQQQQQQQQQQQQQQQQQQQQQ
|
||||
17 (C): RRRRRRRRRRRRRRRRRRRRRR
|
||||
18 (C): SSSSSSSSSSSSSSSSSSSSS
|
||||
19 (C): TTTTTTTTTTTTTTTTTTTT
|
||||
20 (C): UUUUUUUUUUUUUUUUUUU
|
||||
21 (C): VVVVVVVVVVVVVVVVVV
|
||||
22 (C): WWWWWWWWWWWWWWWWW
|
||||
23 (C): XXXXXXXXXXXXXXXX
|
||||
24 (C):
|
||||
25 (C):
|
||||
26 (C):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue