This file is written and administrated by Daniel Stenberg. Last modified on Mon Jan 30 1995. ETags is Copyright (C) 1984, 1987, 1988, 1989, 1992 Free Software Foundation, Inc. and Ken Arnold This version of ETags has been modified, enhanced and ANSIfied by Daniel Stenberg. ETags ~~~~~ What is ETags? ~~~~~~~~~~~~~~ Etags is a program, originally made by Ken Arnold, included in the GNU Emacs package. It scans programs and extracts programming language dependent 'tags' from them. Etags store the tags in a file together with references to the files in which the 'tags' were found. What 'tags' are extracted? ~~~~~~~~~~~~~~~~~~~~~~~~~~ 'Tags' in this case is in C programs: function defines, structure definitions, enum variables, defined indentifiers and such. It extracts similar 'tags' from programs written in C++, Assembler, Pascal, Fortran, Prolog, Scheme, LISP and TeX/LaTeX. How are the tags stored? ~~~~~~~~~~~~~~~~~~~~~~~~ The tags are by default stored in Emacs format. That special format is understood and interpreted by the Emacs LISP script etags.el. To make etags output a format which is understood by FrexxEd, the command line option '-eX' should be used and the output redirected to a file (preferably called 'ETAGS'). How do I run 'etags'? ~~~~~~~~~~~~~~~~~~~~~ To make the most verbose list to use within FrexxEd, enter something similar to the following in your project directory: 'etags >ETAGS -eTX #?.c' How are the tags used? ~~~~~~~~~~~~~~~~~~~~~~ The supplied FPL program 'ETags.FPL' should be executed (put it in your User.FPL if you'd like it at every FrexxEd startup). When done, pressing the key sequence "alt ." will bring up a requester with all tags of your project. "alt shift ." will immediately and silently jump to the origin source and line of the tag under the cursor (ie, if your cursor is placed on a function call, "alt shift ." will make FrexxEd jump to the place where that function is defined). How does it work? ~~~~~~~~~~~~~~~~~ FrexxEd will use the generated output file to search for the tags and their origins. If the output file isn't already in memory, it'll load it first. If it can't find the file, it'll ask the user to tell which file to use. When the requested tag is found, the script will switch to the tag's origin source (it loads it if it has to) and searches for the line were the tag origins. The search is done to enable changes to be done to the source files after the tag file was generated. If the pattern wasn't found, the script will place the cursor on the exact line number where the tag was reported to be at. How to get tags from other languages? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Write a parser and add it to the etags.c source code. The source is written to enable function sharing between a lot of parsers.