GNU bug report logs - #32496
27.0.50; Strange indentation when ruby-align-chained-calls is t

Previous Next

Package: emacs;

Reported by: bruce.connor.am <at> gmail.com

Date: Wed, 22 Aug 2018 11:37:01 UTC

Severity: minor

Found in version 27.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Bozhidar Batsov <bozhidar <at> batsov.com>
To: Artur Malabarba <bruce.connor.am <at> gmail.com>
Cc: 32496 <at> debbugs.gnu.org, Dmitry Gutov <dgutov <at> yandex.ru>
Subject: bug#32496: 27.0.50; Strange indentation when ruby-align-chained-calls is t
Date: Sun, 18 Nov 2018 09:36:17 +0100
[Message part 1 (text/plain, inline)]
Sorry for the radio silence - I've been super busy lately.

It's hard for me to understand the indentation in the examples in the email
(as it seems the same to me). Very simply put - the idea is to align
multi-line chained calls on the `.`, as opposed to just nest them under the
root receiver as we'd normally do.

I think Dmitry implemented this great and it's behaving just as it's
supposed to be behaving. Perhaps you misunderstood how this was supposed to
behave? What's the indentation you expected?

On Sun, 28 Oct 2018 at 00:22, Artur Malabarba <bruce.connor.am <at> gmail.com>
wrote:

> IIUC, bozhidar was requesting that the dots be aligned to the dot above
> (as opposed to being indented by only 2 spaces). He didn't say what should
> happen if one of the lines has multiple dots in it.
>
> The linked github comment does explicitly request the aligning to the last
> dot, but it's the only comment that requests that on a very long discussion
> that was largely focused on a different topic (whether or not to use
> trailing dots).
>
> Bozhidar, do you have an opinion on this?
>
> Artur
>
>
> On Wed, 22 Aug 2018 at 09:50, Dmitry Gutov <dgutov <at> yandex.ru> wrote:
>
>> On 8/22/18 2:36 PM, Artur Malabarba wrote:
>> > 1. (setq ruby-align-chained-calls t)
>> > 2. (setq ruby-use-smie t)
>> > 3. Open a file in ruby-mode, insert the following and indent it
>> >
>> > ----------
>> > some_variable.where.not(x: nil)
>> >               .where(y: 2)
>> > ----------
>> >
>> > Expected behaviour: Nothing would happen, the code is already properly
>> > indented.
>> >
>> > What actually happens: The code gets indented as follows
>> >
>> > ----------
>> > some_variable.where.not(x: nil)
>> >                     .where(y: 2)
>> > ----------
>> >
>> > Note that this is conflicts with the indentation enforced by rubocop.
>>
>> I'd like to point out that this is exactly the behavior Bozhidar asked
>> for, back when this variable was introduced. See:
>>
>> http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01802.html
>>
>> and in particular the Example 1 in the referenced comment:
>>
>>
>> https://github.com/rubocop-hq/ruby-style-guide/pull/176#issuecomment-18664622
>>
>> So we even have a test (ruby-align-chained-calls) that check that the
>> alignment is do to the last dot, and not to the first one.
>>
>
[Message part 2 (text/html, inline)]

This bug report was last modified 3 years and 258 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.