better error message for missing rgb/rgba args
This commit is contained in:
parent
0be8828bf0
commit
6aae433d21
@ -40,6 +40,10 @@ impl CallArgs {
|
||||
self.0.len()
|
||||
}
|
||||
|
||||
pub fn is_empty(&self) -> bool {
|
||||
self.0.len() == 0
|
||||
}
|
||||
|
||||
pub fn remove(&mut self, s: &str) -> Option<Value> {
|
||||
self.0.remove(s)
|
||||
}
|
||||
|
@ -236,6 +236,10 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
|
||||
"saturate".to_owned(),
|
||||
Box::new(|args, _| {
|
||||
max_args!(args, 2);
|
||||
if args.len() == 1 {
|
||||
return Ok(Value::Ident(format!("saturate({})", arg!(args, 0, "amount")), QuoteKind::None));
|
||||
}
|
||||
|
||||
let amount = match arg!(args, 1, "amount") {
|
||||
Value::Dimension(n, u) => bound!("amount", n, u, 0, 100) / Number::from(100),
|
||||
v => return Err(format!("$amount: {} is not a number.", v).into()),
|
||||
|
@ -11,6 +11,10 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
|
||||
f.insert(
|
||||
"rgb".to_owned(),
|
||||
Box::new(|args, _| {
|
||||
if args.is_empty() {
|
||||
return Err("Missing argument $channels.".into());
|
||||
}
|
||||
|
||||
if args.len() == 1 {
|
||||
let mut channels = match arg!(args, 0, "channels") {
|
||||
Value::List(v, _) => v,
|
||||
@ -129,6 +133,10 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
|
||||
f.insert(
|
||||
"rgba".to_owned(),
|
||||
Box::new(|args, _| {
|
||||
if args.is_empty() {
|
||||
return Err("Missing argument $channels.".into());
|
||||
}
|
||||
|
||||
if args.len() == 1 {
|
||||
let mut channels = match arg!(args, 0, "channels") {
|
||||
Value::List(v, _) => v,
|
||||
|
@ -126,6 +126,16 @@ test!(
|
||||
"a {\n color: rgba(7.1%, 20.4%, 33.9%);\n}\n",
|
||||
"a {\n color: #123456;\n}\n"
|
||||
);
|
||||
error!(
|
||||
rgb_no_args,
|
||||
"a {\n color: rgb();\n}\n",
|
||||
"Error: Missing argument $channels."
|
||||
);
|
||||
error!(
|
||||
rgba_no_args,
|
||||
"a {\n color: rgba();\n}\n",
|
||||
"Error: Missing argument $channels."
|
||||
);
|
||||
test!(
|
||||
hsl_basic,
|
||||
"a {\n color: hsl(193, 67%, 99);\n}\n",
|
||||
@ -340,6 +350,11 @@ test!(
|
||||
"a {\n color: saturate($color: hsl(25, 100%, 80%), $amount: 30%);\n}\n",
|
||||
"a {\n color: #ffc499;\n}\n"
|
||||
);
|
||||
test!(
|
||||
saturate_one_arg,
|
||||
"a {\n color: saturate($amount: 50%);\n}\n",
|
||||
"a {\n color: saturate(50%);\n}\n"
|
||||
);
|
||||
test!(
|
||||
saturate_basic,
|
||||
"a {\n color: saturate(hsl(120, 30%, 90%), 20%);\n}\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user