home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / vim45os2.zip / vim-4.5 / doc / ctags.txt < prev    next >
Text File  |  1996-10-07  |  4KB  |  104 lines

  1. ANNOUNCE
  2.  
  3. Announcing: Exuberant Ctags
  4. Author    : Darren Hiebert
  5.  
  6. This is to announce the availability of a new version my new, better ctags
  7. utility. I am quite pleased with it, and others who have used it have been
  8. very enthusiastic about the greater reliability and functionality it
  9. provides.
  10.  
  11. You can find it at any of:
  12.  
  13.     http://fly.hiwaay.net/~darren/ctags.html (Web site)
  14.     ftp://sunsite.unc.edu/pub/Linux/devel/lang/c/ctags-1.5.tar.gz
  15.     ftp://ftp.halcyon.com/local/gvr/ctags-1.5.tar.gz
  16.  
  17. What makes this ctags desirable?
  18.  
  19. 1.  It can find *all* types of C language tags, including all of the
  20.     following:
  21.  
  22.             macro definitions
  23.             enumerated values (values inside enum{...})
  24.             function and method definitions
  25.             enum/struct/union tags
  26.             external function prototypes (optional)
  27.             typedefs
  28.             variable declarations
  29.  
  30. 2.  It is far less easily fooled by code containing #if preprocessor
  31.     conditional constructs, using a conditional path selection algorithm to
  32.     resolve complicated choices, and a fall-back algorithm when this one
  33.     fails.
  34.  
  35. 3.  Can also be used to print out a list of selected objects found in source
  36.     files.
  37.  
  38. 4.  Supports UNIX, MSDOS, WindowsNT, Windows95, OS/2 and the Amiga. In some
  39.     cases, you may need to play with the include files, depending upon you
  40.     compiler. Some pre-compiled binaries may become available on the web
  41.     site.
  42.  
  43. I wrote this because of my disappointment with the other ctags utilities
  44. that are available. However, it does have a couple of minor limitations (you
  45. be the judge):
  46.  
  47. 1.  Support for C++ is limited.
  48. 2.  Supports only C; not Lisp, shell scripts, or anything else you might
  49.     think of.
  50.  
  51.  
  52. README
  53.  
  54. Exuberant Ctags
  55. ===============
  56. Author: Darren Hiebert (darren@sirsi.com, darren@hiwaay.net,
  57.             http://fly.hiwaay.net/~darren)
  58.  
  59. This source code is released into the public domain. It is provided on an
  60. as-is basis and no responsibility is accepted for its failure to perform
  61. as expected. It is worth at least as much as you paid for it!
  62.  
  63. [The source code for ctags can be found in src/ctags]
  64.  
  65. This is a reimplementation of the underused ctags(1) program and is intended
  66. to be the mother of all ctags programs 8^). I was motivated to write this
  67. because no currently available ctags program supported generation of tags for
  68. all possible tag candidates, and because most were easily fooled by a number
  69. of contructs. I am quite pleased with the result. It provides the following
  70. features:
  71.  
  72.     Able to generate tags for all of the following objects:
  73.     - macro definitions
  74.     - enumeration values (those inside enum{...})
  75.     - function definitions (and some C++ methods)
  76.     - function prototypes (optional; intended for library header files)
  77.     - enum, struct and union tags and C++ class names
  78.     - typedefs
  79.     - global variables
  80.  
  81.     Supports for both K&R style and new ANSI style function definitions.
  82.  
  83.     It is very robust in parsing C code and is extremely hard to fool, even
  84.     with conditional preprocessor contructs.
  85.  
  86. Which brings us to the most frequently asked question:
  87.  
  88.   Q: Why is it called "Exuberant" ctags?
  89.   A: Because one of the meanings of the word is:
  90.  
  91.     exuberant : produced in extreme abundance : PLENTIFUL syn see PROFUSE
  92.  
  93. Compare the tag file produced by Exuberant Ctags with that produced by any
  94. other ctags and you will see how appropriate the name is.
  95.  
  96. Exuberant Ctags is derived from and inspired by the ctags program by Steve
  97. Kirkendall (kirkenda@cs.pdx.edu) that comes with the Elvis vi clone (though
  98. almost none of the original code remains). This, too, was freely available.
  99.  
  100. Please report any problems you find. The two problems I expect to be most
  101. likely are either a tag which you expected but is missing, or a tag created
  102. in error (shouldn't really be a tag). Please include a sample of code (the
  103. definition) for the object which misbehaves.
  104.