syntax_tree 4.3.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +26 -1
- data/Gemfile.lock +4 -4
- data/README.md +111 -12
- data/lib/syntax_tree/cli.rb +57 -25
- data/lib/syntax_tree/formatter.rb +56 -20
- data/lib/syntax_tree/node.rb +3119 -1409
- data/lib/syntax_tree/parser.rb +118 -92
- data/lib/syntax_tree/pattern.rb +3 -3
- data/lib/syntax_tree/plugin/single_quotes.rb +5 -1
- data/lib/syntax_tree/plugin/trailing_comma.rb +5 -1
- data/lib/syntax_tree/version.rb +1 -1
- data/lib/syntax_tree/visitor/environment.rb +7 -4
- data/lib/syntax_tree/visitor/field_visitor.rb +23 -117
- data/lib/syntax_tree/visitor/mutation_visitor.rb +924 -0
- data/lib/syntax_tree/visitor/with_environment.rb +0 -8
- data/lib/syntax_tree/visitor.rb +12 -48
- data/lib/syntax_tree.rb +14 -2
- data/syntax_tree.gemspec +1 -1
- metadata +6 -4
@@ -56,14 +56,6 @@ module SyntaxTree
|
|
56
56
|
with_new_environment { super }
|
57
57
|
end
|
58
58
|
|
59
|
-
def visit_defs(node)
|
60
|
-
with_new_environment { super }
|
61
|
-
end
|
62
|
-
|
63
|
-
def visit_def_endless(node)
|
64
|
-
with_new_environment { super }
|
65
|
-
end
|
66
|
-
|
67
59
|
# Visit for keeping track of local arguments, such as method and block
|
68
60
|
# arguments
|
69
61
|
def visit_params(node)
|
data/lib/syntax_tree/visitor.rb
CHANGED
@@ -11,7 +11,7 @@ module SyntaxTree
|
|
11
11
|
# Visit an ARefField node.
|
12
12
|
alias visit_aref_field visit_child_nodes
|
13
13
|
|
14
|
-
# Visit an
|
14
|
+
# Visit an AliasNode node.
|
15
15
|
alias visit_alias visit_child_nodes
|
16
16
|
|
17
17
|
# Visit an ArgBlock node.
|
@@ -62,6 +62,9 @@ module SyntaxTree
|
|
62
62
|
# Visit a Binary node.
|
63
63
|
alias visit_binary visit_child_nodes
|
64
64
|
|
65
|
+
# Visit a Block node.
|
66
|
+
alias visit_block visit_child_nodes
|
67
|
+
|
65
68
|
# Visit a BlockArg node.
|
66
69
|
alias visit_blockarg visit_child_nodes
|
67
70
|
|
@@ -71,9 +74,6 @@ module SyntaxTree
|
|
71
74
|
# Visit a BodyStmt node.
|
72
75
|
alias visit_bodystmt visit_child_nodes
|
73
76
|
|
74
|
-
# Visit a BraceBlock node.
|
75
|
-
alias visit_brace_block visit_child_nodes
|
76
|
-
|
77
77
|
# Visit a Break node.
|
78
78
|
alias visit_break visit_child_nodes
|
79
79
|
|
@@ -119,24 +119,9 @@ module SyntaxTree
|
|
119
119
|
# Visit a Def node.
|
120
120
|
alias visit_def visit_child_nodes
|
121
121
|
|
122
|
-
# Visit a DefEndless node.
|
123
|
-
alias visit_def_endless visit_child_nodes
|
124
|
-
|
125
122
|
# Visit a Defined node.
|
126
123
|
alias visit_defined visit_child_nodes
|
127
124
|
|
128
|
-
# Visit a Defs node.
|
129
|
-
alias visit_defs visit_child_nodes
|
130
|
-
|
131
|
-
# Visit a DoBlock node.
|
132
|
-
alias visit_do_block visit_child_nodes
|
133
|
-
|
134
|
-
# Visit a Dot2 node.
|
135
|
-
alias visit_dot2 visit_child_nodes
|
136
|
-
|
137
|
-
# Visit a Dot3 node.
|
138
|
-
alias visit_dot3 visit_child_nodes
|
139
|
-
|
140
125
|
# Visit a DynaSymbol node.
|
141
126
|
alias visit_dyna_symbol visit_child_nodes
|
142
127
|
|
@@ -167,9 +152,6 @@ module SyntaxTree
|
|
167
152
|
# Visit an ExcessedComma node.
|
168
153
|
alias visit_excessed_comma visit_child_nodes
|
169
154
|
|
170
|
-
# Visit a FCall node.
|
171
|
-
alias visit_fcall visit_child_nodes
|
172
|
-
|
173
155
|
# Visit a Field node.
|
174
156
|
alias visit_field visit_child_nodes
|
175
157
|
|
@@ -203,12 +185,9 @@ module SyntaxTree
|
|
203
185
|
# Visit an Ident node.
|
204
186
|
alias visit_ident visit_child_nodes
|
205
187
|
|
206
|
-
# Visit an
|
188
|
+
# Visit an IfNode node.
|
207
189
|
alias visit_if visit_child_nodes
|
208
190
|
|
209
|
-
# Visit an IfMod node.
|
210
|
-
alias visit_if_mod visit_child_nodes
|
211
|
-
|
212
191
|
# Visit an IfOp node.
|
213
192
|
alias visit_if_op visit_child_nodes
|
214
193
|
|
@@ -311,6 +290,9 @@ module SyntaxTree
|
|
311
290
|
# Visit a QWordsBeg node.
|
312
291
|
alias visit_qwords_beg visit_child_nodes
|
313
292
|
|
293
|
+
# Visit a RangeNode node
|
294
|
+
alias visit_range visit_child_nodes
|
295
|
+
|
314
296
|
# Visit a RAssign node.
|
315
297
|
alias visit_rassign visit_child_nodes
|
316
298
|
|
@@ -356,9 +338,6 @@ module SyntaxTree
|
|
356
338
|
# Visit a Return node.
|
357
339
|
alias visit_return visit_child_nodes
|
358
340
|
|
359
|
-
# Visit a Return0 node.
|
360
|
-
alias visit_return0 visit_child_nodes
|
361
|
-
|
362
341
|
# Visit a RParen node.
|
363
342
|
alias visit_rparen visit_child_nodes
|
364
343
|
|
@@ -428,21 +407,12 @@ module SyntaxTree
|
|
428
407
|
# Visit an Undef node.
|
429
408
|
alias visit_undef visit_child_nodes
|
430
409
|
|
431
|
-
# Visit an
|
410
|
+
# Visit an UnlessNode node.
|
432
411
|
alias visit_unless visit_child_nodes
|
433
412
|
|
434
|
-
# Visit an
|
435
|
-
alias visit_unless_mod visit_child_nodes
|
436
|
-
|
437
|
-
# Visit an Until node.
|
413
|
+
# Visit an UntilNode node.
|
438
414
|
alias visit_until visit_child_nodes
|
439
415
|
|
440
|
-
# Visit an UntilMod node.
|
441
|
-
alias visit_until_mod visit_child_nodes
|
442
|
-
|
443
|
-
# Visit a VarAlias node.
|
444
|
-
alias visit_var_alias visit_child_nodes
|
445
|
-
|
446
416
|
# Visit a VarField node.
|
447
417
|
alias visit_var_field visit_child_nodes
|
448
418
|
|
@@ -458,12 +428,9 @@ module SyntaxTree
|
|
458
428
|
# Visit a When node.
|
459
429
|
alias visit_when visit_child_nodes
|
460
430
|
|
461
|
-
# Visit a
|
431
|
+
# Visit a WhileNode node.
|
462
432
|
alias visit_while visit_child_nodes
|
463
433
|
|
464
|
-
# Visit a WhileMod node.
|
465
|
-
alias visit_while_mod visit_child_nodes
|
466
|
-
|
467
434
|
# Visit a Word node.
|
468
435
|
alias visit_word visit_child_nodes
|
469
436
|
|
@@ -479,12 +446,9 @@ module SyntaxTree
|
|
479
446
|
# Visit a XStringLiteral node.
|
480
447
|
alias visit_xstring_literal visit_child_nodes
|
481
448
|
|
482
|
-
# Visit a
|
449
|
+
# Visit a YieldNode node.
|
483
450
|
alias visit_yield visit_child_nodes
|
484
451
|
|
485
|
-
# Visit a Yield0 node.
|
486
|
-
alias visit_yield0 visit_child_nodes
|
487
|
-
|
488
452
|
# Visit a ZSuper node.
|
489
453
|
alias visit_zsuper visit_child_nodes
|
490
454
|
|
data/lib/syntax_tree.rb
CHANGED
@@ -16,6 +16,7 @@ require_relative "syntax_tree/visitor"
|
|
16
16
|
require_relative "syntax_tree/visitor/field_visitor"
|
17
17
|
require_relative "syntax_tree/visitor/json_visitor"
|
18
18
|
require_relative "syntax_tree/visitor/match_visitor"
|
19
|
+
require_relative "syntax_tree/visitor/mutation_visitor"
|
19
20
|
require_relative "syntax_tree/visitor/pretty_print_visitor"
|
20
21
|
require_relative "syntax_tree/visitor/environment"
|
21
22
|
require_relative "syntax_tree/visitor/with_environment"
|
@@ -53,14 +54,25 @@ module SyntaxTree
|
|
53
54
|
end
|
54
55
|
|
55
56
|
# Parses the given source and returns the formatted source.
|
56
|
-
def self.format(
|
57
|
-
|
57
|
+
def self.format(
|
58
|
+
source,
|
59
|
+
maxwidth = DEFAULT_PRINT_WIDTH,
|
60
|
+
options: Formatter::Options.new
|
61
|
+
)
|
62
|
+
formatter = Formatter.new(source, [], maxwidth, options: options)
|
58
63
|
parse(source).format(formatter)
|
59
64
|
|
60
65
|
formatter.flush
|
61
66
|
formatter.output.join
|
62
67
|
end
|
63
68
|
|
69
|
+
# A convenience method for creating a new mutation visitor.
|
70
|
+
def self.mutation
|
71
|
+
visitor = Visitor::MutationVisitor.new
|
72
|
+
yield visitor
|
73
|
+
visitor
|
74
|
+
end
|
75
|
+
|
64
76
|
# Returns the source from the given filepath taking into account any potential
|
65
77
|
# magic encoding comments.
|
66
78
|
def self.read(filepath)
|
data/syntax_tree.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = %w[lib]
|
27
27
|
|
28
|
-
spec.add_dependency "prettier_print", ">= 1.0
|
28
|
+
spec.add_dependency "prettier_print", ">= 1.1.0"
|
29
29
|
|
30
30
|
spec.add_development_dependency "bundler"
|
31
31
|
spec.add_development_dependency "minitest"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: syntax_tree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Newton
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prettier_print
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.0
|
19
|
+
version: 1.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.0
|
26
|
+
version: 1.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,6 +102,7 @@ executables:
|
|
102
102
|
extensions: []
|
103
103
|
extra_rdoc_files: []
|
104
104
|
files:
|
105
|
+
- ".gitattributes"
|
105
106
|
- ".github/dependabot.yml"
|
106
107
|
- ".github/workflows/auto-merge.yml"
|
107
108
|
- ".github/workflows/gh-pages.yml"
|
@@ -143,6 +144,7 @@ files:
|
|
143
144
|
- lib/syntax_tree/visitor/field_visitor.rb
|
144
145
|
- lib/syntax_tree/visitor/json_visitor.rb
|
145
146
|
- lib/syntax_tree/visitor/match_visitor.rb
|
147
|
+
- lib/syntax_tree/visitor/mutation_visitor.rb
|
146
148
|
- lib/syntax_tree/visitor/pretty_print_visitor.rb
|
147
149
|
- lib/syntax_tree/visitor/with_environment.rb
|
148
150
|
- syntax_tree.gemspec
|