On 22/12/2022 04:31, Aaron Jensen wrote: > On Wed, Dec 21, 2022 at 5:48 PM Dmitry Gutov 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.