Fork of ctags with Ada support
Go to file
R. Tyler Croy f039977edb Add a BUILDING document to make sure it's clear how to build this tool 2014-01-19 12:14:52 -08:00
Eiffel Fixed comment and contracts. 2003-07-26 16:26:36 +00:00
Test Removed BOM from file and changed encoding to latin1 2012-12-16 00:42:57 +00:00
gnu_regex Updated to use regex code from glibc. 2009-07-04 05:53:16 +00:00
website Removed duplicate information that is out-of-sync with similar information contained elsewhere. 2010-09-11 19:05:26 +00:00
win32 Removed obsolete files. 2007-08-01 04:41:22 +00:00
.gdbinit Brought web site and win32 build directory into CVS and build process. 2002-01-27 01:42:30 +00:00
.gitignore Add a BUILDING document to make sure it's clear how to build this tool 2014-01-19 12:14:52 -08:00
.indent.pro Tuning of indentation. Still only approximate. 2006-08-23 02:19:09 +00:00
BUILDING.md Add a BUILDING document to make sure it's clear how to build this tool 2014-01-19 12:14:52 -08:00
COPYING
EXTENDING.html Added note about modifying makefile. 2002-09-04 01:17:32 +00:00
FAQ.md Add some markdown extensions to files for easy viewing on github 2014-01-19 12:10:40 -08:00
INSTALL.md Add some markdown extensions to files for easy viewing on github 2014-01-19 12:10:40 -08:00
INSTALL.oth Fixed regex support for MinGW. Gnu regex module now included in all distributions. 2007-09-10 02:52:22 +00:00
MAINTAINERS Fixed up files relating to new parsers added by David Fishburn. 2009-07-09 20:54:01 +00:00
Makefile.in Updated to support autoconf-2.6. 2009-07-04 05:29:28 +00:00
NEWS Support Perl constants declared via a hash reference. 2013-12-16 04:47:48 +00:00
README.md Add some markdown extensions to files for easy viewing on github 2014-01-19 12:10:40 -08:00
ada.c Merge Ada support from the GNU Ada Source Forge project 2014-01-19 12:08:56 -08:00
ant.c fix ant regexes 2009-09-08 23:19:41 +00:00
argproc.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
args.c trunk/args.c: 2007-06-02 06:09:00 +00:00
args.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
asm.c trunk/args.c: 2007-06-02 06:09:00 +00:00
asp.c Added support for ASP classes, contributed by Zendhi Nagao; changes meaning of c kind flag. 2009-07-04 16:52:11 +00:00
awk.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
basic.c Simplified BASIC parser to stop it from installing as multiple parsers. 2007-06-30 23:59:12 +00:00
beta.c trunk/args.c: 2007-06-02 06:09:00 +00:00
c.c Fixed problem detecting function definitions using circumflexes used for managed classes under MS.NET. 2011-12-10 22:48:25 +00:00
cobol.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
configure.ac Ticket: 3062068 2010-09-08 20:18:47 +00:00
ctags.1 Incorporated corrections submitted by Christos Kontas. 2010-01-26 03:35:37 +00:00
ctags.h Changed default version identifier. 2009-03-14 03:52:21 +00:00
ctags.spec Updated release targets of maintainer makefile and modified other files to support new method of building release. 2007-07-31 02:38:16 +00:00
debug.c trunk/debug.c: 2007-06-15 19:17:02 +00:00
debug.h trunk/debug.c: 2007-06-15 19:17:02 +00:00
descrip.mms
dosbatch.c Fixed up files relating to new parsers added by David Fishburn. 2009-07-09 20:54:01 +00:00
e_amiga.h Moved non-configure-script environment configurations into separate files. 2002-03-08 22:35:19 +00:00
e_djgpp.h Fixed portability problem for DJGPP. 2003-10-31 04:15:35 +00:00
e_mac.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
e_msoft.h Fixed compilation problem on MinGW [Bug #1517424]. 2007-06-30 15:30:16 +00:00
e_os2.h Moved non-configure-script environment configurations into separate files. 2002-03-08 22:35:19 +00:00
e_qdos.h Moved non-configure-script environment configurations into separate files. 2002-03-08 22:35:19 +00:00
e_riscos.h Moved non-configure-script environment configurations into separate files. 2002-03-08 22:35:19 +00:00
e_vms.h Moved non-configure-script environment configurations into separate files. 2002-03-08 22:35:19 +00:00
eiffel.c Added support for new "attached" keyword. 2009-11-06 02:44:42 +00:00
entry.c Fixef bad tag when parsing empty OCaml file, reported by Marc Weber. 2010-09-11 18:59:45 +00:00
entry.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
erlang.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
flex.c Created a function prototype for parseMXML. VS does not complain but gcc does. 2010-05-26 17:41:21 +00:00
fortran.c trunk/fortran.c: fix typo. 2008-04-20 23:30:12 +00:00
general.h Enabled Gnu warning suppression macros for GCC on Mac OS X. 2007-05-03 03:20:59 +00:00
get.c trunk/get.c: fix typos in comments. 2007-06-17 03:30:09 +00:00
get.h trunk/c.c: 2007-05-28 01:50:41 +00:00
html.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
index.html Fixed up files relating to new parsers added by David Fishburn. 2009-07-09 20:54:01 +00:00
jscript.c Removed assignment no longer required 2012-12-16 00:55:22 +00:00
keyword.c Removed unnecessary intermediate variable. 2009-07-06 03:31:00 +00:00
keyword.h trunk/eiffel.c: 2008-04-20 23:21:35 +00:00
lisp.c Added support for Objective Caml (OCaml) language, provided by Vincent Berthoux [Patch #2738723]. 2009-07-07 03:40:50 +00:00
lregex.c Resolved compiler warnings with gcc-4.2.1 compiler. 2009-11-06 02:33:37 +00:00
lua.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
mac.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
magic.diff
main.c trunk/args.c: 2007-06-02 06:09:00 +00:00
main.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
maintainer.mak Fixed host architecture on Snow Leopard. 2009-11-06 02:47:09 +00:00
make.c trunk/make.c: 2010-02-27 17:41:57 +00:00
matlab.c Fixed up files relating to new parsers added by David Fishburn. 2009-07-09 20:54:01 +00:00
mk_bc3.mak Fixed dependency. 2003-02-24 02:27:53 +00:00
mk_bc5.mak Fixed regex support for MinGW. Gnu regex module now included in all distributions. 2007-09-10 02:52:22 +00:00
mk_djg.mak Improved portability on Cygwin and DJGPP. 2003-03-31 04:53:22 +00:00
mk_manx.mak Added support for Erlang language, submitted by Brent Fulgham. 2003-02-13 02:59:30 +00:00
mk_mingw.mak Updated to handle new regex support. 2009-07-09 20:53:19 +00:00
mk_mpw.mak Added support for Erlang language, submitted by Brent Fulgham. 2003-02-13 02:59:30 +00:00
mk_mvc.mak Fixed up files relating to new parsers added by David Fishburn. 2009-07-09 20:54:01 +00:00
mk_os2.mak Update supplied by Alexander Mai. 2002-01-27 21:20:55 +00:00
mk_qdos.mak Added support for Erlang language, submitted by Brent Fulgham. 2003-02-13 02:59:30 +00:00
mk_risc.mak Added support for Erlang language, submitted by Brent Fulgham. 2003-02-13 02:59:30 +00:00
mk_sas.mak Added support for Erlang language, submitted by Brent Fulgham. 2003-02-13 02:59:30 +00:00
mkinstalldirs
objc.c Fix variable initialisation problem in objc parser, causing erroneous 2012-09-17 13:48:26 +00:00
ocaml.c Handling let rec .. = ... and ... declarations at top level. 2012-10-25 20:19:48 +00:00
options.c trunk/ctags.1: (Bug #1745301) clarify the "--options" option. 2007-06-30 04:16:23 +00:00
options.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
parse.c Fixed recognition of Python scripts having "#\!/usr/bin/python" as first line [Bug #1764148]. 2007-07-31 05:35:30 +00:00
parse.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
parsers.h Merge Ada support from the GNU Ada Source Forge project 2014-01-19 12:08:56 -08:00
pascal.c trunk/args.c: 2007-06-02 06:09:00 +00:00
perl.c Fixed a bug in the way package names are parsed. 2013-12-16 05:50:55 +00:00
php.c php: classes can be final 2009-08-20 23:33:54 +00:00
python.c Applied a patch (with minor modification) by Jan Larres to not include tab characters in the signature of Python functions. 2012-09-17 22:19:32 +00:00
qdos.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
read.c Removed unused structure member. 2010-09-11 21:00:16 +00:00
read.h Removed unused structure member. 2010-09-11 21:00:16 +00:00
readtags.c Copied search name to avoid possibility of loss of name pointed to in client application [Bug #1117716]. 2007-07-31 03:30:41 +00:00
readtags.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
rexx.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
routines.c Replaced calls to strcpy() with memmove() where the strings overlapped, for 2012-03-26 02:35:57 +00:00
routines.h trunk/args.c: 2007-06-02 06:09:00 +00:00
ruby.c trunk/ruby.c: simple-minded (but reasonably effective) skipping of string literals, so we don't accidentally recognize "keywords" inside string literals. 2007-06-24 23:32:14 +00:00
scheme.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
sh.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
slang.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
sml.c trunk/args.c: 2007-06-02 06:09:00 +00:00
sort.c Resolved compiler warnings with gcc-4.2.1 compiler. 2009-11-06 02:33:37 +00:00
sort.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
source.mak Merge Ada support from the GNU Ada Source Forge project 2014-01-19 12:08:56 -08:00
sql.c fixed comment style 2010-06-04 12:40:28 +00:00
strlist.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
strlist.h Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
tcl.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00
testing.mak Synchronized the python parser with the geany tagmanager, including the following geany commits: 2009-07-05 15:38:06 +00:00
tex.c I made some improvements to the LaTeX parser to make it more useful 2012-05-05 03:05:24 +00:00
verilog.c trunk/verilog.c: 2010-02-27 17:53:32 +00:00
vhdl.c Eliminate warning for unused parameter. 2009-06-28 16:30:57 +00:00
vim.c Fixed up compiler warnings 2012-06-20 14:50:22 +00:00
vstring.c trunk/debug.c: 2007-06-15 19:17:02 +00:00
vstring.h Added new macro for reading last character of vString. 2009-07-07 03:46:59 +00:00
yacc.c Reformatted code for independence of tab stop setting. 2006-05-30 04:37:13 +00:00

README.md

Exuberant Ctags

Author: Darren Hiebert http://ctags.sourceforge.net Instant Messaging: Yahoo! ID : dbhiebert AIM ScreenName: darrenhiebert

Exuberant Ctags is a multilanguage reimplementation of the much-underused ctags(1) program and is intended to be the mother of all ctags programs. It generates indexes of source code definitions which are used by a number of editors and tools. The motivation which drove the development of Exuberant Ctags was the need for a ctags program which supported generation of tags for all possible C language constructs (which no other ctags offers), and because most were easily fooled by a number of preprocessor contructs.

Exuberant Ctags offers the following features:

  1. It supports the following languages: Assembler, AWK, ASP, BETA, Bourne/Korn/Z Shell, C, C++, C#, COBOL, Eiffel, Erlang, Fortran, Java, Lisp, Lua, Makefile, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby, Scheme, S-Lang, SML (Standard ML), Tcl, Vera, Verilog, VHDL, Vim, and YACC.

  2. It is capable of generating tags for virtually all C language constructs.

  3. It is very robust in parsing code. In particular, the C/C++ parser is far less easily fooled by code containing #if preprocessor conditional constructs, using a conditional path selection algorithm to resolve complicated situations, and a fall-back algorithm when this one fails.

  4. Supports output of Emacs-style TAGS files (i.e. "etags").

  5. User-defined languages, using Posix regular expressions.

  6. Supports UNIX, MSDOS, Windows 95/98/NT/2000/XP, OS/2, QNX, Amiga, QDOS, RISC OS, VMS, Macintosh, and Cray. Some pre-compiled binaries are available on the web site.

Visit the Exuberant Ctags web site:

http://ctags.sourceforge.net

Which brings us to the most obvious question:

Q: Why is it called "Exuberant" ctags? A: Because one of the meanings of the word is:

 exuberant : produced in extreme abundance : PLENTIFUL syn see PROFUSE

Compare the tag file produced by Exuberant Ctags with that produced by any other ctags and you will see how appropriate the name is.

This source code is distributed according to the terms of the GNU General Public License. It is provided on an as-is basis and no responsibility is accepted for its failure to perform as expected. It is worth at least as much as you paid for it!

Exuberant Ctags was originally derived from and inspired by the ctags program by Steve Kirkendall (kirkenda@cs.pdx.edu) that comes with the Elvis vi clone (though almost none of the original code remains). This, too, is freely available.

Please report any problems you find. The two problems I expect to be most likely are either a tag which you expected but is missing, or a tag created in error (shouldn't really be a tag). Please include a sample of code (the definition) for the object which misbehaves.

-- vim:tw=76:sw=4:et: