[erlang-questions] erlang emacs mode question

60 views
Skip to first unread message

Göran Båge

unread,
Dec 14, 2009, 10:56:02 AM12/14/09
to erlang-q...@erlang.org
Hi,

Is there a reason why the erlang emacs mode treats comment (^C^C) and un-comment
(^C^U) asymmetrical, comment adds '%% ' and uncomment removes '%'. Pretty
annoying if you ask me (but who would even think of doing that :-). It used
to work by adding only '%' earlier (maybe very much earlier like in R9 or so).

Cheers
--
-- Goran
--------------------- May the Snow be with you --------
Goran Bage MobileArts www.mobilearts.se
Tjarhovsgatan 56 SE-116 28 STOCKHOLM Sweden
goran...@mobilearts.se phone: +46 733 358405

________________________________________________________________
erlang-questions mailing list. See http://www.erlang.org/faq.html
erlang-questions (at) erlang.org

Dan Gudmundsson

unread,
Dec 14, 2009, 11:10:16 AM12/14/09
to Göran Båge, erlang-q...@erlang.org
On Mon, Dec 14, 2009 at 4:56 PM, Göran Båge <goran...@mobilearts.com> wrote:
> Hi,
>
> Is there a reason why the erlang emacs mode treats comment (^C^C) and
> un-comment
> (^C^U) asymmetrical, comment adds '%% ' and uncomment removes '%'. Pretty
> annoying if you ask me (but who would even think of doing that :-). It used
> to work by adding only '%' earlier (maybe very much earlier like in R9 or
> so).

Have you tried the latest erlang mode, on github or in R13B03?

Both ^U^C^C and ^C^U works for me.

/Dan
PS: There are a lot of changes in the latest release of the erlang emacs mode,
so if we broke something please report or even better post a patch.

Göran Båge

unread,
Dec 14, 2009, 11:36:31 AM12/14/09
to Dan Gudmundsson, erlang-q...@erlang.org
Thanks Dan,

Yes it worked in R13B03, adding '%% ' and removing '%% '. Just my kind
of timing bringing it up just when it was fixed, it's been bugging me for
quite some time before I got around to asking:-). We are very slow
moving to new releases as we have long lived products running out there,
we still have some R9 based ones and I've not run R13 before, just installed
it as a matter of fact.

Cheers
--Göran

Dan Gudmundsson wrote:
> On Mon, Dec 14, 2009 at 4:56 PM, Göran Båge<goran...@mobilearts.com> wrote:
>> Hi,
>>
>> Is there a reason why the erlang emacs mode treats comment (^C^C) and
>> un-comment
>> (^C^U) asymmetrical, comment adds '%% ' and uncomment removes '%'. Pretty
>> annoying if you ask me (but who would even think of doing that :-). It used
>> to work by adding only '%' earlier (maybe very much earlier like in R9 or
>> so).
>
> Have you tried the latest erlang mode, on github or in R13B03?
>
> Both ^U^C^C and ^C^U works for me.
>
> /Dan
> PS: There are a lot of changes in the latest release of the erlang emacs mode,
> so if we broke something please report or even better post a patch.

--

-- Goran
--------------------- May the Snow be with you --------
Goran Bage MobileArts www.mobilearts.se
Tjarhovsgatan 56 SE-116 28 STOCKHOLM Sweden
goran...@mobilearts.se phone: +46 733 358405

________________________________________________________________

Logan, Martin

unread,
Dec 14, 2009, 5:28:55 PM12/14/09
to Göran Båge, Dan Gudmundsson, erlang-q...@erlang.org
BTW, the erlware erlang mode "erlware-mode" is much better than the erlang mode. Many bugs have been fixed and the skeletons are all edoc'd. It has been well maintained for over 2 years and is now way ahead IMHO. You can find it at erlware.org or over at the google code site code.google.com/p/erlware-mode

Cheers,
Martin

Dan Gudmundsson

unread,
Dec 15, 2009, 3:32:29 AM12/15/09
to Logan, Martin, erlang-q...@erlang.org
Hi Martin

I guess you haven't tested the new erlang mode either :-)
or have you incorporated the fixes we have done?

I used the erlware version myself before Kenneth hit me hard and told
me to fix our version and apply the patches we had received.

