manually resolve some formatting issues

This commit is contained in:
ConnorSkees 2020-04-17 13:06:54 -04:00
parent 5255c7d829
commit de78c1147a
6 changed files with 49 additions and 18 deletions

View File

@ -53,12 +53,16 @@ macro_rules! opt_hsl {
pub(crate) fn register(f: &mut HashMap<String, Builtin>) { pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
f.insert("change-color".to_owned(), Builtin::new(|mut args, scope, super_selector| { f.insert("change-color".to_owned(), Builtin::new(|mut args, scope, super_selector| {
if args.get_positional(1, scope, super_selector).is_some() { if args.get_positional(1, scope, super_selector).is_some() {
return Err(("Only one positional argument is allowed. All other arguments must be passed by name.", args.span()).into()); return Err(
("Only one positional argument is allowed. All other arguments must be passed by name.", args.span()
).into());
} }
let color = match arg!(args, scope, super_selector, 0, "color") { let color = match arg!(args, scope, super_selector, 0, "color") {
Value::Color(c) => c, Value::Color(c) => c,
v => return Err((format!("$color: {} is not a color.", v.to_css_string(args.span())?), args.span()).into()), v => return Err(
(format!("$color: {} is not a color.", v.to_css_string(args.span())?), args.span()
).into()),
}; };
opt_rgba!(args, alpha, "alpha", 0, 1, scope, super_selector); opt_rgba!(args, alpha, "alpha", 0, 1, scope, super_selector);
@ -73,7 +77,9 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
let hue = match named_arg!(args, scope, super_selector, "hue"=Value::Null) { let hue = match named_arg!(args, scope, super_selector, "hue"=Value::Null) {
Value::Dimension(n, _) => Some(n), Value::Dimension(n, _) => Some(n),
Value::Null => None, Value::Null => None,
v => return Err((format!("$hue: {} is not a number.", v.to_css_string(args.span())?), args.span()).into()), v => return Err(
(format!("$hue: {} is not a number.", v.to_css_string(args.span())?), args.span()
).into()),
}; };
opt_hsl!(args, saturation, "saturation", 0, 100, scope, super_selector); opt_hsl!(args, saturation, "saturation", 0, 100, scope, super_selector);
@ -172,9 +178,12 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
f.insert( f.insert(
"scale-color".to_owned(), "scale-color".to_owned(),
Builtin::new(|mut args, scope, super_selector| { Builtin::new(|mut args, scope, super_selector| {
let span = args.span();
let color = match arg!(args, scope, super_selector, 0, "color") { let color = match arg!(args, scope, super_selector, 0, "color") {
Value::Color(c) => c, Value::Color(c) => c,
v => return Err((format!("$color: {} is not a color.", v.to_css_string(args.span())?), args.span()).into()), v => return Err(
(format!("$color: {} is not a color.", v.to_css_string(span)?), span
).into()),
}; };
macro_rules! opt_scale_arg { macro_rules! opt_scale_arg {
@ -190,7 +199,9 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
) )
} }
Value::Null => None, Value::Null => None,
v => return Err((format!("${}: {} is not a number.", $arg, v.to_css_string($args.span())?), $args.span()).into()), v => return Err(
(format!("${}: {} is not a number.", $arg, v.to_css_string($args.span())?), $args.span()
).into()),
}; };
}; };
} }

View File

@ -162,7 +162,6 @@ pub(crate) enum ColorName {
impl Display for ColorName { impl Display for ColorName {
#[allow(clippy::match_same_arms, clippy::many_single_char_names)] #[allow(clippy::match_same_arms, clippy::many_single_char_names)]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
// I want them all to be on separate lines so doing things with regex or multiple cursors is easier
match self { match self {
Self::AliceBlue => write!(f, "aliceblue"), Self::AliceBlue => write!(f, "aliceblue"),
Self::AntiqueWhite => write!(f, "antiquewhite"), Self::AntiqueWhite => write!(f, "antiquewhite"),

View File

@ -355,7 +355,13 @@ impl<'a> StyleSheetParser<'a> {
.kind .kind
{ {
q @ '"' | q @ '\'' => { q @ '"' | q @ '\'' => {
file_name.push_str(&parse_quoted_string(&mut self.lexer, &Scope::new(), q, &Selector::new())?.node.unquote().to_css_string(span)?); file_name.push_str(
&parse_quoted_string(
&mut self.lexer,
&Scope::new(),
q,
&Selector::new())?
.node.unquote().to_css_string(span)?);
} }
_ => todo!("expected ' or \" after @import"), _ => todo!("expected ' or \" after @import"),
} }
@ -383,10 +389,17 @@ impl<'a> StyleSheetParser<'a> {
AtRule::Warn(message) => self.warn(rule.span, &message), AtRule::Warn(message) => self.warn(rule.span, &message),
AtRule::Debug(message) => self.debug(rule.span, &message), AtRule::Debug(message) => self.debug(rule.span, &message),
AtRule::Return(_) => { AtRule::Return(_) => {
return Err(("This at-rule is not allowed here.", rule.span).into()) return Err(
("This at-rule is not allowed here.", rule.span).into()
)
} }
AtRule::Include(s) | AtRule::While(s) | AtRule::Each(s) | AtRule::For(s) => rules.extend(s), AtRule::Include(s)
AtRule::Content => return Err(("@content is only allowed within mixin declarations.", rule.span).into()), | AtRule::While(s)
| AtRule::Each(s)
| AtRule::For(s) => rules.extend(s),
AtRule::Content => return Err(
("@content is only allowed within mixin declarations.", rule.span
).into()),
AtRule::If(i) => { AtRule::If(i) => {
rules.extend(i.eval(&mut Scope::new(), &Selector::new())?); rules.extend(i.eval(&mut Scope::new(), &Selector::new())?);
} }

View File

@ -33,11 +33,13 @@ pub(crate) enum Unit {
Ex, Ex,
/// The advance measure (width) of the glyph "0" of the element's font /// The advance measure (width) of the glyph "0" of the element's font
Ch, Ch,
/// Represents the "cap height" (nominal height of capital letters) of the elements font /// Represents the "cap height" (nominal height of capital letters) of the element's font
Cap, Cap,
/// Equal to the used advance measure of the "水" (CJK water ideograph, U+6C34) glyph found in the font used to render it /// Equal to the used advance measure of the "水" (CJK water ideograph, U+6C34) glyph
/// found in the font used to render it
Ic, Ic,
/// Equal to the computed value of the line-height property on the root element (typically <html>), converted to an absolute length /// Equal to the computed value of the line-height property on the root element
/// (typically <html>), converted to an absolute length
Rlh, Rlh,
// Viewport relative units // Viewport relative units
@ -49,9 +51,11 @@ pub(crate) enum Unit {
Vmin, Vmin,
/// 1% of the viewport's larger dimension /// 1% of the viewport's larger dimension
Vmax, Vmax,
/// Equal to 1% of the size of the initial containing block, in the direction of the root elements inline axis /// Equal to 1% of the size of the initial containing block, in the direction of the root
/// element's inline axis
Vi, Vi,
/// Equal to 1% of the size of the initial containing block, in the direction of the root elements block axis /// Equal to 1% of the size of the initial containing block, in the direction of the root
/// element's block axis
Vb, Vb,
// Angle units // Angle units
@ -59,7 +63,7 @@ pub(crate) enum Unit {
Deg, Deg,
/// Represents an angle in gradians. One full circle is 400grad /// Represents an angle in gradians. One full circle is 400grad
Grad, Grad,
/// Represents an angle in radians. One full circle is 2π radians which approximates to 6.2832rad /// Represents an angle in radians. One full circle is 2π radians which approximates to 6.283rad
Rad, Rad,
/// Represents an angle in a number of turns. One full circle is 1turn /// Represents an angle in a number of turns. One full circle is 1turn
Turn, Turn,

View File

@ -7,7 +7,6 @@ test!(
different_function_same_body_not_equal, different_function_same_body_not_equal,
"@function user-defined() {@return null} "@function user-defined() {@return null}
$first-reference: get-function(user-defined); $first-reference: get-function(user-defined);
@function user-defined() {@return null} @function user-defined() {@return null}
$second-reference: get-function(user-defined); $second-reference: get-function(user-defined);
a {b: $first-reference == $second-reference}", a {b: $first-reference == $second-reference}",

View File

@ -47,7 +47,12 @@ macro_rules! error {
fn $func() { fn $func() {
match grass::StyleSheet::new($input.to_string()) { match grass::StyleSheet::new($input.to_string()) {
Ok(..) => panic!("did not fail"), Ok(..) => panic!("did not fail"),
Err(e) => assert_eq!($err, e.to_string().chars().take_while(|c| *c != '\n').collect::<String>().as_str()), Err(e) => assert_eq!($err, e.to_string()
.chars()
.take_while(|c| *c != '\n')
.collect::<String>()
.as_str()
),
} }
} }
}; };