Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc78ef8c

Browse files
committed
fix: handle selector combinators surrounded by whitespace
Partial fix for#25
1 parentee650b1 commitc78ef8c

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

‎lib/syntax_tree/css/selectors.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,8 @@ def relative_selector_list
337337

338338
# <complex-selector> = <compound-selector> [ <combinator>? <compound-selector> ]*
339339
defcomplex_selector
340+
consume_whitespace
341+
340342
left=compound_selector
341343

342344
if(c=maybe{combinator})
@@ -398,6 +400,8 @@ def simple_selector
398400

399401
# <combinator> = '>' | '+' | '~' | [ '|' '|' ]
400402
defcombinator
403+
consume_whitespace
404+
401405
value=
402406
optionsdo
403407
maybe{consume(">")} ||

‎test/selectors_test.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,52 @@ class SelectorsTest < Minitest::Spec
9797
end
9898
end
9999

100+
it"parses a complex selector with whitespace"do
101+
actual=parse_selectors("section > table")
102+
103+
assert_patterndo
104+
actual=>[
105+
Selectors::ComplexSelector[
106+
left:Selectors::TypeSelector[value:{name:{value:"section"}}],
107+
combinator:{value:{value:">"}},
108+
right:Selectors::TypeSelector[value:{name:{value:"table"}}],
109+
]
110+
]
111+
end
112+
end
113+
114+
it"parses a complex selector with implicit descendant combinator"do
115+
actual=parse_selectors("section table")
116+
117+
assert_patterndo
118+
actual=>[
119+
Selectors::ComplexSelector[
120+
left:Selectors::TypeSelector[value:{name:{value:"section"}}],
121+
combinator:nil,
122+
right:Selectors::TypeSelector[value:{name:{value:"table"}}],
123+
]
124+
]
125+
end
126+
end
127+
128+
it"parses a complex complex selector"do
129+
actual=parse_selectors("section > table tr")
130+
131+
assert_patterndo
132+
actual=>[
133+
Selectors::ComplexSelector[
134+
left:Selectors::TypeSelector[value:{name:{value:"section"}}],
135+
combinator:{value:{value:">"}},
136+
right:Selectors::ComplexSelector[
137+
left:Selectors::TypeSelector[value:{name:{value:"table"}}],
138+
combinator:nil,
139+
right:Selectors::TypeSelector[value:{name:{value:"tr"}}]
140+
]
141+
]
142+
]
143+
end
144+
end
145+
100146
private
101147

102148
defparse_selectors(selectors)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp