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 #11 received at 60321 <at> debbugs.gnu.org (full text, mbox):
On 26/12/2022 01:46, Aaron Jensen wrote:
> enh-ruby-mode and vim do the same thing, which I think is fine:
>
> takes_multi_pairs_hash(x: {
> a: 1,
> b: 2
> })
Makes sense to me, I just wanted to keep this case in the bug report
because it will likely need a separate indentation rule or a separate
clause.
>> and_in_a_method_call({
>> no: :difference
>> },
>> foo,
>> bar)
>
> enh-ruby-mode:
>
> and_in_a_method_call({
> no: :difference
> },
> foo,
> bar)
>
>
> Vim:
>
> and_in_a_method_call({
> no: :difference
> },
> foo,
> bar)
Vim's choice looks saner to my eye. Probably comes down to the choice of
indentation algorithm, though.
> I think this falls under something I wouldn't put too much effort into
> fixing. I would write it like this:
>
> and_in_a_method_call(
> {
> no: :difference
> },
> foo,
> bar
> )
>
> Which indents in a straightforward manner.
Indeed. But this works already, no changes required.
> If I had to type it as above, I would probably indent it like this:
>
> and_in_a_method_call({
> no: :difference
> },
> foo,
> bar)
>
> But I can't imagine that would be easy to implement at all, so I
> wouldn't bother.
The indentation logic itself might be not that difficult to write, but
the fact that the expression will have to be reindented as soon as the
method call grows a second argument (after the user types the comma?),
makes it a hard sell usability-wise.
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.