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

Commitf410315

Browse files
committed
Split up combinators logic
1 parent5b84ed8 commitf410315

File tree

6 files changed

+236
-144
lines changed

6 files changed

+236
-144
lines changed

‎Gemfile.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ GEM
2222
prettier_print (>=1.2.0)
2323

2424
PLATFORMS
25+
arm64-darwin-23
2526
x86_64-darwin-21
2627
x86_64-linux
2728

‎lib/syntax_tree/css/format.rb

Lines changed: 64 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ def visit_delim_token(node)
4242
q.text(node.value)
4343
end
4444

45-
# Visitan IdentToken node.
46-
defvisit_ident_token(node)
45+
# Visita HashToken node.
46+
defvisit_hash_token(node)
4747
q.text(node.value)
4848
end
4949

50-
# Visita HashToken node.
51-
defvisit_hash_token(node)
50+
# Visitan IdentToken node.
51+
defvisit_ident_token(node)
5252
q.text(node.value)
5353
end
5454

@@ -70,28 +70,79 @@ def visit_style_rule(node)
7070
end
7171
end
7272

73+
# Visit a Selectors::SubsequentSiblingCombinator node.
74+
defvisit_subsequent_sibling_combinator(node)
75+
q.text(" ")
76+
node.value.format(q)
77+
q.text(" ")
78+
end
79+
7380
#-------------------------------------------------------------------------
7481
# Selector nodes
7582
#-------------------------------------------------------------------------
7683

77-
# Visit a Selectors::TypeSelector node.
78-
defvisit_type_selector(node)
84+
# Visit a Selectors::ChildCombinator node.
85+
defvisit_child_combinator(node)
86+
q.text(" ")
87+
node.value.format(q)
88+
q.text(" ")
89+
end
90+
91+
# Visit a Selectors::ClassSelector node.
92+
defvisit_class_selector(node)
93+
q.text(".")
94+
node.value.format(q)
95+
end
96+
97+
# Visit a Selectors::ColumnSiblingCombinator node.
98+
defvisit_column_sibling_combinator(node)
99+
q.text(" ")
100+
node.value.each{ |value|value.format(q)}
101+
q.text(" ")
102+
end
103+
104+
# Visit a Selectors::ComplexSelector node.
105+
defvisit_complex_selector(node)
79106
q.groupdo
80-
node.prefix.format(q)ifnode.prefix
81-
node.value.format(q)
107+
node.child_nodes.eachdo |child_node|
108+
child_node.format(q)
109+
end
110+
end
111+
end
112+
113+
# Visit a Selectors::CompoundSelector node.
114+
defvisit_compound_selector(node)
115+
q.groupdo
116+
node.child_nodes.eachdo |child_node|
117+
child_node.format(q)
118+
end
82119
end
83120
end
84121

122+
# Visit a Selectors::DescendantCombinator node.
123+
defvisit_descendant_combinator(node)
124+
q.text(" ")
125+
end
126+
85127
# Visit a Selectors::IdSelector node.
86128
defvisit_id_selector(node)
87129
q.text("#")
88130
node.value.format(q)
89131
end
90132

91-
# Visit a Selectors::ClassSelector node.
92-
defvisit_class_selector(node)
93-
q.text(".")
133+
# Visit a Selectors::NextSiblingCombinator node.
134+
defvisit_next_sibling_combinator(node)
135+
q.text("")
94136
node.value.format(q)
137+
q.text(" ")
138+
end
139+
140+
# Visit a Selectors::TypeSelector node.
141+
defvisit_type_selector(node)
142+
q.groupdo
143+
node.prefix&.format(q)
144+
node.value.format(q)
145+
end
95146
end
96147

97148
# Visit a Selectors::PseudoClassSelector node.
@@ -116,42 +167,9 @@ def visit_pseudo_element_selector(node)
116167
node.value.format(q)
117168
end
118169

119-
# Visit a Selectors::Combinator node.
120-
defvisit_combinator(node)
121-
casenode.value
122-
whenWhitespaceToken
123-
q.text(" ")
124-
whenArray
125-
q.text(" ")
126-
node.value.each{ |val|val.format(q)}
127-
q.text(" ")
128-
else
129-
q.text(" ")
130-
node.value.format(q)
131-
q.text(" ")
132-
end
133-
end
134-
135-
# Visit a Selectors::ComplexSelector node.
136-
defvisit_complex_selector(node)
137-
q.groupdo
138-
node.child_nodes.each_with_indexdo |child_node,j|
139-
child_node.format(q)
140-
end
141-
end
142-
end
143-
144-
# Visit a Selectors::CompoundSelector node.
145-
defvisit_compound_selector(node)
146-
q.groupdo
147-
node.child_nodes.eachdo |node_|
148-
node_.format(q)
149-
end
150-
end
151-
end
152-
170+
# Visit a Selectors::WqName node.
153171
defvisit_wqname(node)
154-
node.prefix.format(q)ifnode.prefix
172+
node.prefix&.format(q)
155173
node.name.format(q)
156174
end
157175
end

‎lib/syntax_tree/css/pretty_print.rb

