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

Commite942b9e

Browse files
committed
inherit Selectors::CompoundSelector from Node
and improve its formatting
1 parent63f2235 commite942b9e

File tree

3 files changed

+69
-1
lines changed

3 files changed

+69
-1
lines changed

‎lib/syntax_tree/css/pretty_print.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,44 @@ def visit_wqname(node)
421421
end
422422
end
423423

424+
# Visit a Selectors::CompoundSelector node.
425+
defvisit_compound_selector(node)
426+
token("compound-selector")do
427+
q.breakable
428+
q.pp(node.type)
429+
430+
q.breakable
431+
q.text("(subclasses")
432+
433+
ifnode.subclasses.any?
434+
q.nest(2)do
435+
q.breakable
436+
q.seplist(node.subclasses){ |subclass|q.pp(subclass)}
437+
end
438+
439+
q.breakable("")
440+
end
441+
442+
q.text(")")
443+
444+
q.breakable("")
445+
q.text("(pseudo-elements")
446+
447+
ifnode.pseudo_elements.any?
448+
q.nest(2)do
449+
q.breakable
450+
q.seplist(node.pseudo_elements)do |pseudo_element|
451+
q.pp(pseudo_element)
452+
end
453+
end
454+
455+
q.breakable("")
456+
end
457+
458+
q.text(")")
459+
end
460+
end
461+
424462
private
425463

426464
deftoken(name)

‎lib/syntax_tree/css/selectors.rb

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,34 @@ def deconstruct_keys(keys)
7373

7474
Combinator=Struct.new(:value,keyword_init:true)
7575
ComplexSelector=Struct.new(:left,:combinator,:right,keyword_init:true)
76-
CompoundSelector=Struct.new(:type,:subclasses,:pseudo_elements,keyword_init:true)
76+
77+
classCompoundSelector <Node
78+
attr_reader:type,:subclasses,:pseudo_elements
79+
80+
definitialize(type:,subclasses:,pseudo_elements:)
81+
@type=type
82+
@subclasses=subclasses
83+
@pseudo_elements=pseudo_elements
84+
end
85+
86+
defaccept(visitor)
87+
visitor.visit_compound_selector(self)
88+
end
89+
90+
defchild_nodes
91+
[type,subclasses,pseudo_elements].flatten
92+
end
93+
94+
aliasdeconstructchild_nodes
95+
96+
defdeconstruct_keys(keys)
97+
{
98+
type:type,
99+
subclasses:subclasses,
100+
pseudo_elements:pseudo_elements
101+
}
102+
end
103+
end
77104

78105
# The ID of an element, e.g., #foo
79106
# https://www.w3.org/TR/selectors-4/#typedef-id-selector

‎lib/syntax_tree/css/visitor.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ def visit_child_nodes(node)
132132
# Visit a Selectors::ClassSelector node.
133133
aliasvisit_class_selectorvisit_child_nodes
134134

135+
# Visit a Selectors::CompoundSelector node.
136+
aliasvisit_compound_selectorvisit_child_nodes
137+
135138
# Visit a Selectors::IdSelector node.
136139
aliasvisit_id_selectorvisit_child_nodes
137140

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp