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

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

bug#16907: Fw: bug#16907: 24.3.50; [ruby-mode] %w/W literals have incorr


From: Bozhidar Batsov
Subject: bug#16907: Fw: bug#16907: 24.3.50; [ruby-mode] %w/W literals have incorrect indentation
Date: Sat, 1 Mar 2014 13:01:54 +0200


From:
Bozhidar Batsov <bozhidar@batsov.com>
To: Dmitry Gutov <dgutov@yandex.ru>
Date: Saturday, March 1, 2014 at 1:00:52 PM
Subject: Re: bug#16907: 24.3.50; [ruby-mode] %w/W literals have incorrect indentation



-- 
Cheers,
Bozhidar

On Saturday, March 1, 2014 at 3:55 AM, Dmitry Gutov wrote:

(This is probably too late for 24.4)
Hope it’s not :-) (although it’s not a big deal obviously). 

Bozhidar Batsov <bozhidar@batsov.com> writes:

%w/W should be indented like other array literals.

And %i/I too, I guess.
Indeed. I forgot about them. 

Looks like this'll have to be done in two parts:

1. syntax-propertize the above cases differently from the rest of the
percent literals (which are treated like strings).
I was thinking more or less the same.  

Don't know exactly what syntax to use. The values can contain any
unpaired characters, except those delimiting them. Put syntax "symbol"
on everything inside them, except whitespace?

And still handle interpolations somehow.
Sounds reasonable. Not sure how hard it would be to implement. 

2. Tokenize the elements inside the above literals without regard to
characters used in them. `ruby-smie--backward-token' and its counterpart
would have to be able to easily know when it's inside such literal.

Alternatively, still propertize them as "general strings", but replace
`smie-indent-inside-string' in `smie-indent-functions' with a
specialized version that would look at what the string begins with.
Option 1 seems better/cleaner to me, but obviously I’m not as familiar as you with the existing code, so
it’s ultimately your call.
 

The change in syntax highlighting would have to be handled separately.



reply via email to

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