[WIP] table: Change Record view in expand-mode (#6885)

* table: Change Record view in expand-mode

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fix width issue

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Remove debug println!

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Update logic

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Improve the logic via a wrapping

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* `table -e` spread table to the whole width

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* fix CI

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fixing tests

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fix coloring issues

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Don't expand when can

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fix tests

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Change the logic

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fix cargo fmt

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
This commit is contained in:
Maxim Zhiburt
2022-11-16 17:03:56 +03:00
committed by GitHub
parent 708fee535c
commit 02ad491dea
8 changed files with 639 additions and 343 deletions

View File

@ -31,8 +31,8 @@ fn table_expand_0() {
"╭───┬───┬───┬───────────╮\
│ # │ a │ b │ c │\
├───┼───┼───┼───────────┤\
0 │ 1 │ 2 │ 3 │\
1 │ 4 │ 5 │ ╭───┬───╮ │\
1 │ 1 │ 2 │ 3 │\
2 │ 4 │ 5 │ ╭───┬───╮ │\
│ │ │ │ │ 0 │ 1 │ │\
│ │ │ │ │ 1 │ 2 │ │\
│ │ │ │ │ 2 │ 3 │ │\
@ -41,6 +41,48 @@ fn table_expand_0() {
);
}
// I am not sure whether the test is platform depent, cause we don't set a term_width on our own
#[test]
fn table_expand_exeed_overlap_0() {
// no expand
let actual = nu!(r#"[[a b, c]; [xxxxxxxxxxxxxxxxxxxxxx 2 3] [4 5 [1 2 3]]] | table --expand"#);
assert_eq!(
actual.out,
"╭───┬────────────────────────┬───┬───────────╮\
│ # │ a │ b │ c │\
├───┼────────────────────────┼───┼───────────┤\
│ 1 │ xxxxxxxxxxxxxxxxxxxxxx │ 2 │ 3 │\
│ 2 │ 4 │ 5 │ ╭───┬───╮ │\
│ │ │ │ │ 0 │ 1 │ │\
│ │ │ │ │ 1 │ 2 │ │\
│ │ │ │ │ 2 │ 3 │ │\
│ │ │ │ ╰───┴───╯ │\
╰───┴────────────────────────┴───┴───────────╯",
);
// expand
let actual = nu!(
r#"[[a b, c]; [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2 3] [4 5 [1 2 3]]] | table --expand"#
);
assert_eq!(
actual.out,
"╭──────┬───────────────────────────────────────────────────┬─────┬─────────────╮\
│ # │ a │ b │ c │\
├──────┼───────────────────────────────────────────────────┼─────┼─────────────┤\
│ 1 │ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ 2 │ 3 │\
│ 2 │ 4 │ 5 │ ╭───┬───╮ │\
│ │ │ │ │ 0 │ 1 │ │\
│ │ │ │ │ 1 │ 2 │ │\
│ │ │ │ │ 2 │ 3 │ │\
│ │ │ │ ╰───┴───╯ │\
╰──────┴───────────────────────────────────────────────────┴─────┴─────────────╯"
);
}
#[test]
fn table_expand_deep_0() {
let actual = nu!(r#"[[a b, c]; [1 2 3] [4 5 [1 2 [1 2 3]]]] | table --expand --expand-deep=1"#);
@ -49,8 +91,8 @@ fn table_expand_deep_0() {
"╭───┬───┬───┬────────────────────────╮\
│ # │ a │ b │ c │\
├───┼───┼───┼────────────────────────┤\
0 │ 1 │ 2 │ 3 │\
1 │ 4 │ 5 │ ╭───┬────────────────╮ │\
1 │ 1 │ 2 │ 3 │\
2 │ 4 │ 5 │ ╭───┬────────────────╮ │\
│ │ │ │ │ 0 │ 1 │ │\
│ │ │ │ │ 1 │ 2 │ │\
│ │ │ │ │ 2 │ [list 3 items] │ │\
@ -67,8 +109,8 @@ fn table_expand_deep_1() {
"╭───┬───┬───┬────────────────╮\
│ # │ a │ b │ c │\
├───┼───┼───┼────────────────┤\
0 │ 1 │ 2 │ 3 │\
1 │ 4 │ 5 │ [list 3 items] │\
1 │ 1 │ 2 │ 3 │\
2 │ 4 │ 5 │ [list 3 items] │\
╰───┴───┴───┴────────────────╯"
);
}
@ -81,8 +123,8 @@ fn table_expand_flatten_0() {
"╭───┬───┬───┬───────────────╮\
│ # │ a │ b │ c │\
├───┼───┼───┼───────────────┤\
0 │ 1 │ 2 │ 3 │\
1 │ 4 │ 5 │ ╭───┬───────╮ │\
1 │ 1 │ 2 │ 3 │\
2 │ 4 │ 5 │ ╭───┬───────╮ │\
│ │ │ │ │ 0 │ 1 │ │\
│ │ │ │ │ 1 │ 2 │ │\
│ │ │ │ │ 2 │ 1 1 1 │ │\
@ -101,8 +143,8 @@ fn table_expand_flatten_1() {
"╭───┬───┬───┬───────────────╮\
│ # │ a │ b │ c │\
├───┼───┼───┼───────────────┤\
0 │ 1 │ 2 │ 3 │\
1 │ 4 │ 5 │ ╭───┬───────╮ │\
1 │ 1 │ 2 │ 3 │\
2 │ 4 │ 5 │ ╭───┬───────╮ │\
│ │ │ │ │ 0 │ 1 │ │\
│ │ │ │ │ 1 │ 2 │ │\
│ │ │ │ │ 2 │ 1,1,1 │ │\
@ -122,8 +164,8 @@ fn table_expand_flatten_and_deep_1() {
"╭───┬───┬───┬────────────────────────────────╮\
│ # │ a │ b │ c │\
├───┼───┼───┼────────────────────────────────┤\
0 │ 1 │ 2 │ 3 │\
1 │ 4 │ 5 │ ╭───┬────────────────────────╮ │\
1 │ 1 │ 2 │ 3 │\
2 │ 4 │ 5 │ ╭───┬────────────────────────╮ │\
│ │ │ │ │ 0 │ 1 │ │\
│ │ │ │ │ 1 │ 2 │ │\
│ │ │ │ │ 2 │ ╭───┬────────────────╮ │ │\