GNU bug report logs -
#60186
29.0.60; ruby-mode indentation of multi-line expressions
Previous Next
Reported by: Aaron Jensen <aaronjensen <at> gmail.com>
Date: Mon, 19 Dec 2022 02:55:02 UTC
Severity: normal
Found in version 29.0.60
Fixed in version 29.1
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
X-Debbugs-CC: aaronjensen <at> gmail.com
Splitting off from debbugs#60186.
Since this setting also seems orthogonal to the "simplified" preference,
and it'll require some more work.
On 25/12/2022 02:12, Aaron Jensen wrote:
>> We could also discuss cases like
>>
>> foo = bar({
>> tee: 1,
>> qux: 2
>> })
>>
>> baz([
>> 1,
>> 2,
>> 3
>> ])
>>
>> but those would be an orthogonal feature. And I don't see them much in
>> the wild, for some reason.
> The same logic would apply. It doesn't matter how many indent starters
> there are in a line, the indentation should only increase by one:
>
>
> foo = bar({
> tee: 1,
> qux: 2
> })
>
> baz([
> 1,
> 2,
> 3
> ])
>
> Of course, that begs the question what happens if you do this:
>
> baz([
> 1,
> 2,
> 3
> ]
> )
Here are a couple trickier examples:
takes_multi_pairs_hash(x: {
a: 1,
b: 2
})
and_in_a_method_call({
no: :difference
},
foo,
bar)
AFAICT even Rubocop doesn't have a setting which would indent the second
one somewhat reasonably, while keeping two-space indent before "no".
> And, I think again, the answer is a social one, rather than a technical one.
>
> enh-ruby-mode and vim both do this this:
>
> baz([
> 1,
> 2,
> 3
> ]
> )
Yup, that looks pretty bizarre. OTOH, I don't see why a developer would
put a newline between "]" and ")" in this case.
This bug report was last modified 2 years and 176 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.