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()
|
self.0.len()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn is_empty(&self) -> bool {
|
||||||
|
self.0.len() == 0
|
||||||
|
}
|
||||||
|
|
||||||
pub fn remove(&mut self, s: &str) -> Option<Value> {
|
pub fn remove(&mut self, s: &str) -> Option<Value> {
|
||||||
self.0.remove(s)
|
self.0.remove(s)
|
||||||
}
|
}
|
||||||
|
@ -236,6 +236,10 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
|
|||||||
"saturate".to_owned(),
|
"saturate".to_owned(),
|
||||||
Box::new(|args, _| {
|
Box::new(|args, _| {
|
||||||
max_args!(args, 2);
|
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") {
|
let amount = match arg!(args, 1, "amount") {
|
||||||
Value::Dimension(n, u) => bound!("amount", n, u, 0, 100) / Number::from(100),
|
Value::Dimension(n, u) => bound!("amount", n, u, 0, 100) / Number::from(100),
|
||||||
v => return Err(format!("$amount: {} is not a number.", v).into()),
|
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(
|
f.insert(
|
||||||
"rgb".to_owned(),
|
"rgb".to_owned(),
|
||||||
Box::new(|args, _| {
|
Box::new(|args, _| {
|
||||||
|
if args.is_empty() {
|
||||||
|
return Err("Missing argument $channels.".into());
|
||||||
|
}
|
||||||
|
|
||||||
if args.len() == 1 {
|
if args.len() == 1 {
|
||||||
let mut channels = match arg!(args, 0, "channels") {
|
let mut channels = match arg!(args, 0, "channels") {
|
||||||
Value::List(v, _) => v,
|
Value::List(v, _) => v,
|
||||||
@ -129,6 +133,10 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
|
|||||||
f.insert(
|
f.insert(
|
||||||
"rgba".to_owned(),
|
"rgba".to_owned(),
|
||||||
Box::new(|args, _| {
|
Box::new(|args, _| {
|
||||||
|
if args.is_empty() {
|
||||||
|
return Err("Missing argument $channels.".into());
|
||||||
|
}
|
||||||
|
|
||||||
if args.len() == 1 {
|
if args.len() == 1 {
|
||||||
let mut channels = match arg!(args, 0, "channels") {
|
let mut channels = match arg!(args, 0, "channels") {
|
||||||
Value::List(v, _) => v,
|
Value::List(v, _) => v,
|
||||||
|
@ -126,6 +126,16 @@ test!(
|
|||||||
"a {\n color: rgba(7.1%, 20.4%, 33.9%);\n}\n",
|
"a {\n color: rgba(7.1%, 20.4%, 33.9%);\n}\n",
|
||||||
"a {\n color: #123456;\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!(
|
test!(
|
||||||
hsl_basic,
|
hsl_basic,
|
||||||
"a {\n color: hsl(193, 67%, 99);\n}\n",
|
"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: saturate($color: hsl(25, 100%, 80%), $amount: 30%);\n}\n",
|
||||||
"a {\n color: #ffc499;\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!(
|
test!(
|
||||||
saturate_basic,
|
saturate_basic,
|
||||||
"a {\n color: saturate(hsl(120, 30%, 90%), 20%);\n}\n",
|
"a {\n color: saturate(hsl(120, 30%, 90%), 20%);\n}\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user