The one thing I miss is the edoc skeltons which you have and that you broke
out the skeletons to a separate file.
I don't use distel either so maybe your variant works better with that.

But I have "stolen" some of the fixes you had and done many more and added
several large patches from Anders Dahlin and Tomas Abrahamsson into
which I think
is a better version.

Hopefully now with erlang on github we can join our efforts again, so
that we can
get the best of the two things. I know that our support of the emacs
mode havn't been
the best and when time is tight the emacs mode get down prioritized.
It will probably happen again but now with erlang on github available
it should be easier to
apply the improvements the community makes.

Cheers (I think I owe you one)
/Dan

Anders Dahlin

unread,
Dec 15, 2009, 7:35:05 AM12/15/09
to erlang-q...@erlang.org
The one bug I know about in the emacs mode released with R13B03 is that
in a fully qualified function call where the function name is identical
to an existing BIF, the function name will be highlighted as a BIF.
Example: in foo:hd(X) ‘hd’ will be highlighted.

The new emacs mode supports emacs 21.3 and later versions. It should
compile without warnings on 21.3, 22.x and 23.x. If support for 21.3
could be dropped, elisp regexps used for various things in the mode
could be improved, but a large company closely involved with Erlang/OTP
is stuck on 21.3, so that's not an option :)

Probably the most visual differences are the changes to the syntax
highlighting (there's a fourth level and the known set of bifs, guards,
keywords etc are near complete) and the fixes to the indentation (guards
and type defs improved a lot).

Regarding the skeletons, I'd prefer an option to use edoc compatible or
not. Probably type defs should be added as well.

Another difference is not being able to switch between “old style
comment indentations”. I did not add that since I think the new style
is simply wrong (IMHO), but it's of course easy to add.

For those who like to have different length of the separators used in
the skeletons, there's a non-document setting that can be used (the
default value is 70):

;; Set the length of the skeleton separators.
(setq erlang-skel-separator-length 90)

It would be interesting to know which versions of emacs that the erlang
community thinks should be supported and also if there's any
functionality missing.

/Anders

Joe Armstrong

unread,
Dec 15, 2009, 8:48:05 AM12/15/09
to Logan, Martin, Göran Båge, Dan Gudmundsson, erlang-q...@erlang.org
I'd missed this. Seems to work very nicely apart from a bug in func9 -
tab on the commented line indents
like this:

