Emacs Erlang mode

Olivier Boudeville <>
Sun Jan 31 21:49:04 CET 2010


Hello,

With Emacs, when using the erlang.el file (from R13B03), indenting 
apparently results in aligning the first parameter of a function, if 
that parameter has been put on next line, with a 2-character offset 
compared to the beginning of the function name, like in: (use fixed 
width characters to view the snippet layout correctly)

"""
get_textual_duration(FirstTimestamp,SecondTimestamp) ->
    {Days,{Hour, Minute, Second}} = calendar:seconds_to_daystime(
                                      get_duration( FirstTimestamp,
                                                    SecondTimestamp) ),

"""


It leads, when using long variable names and respecting a max line width 
of, say, 80 characters, to a kind of piling in the rightmost part of the 
text.

I know that these must be OTP formatting rules, but, for the ones that 
would prefer another layout, would there be a simple tweak to erlang.el 
so that the 2-character offset is applied to the indentation level of 
the previous line instead, like in:
"""
get_textual_duration(FirstTimestamp,SecondTimestamp) ->

    {Days,{Hour, Minute, Second}} = calendar:seconds_to_daystime(
      get_duration( FirstTimestamp, SecondTimestamp) ),
"""
(i.e. like when using "(arglist-intro . 2)" in emacs cc-mode)

Similarly, if a first parameter is specified and a new line is added, 
currently next parameter will be put just below it (ex: see 
SecondTimestamp in the original example), whereas one may prefer that 
again a 2-character offset is applied to the indentation level of the 
previous line instead, resulting in a more compact statement (it would 
be "(arglist-cont-nonempty . 2)" in emacs cc-mode)

I suspect that the solution would lie, in erlang.el, in the 
erlang-calculate-stack-indent function but it exceeds my elisp knowledge.

Any idea?

I am reluctant either to define in functions too many intermediate 
variables that would be used only once, or to shorten my variable names, 
because I think it would obfuscate the code.

Thanks in advance for any information,
Best regards,

Olivier.




More information about the erlang-questions mailing list