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

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

bug#61017: 29.0.60; ruby-ts-mode indents class between two lines incorre


From: Dmitry Gutov
Subject: bug#61017: 29.0.60; ruby-ts-mode indents class between two lines incorrectly
Date: Mon, 23 Jan 2023 23:28:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

Hi!

On 23/01/2023 06:33, Aaron Jensen wrote:

Start with a buffer in ruby-ts-mode like:

a

b

Between the two lines, type "class Foo", then press enter

You should get this:

a

   class Foo

b

But this is expected:

a

class Foo

b

Note that reindenting after adding the "end" will indent correctly, so
it's only an issue with electric indent

Thanks for the report, the problem here is that such examples parse into a malformed syntax tree:

  (program (identifier)
   (ERROR class (constant) (identifier)))

Another example would be:

  class C
    def foo

which parses as

  (ERROR class (constant) def (identifier))

We can try to anticipate such cases and infer the implied structure somehow, or just disable indentation for specific cases. See the attached patch for the latter.

Is it enough of an improvement?

Attachment: ruby-ts-error-indent.diff
Description: Text Data


reply via email to

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