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
[Message part 1 (text/plain, inline)]
On 22/12/2022 04:31, Aaron Jensen wrote:
> On Wed, Dec 21, 2022 at 5:48 PM Dmitry Gutov <dgutov <at> yandex.ru> wrote:
>> See this new patch instead.
>>
>> The code is messier than I'd like it to be, but it seems to handle all
>> of the cases mentioned so far and more (including the
>> dots-at-indentation style, thanks).
>
> Looks good, for the things I mentioned. I found one more case:
>
> x.foo do
> foo
> end.bar do
> bar
> end
>
> Should be:
>
> x.foo do
> foo
> end.bar do
> bar
> end
Hm, this one breaks the approach I used with the last patch (which was
to count lines from the beginning of the statement).
Let's see if blocks can just be aligned to the indentation of its
opener's line.
> I can't vouch for writing in this style, but it should only get one
> indentation increase in this instance, rather than, I believe.
>
> Interestingly enough, I found a bug with enh-ruby-mode that ruby-mode
> now indents correctly:
>
> x =
> bar(
> y
> ).map do |i|
> i
> end
Cool. It seems I broke it for the default indent algo, however. ;-( In
the previous patch.
See the new one attached.
BTW, I'm surprised you haven't mentioned the case of parenless calls:
foo bar,
baz,
tee
IUUC the Rails core has decided to forgo this indentation style. Not
sure about the statistics across other popular projects.
[ruby-simplified-indent-v4.diff (text/x-patch, attachment)]
This bug report was last modified 2 years and 177 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.