handle brackets in append()
This commit is contained in:
parent
72bc9a46e3
commit
225894d0e9
@ -115,9 +115,9 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
|
|||||||
"append".to_owned(),
|
"append".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),
|
||||||
v => (vec![v], ListSeparator::Space),
|
v => (vec![v], ListSeparator::Space, Brackets::None),
|
||||||
};
|
};
|
||||||
let val = arg!(args, 1, "val");
|
let val = arg!(args, 1, "val");
|
||||||
let sep = match arg!(
|
let sep = match arg!(
|
||||||
@ -133,12 +133,12 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
|
|||||||
return Err("$separator: Must be \"space\", \"comma\", or \"auto\".".into())
|
return Err("$separator: Must be \"space\", \"comma\", or \"auto\".".into())
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_ => return Err("$separator: Must be \"space\", \"comma\", or \"auto\".".into()),
|
v => return Err(format!("$separator: {} is not a string.", v).into()),
|
||||||
};
|
};
|
||||||
|
|
||||||
list.push(val);
|
list.push(val);
|
||||||
|
|
||||||
Ok(Value::List(list, sep, Brackets::None))
|
Ok(Value::List(list, sep, brackets))
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
f.insert(
|
f.insert(
|
||||||
|
@ -113,6 +113,15 @@ test!(
|
|||||||
"a {\n color: append((), a);\n}\n",
|
"a {\n color: append((), a);\n}\n",
|
||||||
"a {\n color: a;\n}\n"
|
"a {\n color: a;\n}\n"
|
||||||
);
|
);
|
||||||
|
test!(
|
||||||
|
append_bracketed,
|
||||||
|
"a {\n color: append([], 1);\n}\n",
|
||||||
|
"a {\n color: [1];\n}\n"
|
||||||
|
);
|
||||||
|
error!(
|
||||||
|
append_non_string_separator,
|
||||||
|
"a {b: append(c, d, $separator: 1);}", "Error: $separator: 1 is not a string."
|
||||||
|
);
|
||||||
test!(
|
test!(
|
||||||
join_space_separated,
|
join_space_separated,
|
||||||
"a {\n color: join(a b, c d);\n}\n",
|
"a {\n color: join(a b, c d);\n}\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user