bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#60186: 29.0.60; ruby-mode indentation of multi-line expressions


From: Dmitry Gutov
Subject: bug#60186: 29.0.60; ruby-mode indentation of multi-line expressions
Date: Sun, 25 Dec 2022 23:23:45 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

X-Debbugs-CC: aaronjensen@gmail.com

Splitting off from debbugs#60186.

Since this setting also seems orthogonal to the "simplified" preference, and it'll require some more work.

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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]