Skip to content

Commit 92e9888

Browse files
committed
fix: find url in minimized css
1 parent 4f22bb4 commit 92e9888

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

src/dependencies.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1764,14 +1764,11 @@ impl<'s, D: HandleDependency<'s>, W: HandleWarning<'s>> Visitor<'s> for LexDepen
17641764
self.exit_font_palette_property();
17651765
}
17661766
}
1767-
1768-
self.is_next_rule_prelude = self.is_next_nested_syntax(lexer)?;
17691767
}
1768+
self.is_next_rule_prelude = self.is_next_nested_syntax(lexer)?;
17701769
}
17711770
Scope::TopLevel => {
1772-
if self.mode_data.is_some() {
1773-
self.is_next_rule_prelude = self.is_next_nested_syntax(lexer)?;
1774-
}
1771+
self.is_next_rule_prelude = self.is_next_nested_syntax(lexer)?;
17751772
}
17761773
}
17771774
Some(())
@@ -2047,6 +2044,7 @@ impl<'s, D: HandleDependency<'s>, W: HandleWarning<'s>> Visitor<'s> for LexDepen
20472044
}
20482045
_ => return Some(()),
20492046
}
2047+
self.is_next_rule_prelude = self.is_next_nested_syntax(lexer)?;
20502048
if let Some(mode_data) = &mut self.mode_data {
20512049
if mode_data.is_pure_mode() && mode_data.pure_global.is_some() {
20522050
let pure_global_start = mode_data.pure_global.unwrap();
@@ -2069,7 +2067,6 @@ impl<'s, D: HandleDependency<'s>, W: HandleWarning<'s>> Visitor<'s> for LexDepen
20692067

20702068
self.balanced.update_property_mode(mode_data);
20712069
self.balanced.pop_mode_pseudo_class(mode_data);
2072-
self.is_next_rule_prelude = self.is_next_nested_syntax(lexer)?;
20732070
if self.is_next_rule_prelude && self.block_nesting_level == 0 {
20742071
let mode_data = self.mode_data.as_mut().unwrap();
20752072
mode_data.composes_local_classes.reset_to_initial();
@@ -2109,11 +2106,11 @@ impl<'s, D: HandleDependency<'s>, W: HandleWarning<'s>> Visitor<'s> for LexDepen
21092106
}
21102107
if self.block_nesting_level == 0 {
21112108
self.scope = Scope::TopLevel;
2109+
self.is_next_rule_prelude = true;
21122110
if let Some(mode_data) = &mut self.mode_data {
2113-
self.is_next_rule_prelude = true;
21142111
mode_data.composes_local_classes.reset_to_initial();
21152112
}
2116-
} else if self.mode_data.is_some() {
2113+
} else {
21172114
self.is_next_rule_prelude = self.is_next_nested_syntax(lexer)?;
21182115
}
21192116
}

src/lexer.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -957,4 +957,22 @@ mod tests {
957957
"#},
958958
);
959959
}
960+
961+
#[test]
962+
fn parse_minimized_urls() {
963+
assert_lexer_snapshot(
964+
"body{background:url(./image.png)}",
965+
indoc! {r#"
966+
ident: body
967+
left_curly: {
968+
ident: background
969+
pseudo_function: :url(
970+
class: .
971+
ident: image
972+
class: .png
973+
right_parenthesis: )
974+
right_curly: }
975+
"#},
976+
);
977+
}
960978
}

tests/test.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,20 @@ fn url() {
344344
assert_eq!(dependencies.len(), 2);
345345
}
346346

347+
#[test]
348+
fn url_2() {
349+
let input = "body{background-image:url(./img.png)}";
350+
let (dependencies, warnings) = collect_dependencies(input, Mode::Css);
351+
assert!(warnings.is_empty());
352+
assert_url_dependency(
353+
input,
354+
&dependencies[0],
355+
"./img.png",
356+
UrlRangeKind::Function,
357+
"url(./img.png)",
358+
);
359+
}
360+
347361
#[test]
348362
fn duplicate_url() {
349363
let input = indoc! {r#"

0 commit comments

Comments
 (0)