Lines changed: 91 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,73 @@ def visit_whitespace_token(node)
350350
# Selector nodes
351351
#-------------------------------------------------------------------------
352352

353+
# Visit a Selectors::ChildCombinator node.
354+
defvisit_child_combinator(node)
355+
token("child-combinator")do
356+
q.breakable
357+
q.pp(node.value)
358+
end
359+
end
360+
361+
# Visit a Selectors::ColumnSiblingCombinator node.
362+
defvisit_column_sibling_combinator(node)
363+
token("column-sibling-combinator")do
364+
q.breakable
365+
q.pp(node.value)
366+
end
367+
end
368+
369+
# Visit a Selectors::ComplexSelector node.
370+
defvisit_complex_selector(node)
371+
token("complex-selector")do
372+
node.child_nodes.eachdo |child|
373+
q.breakable
374+
q.pp(child)
375+
end
376+
end
377+
end
378+
379+
# Visit a Selectors::CompoundSelector node.
380+
defvisit_compound_selector(node)
381+
token("compound-selector")do
382+
q.breakable
383+
token("type")do
384+
q.breakable
385+
q.pp(node.type)
386+
end
387+
388+
q.breakable
389+
q.text("(subclasses")
390+
391+
ifnode.subclasses.any?
392+
q.nest(2)do
393+
q.breakable
394+
q.seplist(node.subclasses){ |subclass|q.pp(subclass)}
395+
end
396+
397+
q.breakable("")
398+
end
399+
400+
q.text(")")
401+
402+
q.breakable("")
403+
q.text("(pseudo-elements")
404+
405+
ifnode.pseudo_elements.any?
406+
q.nest(2)do
407+
q.breakable
408+
q.seplist(node.pseudo_elements)do |pseudo_element|
409+
q.pp(pseudo_element)
410+
end
411+
end
412+
413+
q.breakable("")
414+
end
415+
416+
q.text(")")
417+
end
418+
end
419+
353420
# Visit a Selectors::ClassSelector node.
354421
defvisit_class_selector(node)
355422
token("class-selector")do
@@ -358,6 +425,14 @@ def visit_class_selector(node)
358425
end
359426
end
360427

428+
# Visit a Selectors::DescendantCombinator node.
429+
defvisit_descendant_combinator(node)
430+
token("descendant-combinator")do
431+
q.breakable
432+
q.pp(node.value)
433+
end
434+
end
435+
361436
# Visit a Selectors::IdSelector node.
362437
defvisit_id_selector(node)
363438
token("id-selector")do
@@ -366,6 +441,14 @@ def visit_id_selector(node)
366441
end
367442
end
368443

444+
# Visit a Selectors::NextSiblingCombinator node.
445+
defvisit_next_sibling_combinator(node)
446+
token("next-sibling-combinator")do
447+
q.breakable
448+
q.pp(node.value)
449+
end
450+
end
451+
369452
# Visit a Selectors::PseudoClassSelector node.
370453
defvisit_pseudo_class_selector(node)
371454
token("pseudo-class-selector")do
@@ -404,6 +487,14 @@ def visit_pseudo_element_selector(node)
404487
end
405488
end
406489

490+
# Visit a Selectors::SubsequentSiblingCombinator node.
491+
defvisit_subsequent_sibling_combinator(node)
492+
token("subsequent-sibling-combinator")do
493+
q.breakable
494+
q.pp(node.value)
495+
end
496+
end
497+
407498
# Visit a Selectors::TypeSelector node.
408499
defvisit_type_selector(node)
409500
token("type-selector")do
@@ -430,65 +521,6 @@ def visit_wqname(node)
430521
end
431522
end
432523

433-
# Visit a Selectors::Combinator node.
434-
defvisit_combinator(node)
435-
token(node.class::PP_NAME)do
436-
q.breakable
437-
q.pp(node.value)
438-
end
439-
end
440-
441-
# Visit a Selectors::ComplexSelector node.
442-
defvisit_complex_selector(node)
443-
token("complex-selector")do
444-
node.child_nodes.eachdo |child|
445-
q.breakable
446-
q.pp(child)
447-
end
448-
end
449-
end
450-
451-
# Visit a Selectors::CompoundSelector node.
452-
defvisit_compound_selector(node)
453-
token("compound-selector")do
454-
q.breakable
455-
token("type")do
456-
q.breakable
457-
q.pp(node.type)
458-
end
459-
460-
q.breakable
461-
q.text("(subclasses")
462-
463-
ifnode.subclasses.any?
464-
q.nest(2)do
465-
q.breakable
466-
q.seplist(node.subclasses){ |subclass|q.pp(subclass)}
467-
end
468-
469-
q.breakable("")
470-
end
471-
472-
q.text(")")
473-
474-
q.breakable("")
475-
q.text("(pseudo-elements")
476-
477-
ifnode.pseudo_elements.any?
478-
q.nest(2)do
479-
q.breakable
480-
q.seplist(node.pseudo_elements)do |pseudo_element|
481-
q.pp(pseudo_element)
482-
end
483-
end
484-
485-
q.breakable("")
486-
end
487-
488-
q.text(")")
489-
end
490-
end
491-
492524
private
493525

494526
deftoken(name)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp