Distel and Erlang mode for Emacs, on Mac OS X
In the comments of my post on Erlang Mode for Emacs Tobbe pointed me at the new Distel repository for Distel. I had originally tried to install Distel last year when I began with Erlang but it didn't work. It works now! Here's the deal.
Check out Distel. In my case I'm going to check it out to /Users/bob/src/distel:
$ cd /Users/bob/src $ svn co http://distel.googlecode.com/svn/trunk distel
Configure and compile Distel:
$ ./configure $ make
(add-to-list 'load-path "/usr/local/lib/erlang/lib/tools-2.5.3/emacs") (setq erlang-root-dir "/usr/local/lib/erlang") (setq exec-path (cons "/usr/local/lib/erlang/bin" exec-path)) (require 'erlang-start) (add-to-list 'load-path "/Users/bob/src/distel/elisp") (require 'distel) (distel-setup) ;; prevent annoying hang-on-compile (defvar inferior-erlang-prompt-timeout t) ;; default node name to emacs@localhost (setq inferior-erlang-machine-options '("-sname" "emacs")) ;; tell distel to default to that node (setq erl-nodename-cache (make-symbol (concat "emacs@" ;; Mac OS X uses "name.local" instead of "name", this should work ;; pretty much anywhere without having to muck with NetInfo ;; ... but I only tested it on Mac OS X. (car (split-string (shell-command-to-string "hostname"))))))
$ echo 'code:add_pathsz(["/Users/bob/src/distel/ebin"]).' >> ~/.erlang
If the Distel installation was done properly your Emacs mode line will be displayed as (Erlang EXT) next time you're editing an Erlang module. If you get a "nodedown: ..." message when executing a Distel command that means you haven't started a shell yet (C-c C-z). A good test is to stick your insertion point at a function name and hit M-. to get to its definition. M-TAB is auto-completion. I haven't used too much else from it yet.
(Now here's to hoping I don't have to learn any more elisp, ever).