home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / cplus / 13015 < prev    next >
Encoding:
Text File  |  1992-08-29  |  3.2 KB  |  91 lines

  1. Xref: sparky comp.lang.c++:13015 comp.lang.c:12914
  2. Newsgroups: comp.lang.c++,comp.lang.c
  3. Path: sparky!uunet!centerline!shiv!kendall
  4. From: kendall@centerline.com (Sam Kendall)
  5. Subject: Tags++ (etags/ctags for C and C++) posted to comp.sources.misc
  6. Message-ID: <KENDALL.92Aug28113714@pen.centerline.com>
  7. Sender: news@centerline.com
  8. Nntp-Posting-Host: pen
  9. Organization: CenterLine Software, Inc.
  10. Date: Fri, 28 Aug 1992 16:37:14 GMT
  11. Lines: 78
  12.  
  13.    The basic idea of etags and ctags is to allow someone using a text
  14. editor (Emacs and vi, respectively) on a source program to ask the
  15. editor for the definition of a function, type, or other named entity.
  16. The editor then positions itself at the appropriate source file and
  17. line.
  18.  
  19.    Tags++ is an enhanced version of etags and tags.el (for use with GNU
  20. Emacs Version 18) and ctags (for use with vi).  The enhancements support
  21. C++, and they support C better than the standard etags, tags.el, and
  22. ctags.
  23.  
  24.    This should work on all Unix(tm of AT&T) systems.  It may work on VMS
  25. (with VMS GNU Emacs), but that has not been tested; please let me know
  26. if you have tried it on VMS, successfully or unsuccessfully.
  27.  
  28.    Tags++ has not changed significantly in several years and is robust.
  29.  
  30.  
  31. Advantages of Tags++
  32. --------------------
  33.  
  34.    The major advantage of tags++ over the standard version in Emacs
  35. Version 18 is support for C++.  For example, given this program:
  36.  
  37.     class A {
  38.         int i;
  39.     public:
  40.         A() { i = 5; }
  41.         int get_i();
  42.     };
  43.  
  44.     int A::get_i() { return i; }
  45.  
  46. you can find the tags "A", "A::A", or "A::get_i".  Caveat: if you are
  47. using ctags and vi, you must supply the "-T" switch when you run ctags
  48. to get this to happen.
  49.  
  50.    Even for C, tags++ finds more stuff (such as macro constants and
  51. structure tags) than other versions.
  52.  
  53.    In Emacs, you get name completion in the minibuffer (on all
  54. identifiers in the program).  See the man page for an example of why
  55. this is useful.  Note that the visit-tags-table operation is slow
  56. because it is building an alist for name completion.
  57.  
  58.    Also in Emacs, M-. finds exact matches first; then M-, (or C-U M-.)
  59. finds other exact matches, followed by successively less exact matches.
  60. For example, suppose you type M-. f RET, and your sources contain
  61. functions "efface", "f_internal", "foo", and "f" in that order.  The
  62. standard tags facility will find these in that order -- frustrating if
  63. you just wanted "f".  Tags++ will find "f" first (exact match), then
  64. "f_internal" (word match), then "efface" and "foo" (inexact matches).
  65.  
  66.  
  67. Compatibility
  68. -------------
  69.  
  70.    Tags++ is forward- and backward-compatible with the standard versions
  71. of etags and tags.el (for Emacs Version 18) and ctags.  In other words,
  72. if some people at a site are using the standard tags facility and others
  73. are using tags++, no one will notice -- except that tags++ users will be
  74. unhappy with the sparse tags files produced by the standard etags or
  75. ctags.
  76.  
  77.    Tags++ almost certainly works with Epoch, although we haven't tried.
  78. Tags++ -- along with all other Emacs Version 18 tags programs -- is
  79. probably incompatible with the upcoming Emacs Version 19.
  80.  
  81.  
  82. For More Info
  83. -------------
  84.  
  85.    See the README file and man page including in the posting.
  86.  
  87.  
  88. ----
  89. Sam Kendall
  90. CenterLine Software, Inc. (formerly Saber Software)
  91.