Klacke <>
Wed Mar 14 14:45:39 CET 2001

On Wed, Mar 14, 2001 at 02:25:55PM +0100, Ingela Anderton wrote:
> It would take a rellay advanced IDE before I ever trade away emacs.
> I think IDE:s many times limits the way I work and causes a lot of
> unnecessary mouse-clicking. No emacs and a unix-shell is the ideal
> development environment too me, and of course some version handlig
> program like cvs or clearcase. 

Well said, to top it off, I'd like to add just one more tool I
find useful and that is etags ... I use it all the time.

ESC-. jumps to the definition of functions or constants ....

etags is best used when integerated in a Makefile, .. here's
some snippets from one of our Makefiles ....

tags:   mktags.beam
        erl -noshell -s mktags generate $(BASEAPPS) $(ISDAAPPS) \

mktags.beam:    system/mktags.erl
        erlc system/mktags.

you get the idea ....

and the mktags.erl file ...

%%% File    : mktags.erl
%%% Author  : Klacke <>
%%% Purpose : 
%%% Created :  4 Jan 2000 by Klacke <>


generate(Apps) ->
    Dirs = dirs(Apps),
    io:format("Dirs = ~p~n", [Dirs]),
    io:format("mktags: ~p~n", [catch tags:dirs(Dirs)]),

dirs(Apps) ->
    dirs(Apps, []).
dirs([A|As], Ack) ->
    Src=filename:join(["lib", A, "src"]),
    Incl=filename:join(["lib", A, "include"]),
    case {file:read_file_info(Src),
          file:read_file_info(Incl)} of
        {{error, _}, {error, _}} ->
            dirs(As, Ack);
        {{error, _}, _} ->
             dirs(As, Ack);
        {{ok, _}, {error, _}} ->
            dirs(As, [Src|Ack]);
        {{ok, _}, {ok, _}} ->
            dirs(As, [Incl,Src|Ack])
dirs([], Ack) ->

Someday I'll make an effort and hack erlang support into the real thing
which is the 'ctags' program


Claes Wikstrom                        -- Caps lock is nowhere and
Alteon WebSystems                     -- everything is under control        --

More information about the erlang-questions mailing list