GNU bug report logs -
#60321
29.0.60; ruby-mode indentation of hash or array as first arg in multiline method call
Previous Next
Reported by: Dmitry Gutov <dgutov <at> yandex.ru>
Date: Sun, 25 Dec 2022 21:30:02 UTC
Severity: normal
Merged with 72099
Found in versions 29.0.60, 31.0.50
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
X-Debbugs-CC: aaronjensen <at> gmail.com
Splitting off from debbugs#60186, second try.
Since this setting also seems orthogonal to the "simplified" preference,
and it'll require some more work.
For future reference, here are the relevant Rubocop settings:
https://docs.rubocop.org/rubocop/cops_layout.html#layoutfirsthashelementindentation
https://docs.rubocop.org/rubocop/cops_layout.html#layoutfirstarrayelementindentation
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 319 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.