File tree Expand file tree Collapse file tree 2 files changed +67
-7
lines changed Expand file tree Collapse file tree 2 files changed +67
-7
lines changed Original file line number Diff line number Diff line change @@ -1998,12 +1998,18 @@ def format(q)
1998
1998
q . group { q . format ( left ) }
1999
1999
q . text ( " " ) unless power
2000
2000
2001
- q . group do
2001
+ if operator == :<<
2002
2002
q . text ( operator )
2003
+ q . text ( " " )
2004
+ q . format ( right )
2005
+ else
2006
+ q . group do
2007
+ q . text ( operator )
2003
2008
2004
- q . indent do
2005
- q . breakable ( power ? "" : " " )
2006
- q . format ( right )
2009
+ q . indent do
2010
+ q . breakable ( power ? "" : " " )
2011
+ q . format ( right )
2012
+ end
2007
2013
end
2008
2014
end
2009
2015
end
@@ -3253,7 +3259,12 @@ def format(q)
3253
3259
q . group do
3254
3260
q . format ( message )
3255
3261
q . text ( " " )
3256
- q . nest ( message . value . length + 1 ) { q . format ( arguments ) }
3262
+
3263
+ if align? ( self )
3264
+ q . nest ( message . value . length + 1 ) { q . format ( arguments ) }
3265
+ else
3266
+ q . format ( arguments )
3267
+ end
3257
3268
end
3258
3269
end
3259
3270
@@ -3280,6 +3291,18 @@ def to_json(*opts)
3280
3291
cmts : comments
3281
3292
} . to_json ( *opts )
3282
3293
end
3294
+
3295
+ private
3296
+
3297
+ def align? ( node )
3298
+ if node . arguments in Args [ parts : [ Def | Defs | DefEndless ] ]
3299
+ false
3300
+ elsif node . arguments in Args [ parts : [ Command => command ] ]
3301
+ align? ( command )
3302
+ else
3303
+ true
3304
+ end
3305
+ end
3283
3306
end
3284
3307
3285
3308
# CommandCall represents a method call on an object with arguments and no
@@ -7766,9 +7789,15 @@ def format(q)
7766
7789
q . format ( target )
7767
7790
q . text ( " " )
7768
7791
q . format ( operator )
7769
- q . indent do
7770
- q . breakable
7792
+
7793
+ if skip_indent?
7794
+ q . text ( " " )
7771
7795
q . format ( value )
7796
+ else
7797
+ q . indent do
7798
+ q . breakable
7799
+ q . format ( value )
7800
+ end
7772
7801
end
7773
7802
end
7774
7803
end
@@ -7800,6 +7829,13 @@ def to_json(*opts)
7800
7829
cmts : comments
7801
7830
} . to_json ( *opts )
7802
7831
end
7832
+
7833
+ private
7834
+
7835
+ def skip_indent?
7836
+ target . comments . empty? &&
7837
+ ( target . is_a? ( ARefField ) || AssignFormatting . skip_indent? ( value ) )
7838
+ end
7803
7839
end
7804
7840
7805
7841
# If you have a modifier statement (for instance a modifier if statement or a
Original file line number Diff line number Diff line change 5
5
-
6
6
foo barrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr,
7
7
bazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
8
+ %
9
+ meta1 def foo
10
+ end
11
+ %
12
+ meta2 meta1 def foo
13
+ end
14
+ %
15
+ meta3 meta2 meta1 def foo
16
+ end
17
+ %
18
+ meta1 def self.foo
19
+ end
20
+ %
21
+ meta2 meta1 def self.foo
22
+ end
23
+ %
24
+ meta3 meta2 meta1 def self.foo
25
+ end
26
+ %
27
+ meta1 def foo = 1
28
+ %
29
+ meta2 meta1 def foo = 1
30
+ %
31
+ meta3 meta2 meta1 def foo = 1
You can’t perform that action at this time.
0 commit comments