[erlang-patches] [erlang-bugs] erlang.el indenter

Tuncer Ayaz <>
Fri Jan 24 17:49:53 CET 2014


On Fri, Jan 24, 2014 at 3:55 PM, Henrik Nord <> wrote:
> Ping?!
>
> Any update regarding this?

Fredrik's patch introduced a regression, so should not be merged, but
the bugs in the indenter are still there.

Steve Vinoski also analyzed the issues a couple days ago, and he has
a more complete understanding of the Elisp code. Steve, can you
summarize what's broken?

> On 2012-08-22 19:10, Tuncer Ayaz wrote:
>>
>> On Wed, Aug 22, 2012 at 12:14 PM, Fredrik wrote:
>>>
>>> Hello Tomas,
>>> We have included this patch in the 'pu' branch.
>>> Thank you for the contribution!
>>
>> A quick test revealed that erlang.el from 'pu' erroneously
>> re-indents the already correctly indented rebar:option_spec_list/0
>> and also rebar:commands/0. Can you reproduce the regression?
>>
>>> On 08/21/2012 11:00 PM, Tomas Abrahamsson wrote:
>>>>
>>>> On Mon, Aug 6, 2012 at 7:42 PM, Tuncer Ayaz wrote:
>>>>>
>>>>> There seems to be a bug in the indenter that mis-indents
>>>>> rebar.erl:commands/0, if it's indented as part of a larger region.
>>>>> The multi-line binary string seems to be the problem.
>>>>>
>>>>> rebar.erl:commands/0:
>>>>> https://github.com/basho/rebar/blob/491d52298e2/src/rebar.erl#L275-311
>>>>>
>>>>> It works correctly when indenting the function itself with C-c C-q.
>>>>
>>>> Hi,
>>>>
>>>> Here is a patch for indenting of multi-line strings, like the
>>>> one previously reported by Tuncer Ayaz.
>>>>
>>>> git fetch git://github.com/tomas-abrahamsson/otp.git
>>>> emacs-indent-multi-line-string
>>>>
>>>>
>>>>
>>>> https://github.com/tomas-abrahamsson/otp/compare/emacs-indent-multi-line-string
>>>>
>>>>
>>>> https://github.com/tomas-abrahamsson/otp/compare/emacs-indent-multi-line-string.patch
>>>>
>>>> Here's an illustration of what the patch does,
>>>> excerpt from the commit msg:
>>>>
>>>>       Previously, typing C-M-\ or M-x indent-region RET on the
>>>> following:
>>>>
>>>>           somefunction() ->
>>>>               S =<<"
>>>>           text1 somemore1
>>>>           text2 somemore2
>>>>           ">>,
>>>>               io:put_chars(S).
>>>>
>>>>       resulted in this (note the "text2" line):
>>>>
>>>>           somefunction() ->
>>>>               S =<<"
>>>>           text1 somemore1
>>>>                     text2 somemore2
>>>>           ">>,
>>>>               io:put_chars(S).
>>>>
>>>>       Now, the indentation inside the multi-line string is left
>>>> unchanged.
>>>>       This is in line with how the Emacs C and Lisp mode treats
>>>> multi-line
>>>>       strings when indenting regions.


More information about the erlang-patches mailing list