brackets in set-nth

This commit is contained in:
ConnorSkees 2020-04-02 15:31:59 -04:00
parent c7fdf8eef3
commit 408fe6ff6b
2 changed files with 10 additions and 5 deletions

View File

@ -76,10 +76,10 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
"set-nth".to_owned(), "set-nth".to_owned(),
Box::new(|mut args, _| { Box::new(|mut args, _| {
max_args!(args, 3); max_args!(args, 3);
let (mut list, sep) = match arg!(args, 0, "list") { let (mut list, sep, brackets) = match arg!(args, 0, "list") {
Value::List(v, sep, ..) => (v, sep), Value::List(v, sep, b) => (v, sep, b),
Value::Map(m) => (m.entries(), ListSeparator::Comma), Value::Map(m) => (m.entries(), ListSeparator::Comma, Brackets::None),
v => (vec![v], ListSeparator::Space), v => (vec![v], ListSeparator::Space, Brackets::None),
}; };
let n = match arg!(args, 1, "n") { let n = match arg!(args, 1, "n") {
Value::Dimension(num, _) => num, Value::Dimension(num, _) => num,
@ -110,7 +110,7 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
list[len - n.abs().to_integer().to_usize().unwrap()] = val; list[len - n.abs().to_integer().to_usize().unwrap()] = val;
} }
Ok(Value::List(list, sep, Brackets::None)) Ok(Value::List(list, sep, brackets))
}), }),
); );
f.insert( f.insert(

View File

@ -83,6 +83,11 @@ test!(
"a {\n color: set-nth((a, b, c), 1, e);\n}\n", "a {\n color: set-nth((a, b, c), 1, e);\n}\n",
"a {\n color: e, b, c;\n}\n" "a {\n color: e, b, c;\n}\n"
); );
test!(
set_nth_bracketed,
"a {\n color: set-nth([a, b, c], 1, e);\n}\n",
"a {\n color: [e, b, c];\n}\n"
);
test!( test!(
set_nth_map, set_nth_map,
"a {\n color: set-nth((c: d, e: f, g: h), 2, i);\n}\n", "a {\n color: set-nth((c: d, e: f, g: h), 2, i);\n}\n",