func9(Term, [${|T]) ->
% above should be highlighted correctly
% all function body lines should not indent further on tab
T.


And not like this:

func9(Term, [${|T]) ->
% above should be highlighted correctly
% all function body lines should not indent further on tab
T.

On Mon, Dec 14, 2009 at 11:28 PM, Logan, Martin <MARTIN...@orbitz.com> wrote:

Joe Armstrong

unread,
Dec 15, 2009, 8:51:07 AM12/15/09
to Logan, Martin, Göran Båge, Dan Gudmundsson, erlang-q...@erlang.org
Sorry last posting got posted too early when I hit a tab :-)

The line following ${, moves too far to the right when I hit tab
I guess it's confused by the ${

(With comment-multi-line = true)

/Joe

Håkan Mattsson

unread,
Dec 15, 2009, 9:03:50 AM12/15/09
to Joe Armstrong, Logan, Martin, Göran Båge, Dan Gudmundsson, erlang-q...@erlang.org
This works as a breeze in the R13B03 Emacs mode.

func9(Term, [${|T]) ->

%% above should be highlighted correctly
%% all function body lines should not indent further on tab
T.

/Håkan

On Tue, Dec 15, 2009 at 2:48 PM, Joe Armstrong <erl...@gmail.com> wrote:

Anthony Shipman

unread,
Dec 15, 2009, 11:24:21 AM12/15/09
to erlang-q...@erlang.org
Here are things I would like to see in an emacs mode:

Put {} and [] and () and <<>> in different colours/weights so that data
structures and code is more readable.

Put variables in bold so that they are distinct from atoms etc.

--
Anthony Shipman Mamas don't let your babies
a...@iinet.net.au grow up to be outsourced.

Logan, Martin

unread,
Dec 15, 2009, 11:30:11 AM12/15/09
to Dan Gudmundsson, erlang-q...@erlang.org, da...@krondo.com
:-) Well I am glad that the regular mode benefited from it. The thanks for the Erlware mode really goes out to Dave Peticolas who owns it and maintains it quite well. He has added quite a lot of new support for things like flymake and a bunch of other cool stuff which does not spring to mind right now.

Perhaps there is a way we can collaborate more actively now with Erlang up on github as you say.

Cheers,
Martin

P.S I will take that "owe me one" in the form of a beer next year at EUC ;-)

Dale Harvey

unread,
Dec 15, 2009, 1:13:12 PM12/15/09
to Logan, Martin, Dan Gudmundsson, erlang-q...@erlang.org, da...@krondo.com
while people are mentioning feature requests, I would love to be able to
make
-spec( not quite as visually distracting/prominent as they are now

but thanks for the work, Ive been using erlware mode for a while now, would
love to see it get folder back in to core erlang

2009/12/15 Logan, Martin <MARTIN...@orbitz.com>

Joe Armstrong

unread,
Dec 15, 2009, 2:37:53 PM12/15/09
to Dale Harvey, Logan, Martin, Dan Gudmundsson, erlang-q...@erlang.org, da...@krondo.com
I have a feature request. Integrate with org-mode

http://orgmode.org/

Org-mode is amazing "some people spend their entire life in org-mode"
- it turns emacs into
a proper folding editor/organiser.

Warning: org-mode is addictive

What I'd like is "org mode erlang editing"

hit tab on the first line of a function definition hides or reveals
the body of the function.
hit meta-uparrow on the first line of a function move the function up
in the file.

This could be integrated with a refactoring program to move functions
between modules with one keystroke

/Joe

Dave Peticolas

unread,
Dec 15, 2009, 9:54:15 PM12/15/09
to Logan, Martin, Dan Gudmundsson, erlang-q...@erlang.org
I'm glad the default mode is now getting some love. Going forward,
I think it would be best to combine efforts and avoid a separate
fork if possible, it's just easier for everyone that way. It sounds
like the main remaining difference is the skeletons? Is there any
plan to roll the erlware skeletons into the main version? And did
you also incorporate flymake support? That's really quite handy.

thanks,
dave

Dan Gudmundsson

unread,
Dec 16, 2009, 2:30:08 AM12/16/09
to Dave Peticolas, erlang-q...@erlang.org
My plan was to fix the bugs that I could, and depend on the community
to add new cool stuff and fix the hard parts that I can't.

So please send patches/improvements and I promise to be more active
and give them some love.

/Dan

Dave Peticolas

unread,
Dec 16, 2009, 9:38:47 PM12/16/09
to Dan Gudmundsson, erlang-q...@erlang.org
Will do. I'll take a look and see what else might be moved into the
main mode and send you some patches.

Martin Bjorklund

unread,
Dec 17, 2009, 3:15:52 PM12/17/09
to erl...@gmail.com, erlang-q...@erlang.org
Hi,

Joe Armstrong <erl...@gmail.com> wrote:
> What I'd like is "org mode erlang editing"
>
> hit tab on the first line of a function definition hides or reveals
> the body of the function.
> hit meta-uparrow on the first line of a function move the function up
> in the file.

You can configure outline mode to do this, sort of. Put this in
.emacs. Instead of <tab> as you suggested, use C-left / C-right.

This way it shows / hides each function clause as a separate item, but
you probably want to treat the complete function as one entity. I'm
sure it is doable...


(defun show-onelevel ()
"show entry and children in outline mode"
(interactive)
(show-entry)
(show-children))

(defun my-outline-bindings ()
"sets shortcut bindings for outline minor mode"
(interactive)
(local-set-key [C-up] 'outline-previous-visible-heading)
(local-set-key [C-down] 'outline-next-visible-heading)
(local-set-key [C-left] 'hide-subtree)
(local-set-key [C-right] 'show-onelevel))

(add-hook
'outline-minor-mode-hook
'my-outline-bindings)

(add-hook
'erlang-mode-hook
'(lambda ()
(outline-minor-mode)
(setq outline-regexp
(concat "^-?" erlang-atom-regexp "\\s *("))))

[ref: http://www.emacswiki.org/emacs/EasyCodeOutline]

/martin

Joe Armstrong

unread,
Dec 17, 2009, 3:39:38 PM12/17/09
to Martin Bjorklund, erlang-q...@erlang.org
Wow - amazing - thanks

/Joe

Reply all
Reply to author
Forward
0 new messages