Light fixes (#2455)

* Add optional commas for items in lists and tables

* A couple last fixes
This commit is contained in:
Jonathan Turner 2020-08-30 19:03:18 +12:00 committed by GitHub
parent abc05ece21
commit df691c6c91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 2 deletions

View File

@ -142,8 +142,8 @@ impl PrettyDebug for FormatInlineShape {
let (right, right_inclusion) = &range.to;
let op = match (left_inclusion, right_inclusion) {
(RangeInclusion::Inclusive, RangeInclusion::Exclusive) => "..",
_ => unimplemented!("No syntax for ranges that aren't inclusive on the left and exclusive on the right")
(RangeInclusion::Inclusive, RangeInclusion::Inclusive) => "..",
_ => unimplemented!("No syntax for ranges that aren't inclusive on the left and inclusive on the right")
};
left.clone().format().pretty() + b::operator(op) + right.clone().format().pretty()

View File

@ -610,6 +610,22 @@ impl SpannedExpression {
}
false
}
Expression::Table(headers, cells) => {
for l in headers {
if l.has_shallow_it_usage() {
return true;
}
}
for row in cells {
for cell in row {
if cell.has_shallow_it_usage() {
return true;
}
}
}
false
}
Expression::Invocation(block) => {
for commands in block.block.iter() {
for command in commands.list.iter() {
@ -646,6 +662,20 @@ impl SpannedExpression {
item.expand_it_usage();
}
}
SpannedExpression {
expr: Expression::Table(headers, cells),
..
} => {
for header in headers.iter_mut() {
header.expand_it_usage();
}
for row in cells.iter_mut() {
for cell in row {
cell.expand_it_usage()
}
}
}
SpannedExpression {
expr: Expression::Path(path),
..

View File

@ -454,6 +454,18 @@ fn list_with_commas() {
assert_eq!(actual.out, "6");
}
#[test]
fn it_expansion_of_tables() {
let actual = nu!(
cwd: ".",
r#"
echo foo | echo [[`foo {{$it}} bar`]; [`{{$it}} foo`]] | get "foo foo bar"
"#
);
assert_eq!(actual.out, "foo foo");
}
#[test]
fn table_with_commas() {
let actual = nu!(