GNU bug report logs - #16907
24.3.50; [ruby-mode] %w/W literals have incorrect indentation

Previous Next

Package: emacs;

Reported by: Bozhidar Batsov <bozhidar <at> batsov.com>

Date: Fri, 28 Feb 2014 15:41:02 UTC

Severity: minor

Found in version 24.3.50

Full log


Message #8 received at 16907 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Bozhidar Batsov <bozhidar <at> batsov.com>
Cc: 16907 <at> debbugs.gnu.org
Subject: Re: bug#16907: 24.3.50;
 [ruby-mode] %w/W literals have incorrect indentation
Date: Sat, 01 Mar 2014 03:55:02 +0200
(This is probably too late for 24.4)

Bozhidar Batsov <bozhidar <at> batsov.com> writes:

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

And %i/I too, I guess.

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).

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.

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.

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




This bug report was last modified 11 years and 163 days ago.

Previous Next


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