xref: /Universal-ctags/old-docs/README.exuberant (revision 94eb5533b4afecf9ec7f085ede410daa2faa5c1f)
1*94eb5533SMasatake YAMATOExuberant Ctags
2*94eb5533SMasatake YAMATO===============
3*94eb5533SMasatake YAMATOAuthor: Darren Hiebert <dhiebert at users.sourceforge.net>
4*94eb5533SMasatake YAMATO        http://ctags.sourceforge.net
5*94eb5533SMasatake YAMATO        Instant Messaging:
6*94eb5533SMasatake YAMATO          Yahoo! ID     : dbhiebert
7*94eb5533SMasatake YAMATO          AIM ScreenName: darrenhiebert
8*94eb5533SMasatake YAMATO
9*94eb5533SMasatake YAMATOExuberant Ctags is a multilanguage reimplementation of the much-underused
10*94eb5533SMasatake YAMATOctags(1) program and is intended to be the mother of all ctags programs. It
11*94eb5533SMasatake YAMATOgenerates indexes of source code definitions which are used by a number of
12*94eb5533SMasatake YAMATOeditors and tools. The motivation which drove the development of Exuberant
13*94eb5533SMasatake YAMATOCtags was the need for a ctags program which supported generation of tags
14*94eb5533SMasatake YAMATOfor all possible C language constructs (which no other ctags offers), and
15*94eb5533SMasatake YAMATObecause most were easily fooled by a number of preprocessor contructs.
16*94eb5533SMasatake YAMATO
17*94eb5533SMasatake YAMATO
18*94eb5533SMasatake YAMATOExuberant Ctags offers the following features:
19*94eb5533SMasatake YAMATO
20*94eb5533SMasatake YAMATO1.  It supports the following languages: Assembler, AWK, ASP, BETA,
21*94eb5533SMasatake YAMATO    Bourne/Korn/Z Shell, C, C++, C#, COBOL, Eiffel, Erlang, Fortran, Java, Lisp,
22*94eb5533SMasatake YAMATO    Lua, Makefile, Objective-C, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby,
23*94eb5533SMasatake YAMATO    Scheme, S-Lang, SML (Standard ML), Tcl, Vera, Verilog, VHDL, Vim,
24*94eb5533SMasatake YAMATO    and YACC.
25*94eb5533SMasatake YAMATO
26*94eb5533SMasatake YAMATO2.  It is capable of generating tags for virtually all C language constructs.
27*94eb5533SMasatake YAMATO
28*94eb5533SMasatake YAMATO3.  It is very robust in parsing code. In particular, the C/C++ parser is
29*94eb5533SMasatake YAMATO    far less easily fooled by code containing #if preprocessor conditional
30*94eb5533SMasatake YAMATO    constructs, using a conditional path selection algorithm to resolve
31*94eb5533SMasatake YAMATO    complicated situations, and a fall-back algorithm when this one fails.
32*94eb5533SMasatake YAMATO
33*94eb5533SMasatake YAMATO4.  Supports output of Emacs-style TAGS files (i.e. "etags").
34*94eb5533SMasatake YAMATO
35*94eb5533SMasatake YAMATO5.  User-defined languages, using Posix regular expressions.
36*94eb5533SMasatake YAMATO
37*94eb5533SMasatake YAMATO6.  Supports UNIX, MSDOS, Windows 95/98/NT/2000/XP, OS/2, QNX, Amiga, QDOS,
38*94eb5533SMasatake YAMATO    RISC OS, VMS, Macintosh, and Cray. Some pre-compiled binaries are
39*94eb5533SMasatake YAMATO    available on the web site.
40*94eb5533SMasatake YAMATO
41*94eb5533SMasatake YAMATO
42*94eb5533SMasatake YAMATOVisit the Exuberant Ctags web site:
43*94eb5533SMasatake YAMATO
44*94eb5533SMasatake YAMATO    http://ctags.sourceforge.net
45*94eb5533SMasatake YAMATO
46*94eb5533SMasatake YAMATO
47*94eb5533SMasatake YAMATOWhich brings us to the most obvious question:
48*94eb5533SMasatake YAMATO
49*94eb5533SMasatake YAMATO  Q: Why is it called "Exuberant" ctags?
50*94eb5533SMasatake YAMATO  A: Because one of the meanings of the word is:
51*94eb5533SMasatake YAMATO
52*94eb5533SMasatake YAMATO     exuberant : produced in extreme abundance : PLENTIFUL syn see PROFUSE
53*94eb5533SMasatake YAMATO
54*94eb5533SMasatake YAMATOCompare the tag file produced by Exuberant Ctags with that produced by any
55*94eb5533SMasatake YAMATOother ctags and you will see how appropriate the name is.
56*94eb5533SMasatake YAMATO
57*94eb5533SMasatake YAMATO
58*94eb5533SMasatake YAMATOThis source code is distributed according to the terms of the GNU General
59*94eb5533SMasatake YAMATOPublic License. It is provided on an as-is basis and no responsibility is
60*94eb5533SMasatake YAMATOaccepted for its failure to perform as expected. It is worth at least as
61*94eb5533SMasatake YAMATOmuch as you paid for it!
62*94eb5533SMasatake YAMATO
63*94eb5533SMasatake YAMATOExuberant Ctags was originally derived from and inspired by the ctags
64*94eb5533SMasatake YAMATOprogram by Steve Kirkendall (kirkenda@cs.pdx.edu) that comes with the Elvis
65*94eb5533SMasatake YAMATOvi clone (though almost none of the original code remains). This, too, is
66*94eb5533SMasatake YAMATOfreely available.
67*94eb5533SMasatake YAMATO
68*94eb5533SMasatake YAMATOPlease report any problems you find. The two problems I expect to be most
69*94eb5533SMasatake YAMATOlikely are either a tag which you expected but is missing, or a tag created
70*94eb5533SMasatake YAMATOin error (shouldn't really be a tag). Please include a sample of code (the
71*94eb5533SMasatake YAMATOdefinition) for the object which misbehaves.
72*94eb5533SMasatake YAMATO
73*94eb5533SMasatake YAMATO--
74*94eb5533SMasatake YAMATOvim:tw=76:sw=4:et:
75