rufo 0.0.14 → 0.0.15
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 +51 -8
- data/lib/rufo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 58d381d047814159725642414cb1a125ec50d64e
|
|
4
|
+
data.tar.gz: 7464184e3f7d22c002de35262849aef5e4d2c7a6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 796b5876a25028f262840d138d83fd7e506e29322e2c7c20b6f30dbd6cfa0050bbe6e329eaa66a821f651637704e4d337249f44ef23d9670b67f3657eeaa9c5f
|
|
7
|
+
data.tar.gz: 51bcf73cfd16618b9d512325a74acbddbd6936e61c1ec1069af28a613ebabe20209ec4f85bcebd2378b69fc75af7f37b0227d5cb919cbc9ce78f2a5e76e24688
|
data/lib/rufo/formatter.rb
CHANGED
|
@@ -41,6 +41,11 @@ class Rufo::Formatter
|
|
|
41
41
|
# Position of comments that occur at the end of a line
|
|
42
42
|
@comments_positions = []
|
|
43
43
|
|
|
44
|
+
# Associate a line to an index inside @comments_position
|
|
45
|
+
# becuase when aligning something to the left of a comment
|
|
46
|
+
# we need to adjust the relative comment
|
|
47
|
+
@line_to_comments_position_index = {}
|
|
48
|
+
|
|
44
49
|
# Position of assignments
|
|
45
50
|
@assignments_positions = []
|
|
46
51
|
|
|
@@ -86,9 +91,9 @@ class Rufo::Formatter
|
|
|
86
91
|
consume_end
|
|
87
92
|
write_line unless @last_was_newline
|
|
88
93
|
|
|
89
|
-
do_align_comments if @align_comments
|
|
90
94
|
do_align_assignments if @align_assignments
|
|
91
95
|
do_align_hash_keys if @align_hash_keys
|
|
96
|
+
do_align_comments if @align_comments
|
|
92
97
|
end
|
|
93
98
|
|
|
94
99
|
def visit(node)
|
|
@@ -488,7 +493,15 @@ class Rufo::Formatter
|
|
|
488
493
|
_, string1, string2 = node
|
|
489
494
|
|
|
490
495
|
visit string1
|
|
491
|
-
|
|
496
|
+
|
|
497
|
+
if skip_space_backslash
|
|
498
|
+
write " \\"
|
|
499
|
+
write_line
|
|
500
|
+
write_indent
|
|
501
|
+
else
|
|
502
|
+
consume_space
|
|
503
|
+
end
|
|
504
|
+
|
|
492
505
|
visit string2
|
|
493
506
|
end
|
|
494
507
|
|
|
@@ -628,6 +641,7 @@ class Rufo::Formatter
|
|
|
628
641
|
end
|
|
629
642
|
|
|
630
643
|
def track_comment
|
|
644
|
+
@line_to_comments_position_index[@line] = @comments_positions.size
|
|
631
645
|
@comments_positions << [@line, @column, 0, nil, 0]
|
|
632
646
|
end
|
|
633
647
|
|
|
@@ -838,7 +852,13 @@ class Rufo::Formatter
|
|
|
838
852
|
|
|
839
853
|
push_call(node) do
|
|
840
854
|
visit name
|
|
841
|
-
|
|
855
|
+
if skip_space_backslash
|
|
856
|
+
write " \\"
|
|
857
|
+
write_line
|
|
858
|
+
write_indent(next_indent)
|
|
859
|
+
else
|
|
860
|
+
consume_space
|
|
861
|
+
end
|
|
842
862
|
end
|
|
843
863
|
|
|
844
864
|
visit_command_end(node, args)
|
|
@@ -1340,8 +1360,16 @@ class Rufo::Formatter
|
|
|
1340
1360
|
else
|
|
1341
1361
|
needs_space = op != :* && op != :/ && op != :**
|
|
1342
1362
|
end
|
|
1343
|
-
|
|
1344
|
-
|
|
1363
|
+
|
|
1364
|
+
if skip_space_backslash
|
|
1365
|
+
needs_space = true
|
|
1366
|
+
write " \\"
|
|
1367
|
+
write_line
|
|
1368
|
+
write_indent(next_indent)
|
|
1369
|
+
else
|
|
1370
|
+
write_space " " if needs_space
|
|
1371
|
+
end
|
|
1372
|
+
|
|
1345
1373
|
consume_op_or_keyword op
|
|
1346
1374
|
indent_after_space right, false, needs_space
|
|
1347
1375
|
end
|
|
@@ -2353,6 +2381,15 @@ class Rufo::Formatter
|
|
|
2353
2381
|
end
|
|
2354
2382
|
end
|
|
2355
2383
|
|
|
2384
|
+
def skip_space_backslash
|
|
2385
|
+
has_slash_newline = false
|
|
2386
|
+
while space?
|
|
2387
|
+
has_slash_newline ||= current_token_value == "\\\n"
|
|
2388
|
+
next_token
|
|
2389
|
+
end
|
|
2390
|
+
has_slash_newline
|
|
2391
|
+
end
|
|
2392
|
+
|
|
2356
2393
|
def skip_space_or_newline(want_semicolon = false)
|
|
2357
2394
|
found_newline = false
|
|
2358
2395
|
found_comment = false
|
|
@@ -2763,7 +2800,7 @@ class Rufo::Formatter
|
|
|
2763
2800
|
end
|
|
2764
2801
|
|
|
2765
2802
|
def do_align_comments
|
|
2766
|
-
do_align @comments_positions
|
|
2803
|
+
do_align @comments_positions, false
|
|
2767
2804
|
end
|
|
2768
2805
|
|
|
2769
2806
|
def do_align_assignments
|
|
@@ -2774,7 +2811,7 @@ class Rufo::Formatter
|
|
|
2774
2811
|
do_align @hash_keys_positions
|
|
2775
2812
|
end
|
|
2776
2813
|
|
|
2777
|
-
def do_align(elements)
|
|
2814
|
+
def do_align(elements, adjust_comments = true)
|
|
2778
2815
|
lines = @output.lines
|
|
2779
2816
|
|
|
2780
2817
|
elements.reject! { |l, c, indent, id, off, ignore| ignore == :ignore }
|
|
@@ -2800,7 +2837,13 @@ class Rufo::Formatter
|
|
|
2800
2837
|
before = target_line[0...split_index]
|
|
2801
2838
|
after = target_line[split_index..-1]
|
|
2802
2839
|
|
|
2803
|
-
|
|
2840
|
+
filler_size = max_column - column
|
|
2841
|
+
filler = " " * filler_size
|
|
2842
|
+
|
|
2843
|
+
if adjust_comments && (index = @line_to_comments_position_index[line])
|
|
2844
|
+
@comments_positions[index][1] += filler_size
|
|
2845
|
+
end
|
|
2846
|
+
|
|
2804
2847
|
lines[line] = "#{before}#{filler}#{after}"
|
|
2805
2848
|
end
|
|
2806
2849
|
end
|
data/lib/rufo/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rufo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.15
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ary Borenszweig
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-06-
|
|
11
|
+
date: 2017-06-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|