rufo 0.0.13 → 0.0.14
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/lib/rufo/formatter.rb +68 -4
- data/lib/rufo/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b047d001bf378b8733edc5693f53028394707a7
|
4
|
+
data.tar.gz: eeebbd17f2c9a4bd8a432629bc008bebfced7204
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '082317f331df08fca9951fd18d64b458da6ce0fd118a1129da5f6b54e81b8618ce3e5894cda151c40246ed71dc3d12e19c3db3d06b4a9a12c1bbbffd06cf6b39'
|
7
|
+
data.tar.gz: 71e4d7f9c434c7693202a639d3644e93d5124070bd5ee4908efed5aa957aaef2018a8170d4ada5ba07a328a90654e8fbbd3f2504a757a8235a33bef336098840
|
data/lib/rufo/formatter.rb
CHANGED
@@ -83,7 +83,9 @@ class Rufo::Formatter
|
|
83
83
|
|
84
84
|
def format
|
85
85
|
visit @sexp
|
86
|
+
consume_end
|
86
87
|
write_line unless @last_was_newline
|
88
|
+
|
87
89
|
do_align_comments if @align_comments
|
88
90
|
do_align_assignments if @align_assignments
|
89
91
|
do_align_hash_keys if @align_hash_keys
|
@@ -115,6 +117,16 @@ class Rufo::Formatter
|
|
115
117
|
#
|
116
118
|
# [:@int, "123.45", [1, 0]]
|
117
119
|
consume_token :on_float
|
120
|
+
when :@rational
|
121
|
+
# Rational literal
|
122
|
+
#
|
123
|
+
# [:@rational, "123r", [1, 0]]
|
124
|
+
consume_token :on_rational
|
125
|
+
when :@imaginary
|
126
|
+
# Imaginary literal
|
127
|
+
#
|
128
|
+
# [:@imaginary, "123i", [1, 0]]
|
129
|
+
consume_token :on_imaginary
|
118
130
|
when :@CHAR
|
119
131
|
# [:@CHAR, "?a", [1, 0]]
|
120
132
|
consume_token :on_CHAR
|
@@ -332,7 +344,7 @@ class Rufo::Formatter
|
|
332
344
|
visit_super(node)
|
333
345
|
when :defined
|
334
346
|
visit_defined(node)
|
335
|
-
when :alias
|
347
|
+
when :alias, :var_alias
|
336
348
|
visit_alias(node)
|
337
349
|
when :undef
|
338
350
|
visit_undef(node)
|
@@ -343,6 +355,10 @@ class Rufo::Formatter
|
|
343
355
|
consume_keyword "retry"
|
344
356
|
when :for
|
345
357
|
visit_for(node)
|
358
|
+
when :BEGIN
|
359
|
+
visit_BEGIN(node)
|
360
|
+
when :END
|
361
|
+
visit_END(node)
|
346
362
|
else
|
347
363
|
bug "Unhandled node: #{node.first}"
|
348
364
|
end
|
@@ -586,9 +602,8 @@ class Rufo::Formatter
|
|
586
602
|
visit_comma_separated_list lefts
|
587
603
|
skip_space
|
588
604
|
|
589
|
-
# A trailing comma can come after the left hand side
|
590
|
-
|
591
|
-
next_token if comma?
|
605
|
+
# A trailing comma can come after the left hand side
|
606
|
+
consume_token :on_comma if comma?
|
592
607
|
|
593
608
|
consume_space
|
594
609
|
track_assignment
|
@@ -1198,6 +1213,39 @@ class Rufo::Formatter
|
|
1198
1213
|
consume_keyword "end"
|
1199
1214
|
end
|
1200
1215
|
|
1216
|
+
def visit_BEGIN(node)
|
1217
|
+
visit_BEGIN_or_END node, "BEGIN"
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
def visit_END(node)
|
1221
|
+
visit_BEGIN_or_END node, "END"
|
1222
|
+
end
|
1223
|
+
|
1224
|
+
def visit_BEGIN_or_END(node, keyword)
|
1225
|
+
# [:BEGIN, body]
|
1226
|
+
_, body = node
|
1227
|
+
|
1228
|
+
consume_keyword(keyword)
|
1229
|
+
consume_space
|
1230
|
+
|
1231
|
+
closing_brace_token = find_closing_brace_token
|
1232
|
+
|
1233
|
+
# If the whole block fits into a single line, format
|
1234
|
+
# in a single line
|
1235
|
+
if current_token[0][0] == closing_brace_token[0][0]
|
1236
|
+
consume_token :on_lbrace
|
1237
|
+
consume_space
|
1238
|
+
visit_exps body, false, false
|
1239
|
+
consume_space
|
1240
|
+
consume_token :on_rbrace
|
1241
|
+
else
|
1242
|
+
consume_token :on_lbrace
|
1243
|
+
indent_body body
|
1244
|
+
write_indent
|
1245
|
+
consume_token :on_rbrace
|
1246
|
+
end
|
1247
|
+
end
|
1248
|
+
|
1201
1249
|
def visit_comma_separated_list(nodes, inside_call = false)
|
1202
1250
|
# When there's *x inside a left hand side assignment
|
1203
1251
|
# or a case when, it comes as [:op, ...]
|
@@ -2506,6 +2554,21 @@ class Rufo::Formatter
|
|
2506
2554
|
next_token
|
2507
2555
|
end
|
2508
2556
|
|
2557
|
+
def consume_end
|
2558
|
+
return unless current_token_kind == :on___end__
|
2559
|
+
|
2560
|
+
line = current_token[0][0]
|
2561
|
+
|
2562
|
+
write_line
|
2563
|
+
consume_token :on___end__
|
2564
|
+
|
2565
|
+
lines = @code.lines[line..-1]
|
2566
|
+
lines.each do |line|
|
2567
|
+
write line.chomp
|
2568
|
+
write_line
|
2569
|
+
end
|
2570
|
+
end
|
2571
|
+
|
2509
2572
|
def indent(value = nil)
|
2510
2573
|
if value
|
2511
2574
|
old_indent = @indent
|
@@ -2662,6 +2725,7 @@ class Rufo::Formatter
|
|
2662
2725
|
return token if count == 0
|
2663
2726
|
end
|
2664
2727
|
end
|
2728
|
+
nil
|
2665
2729
|
end
|
2666
2730
|
|
2667
2731
|
def next_token
|
data/lib/rufo/version.rb
CHANGED