Mercurial > emacs
changeset 26292:81cd0c225dd9
Last changes for etags (I hope).
author | Francesco Potortì <pot@gnu.org> |
---|---|
date | Mon, 01 Nov 1999 19:04:46 +0000 |
parents | d7f5861b1154 |
children | 65861669b393 |
files | etc/NEWS etc/etags.1 man/programs.texi |
diffstat | 3 files changed, 108 insertions(+), 63 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/NEWS Mon Nov 01 18:27:31 1999 +0000 +++ b/etc/NEWS Mon Nov 01 19:04:46 1999 +0000 @@ -387,10 +387,10 @@ *** In DOS, etags looks for file.cgz if it cannot find file.c. *** New option --ignore-case-regex is an alternative to --regex. It is now - possible to bind a regexp to a language, by prepending the regexp with - {lang}, where lang is one of the languages that `etags --help' prints - out. This feature is useful especially for regex files, where each - line contains a regular expression. The manual contains details. +possible to bind a regexp to a language, by prepending the regexp with +{lang}, where lang is one of the languages that `etags --help' prints out. +This feature is useful especially for regex files, where each line contains +a regular expression. The manual contains details. *** In C and derived languages, etags creates tags for function declarations when given the --declarations option. @@ -413,7 +413,8 @@ *** New language Python: def and class at the beginning of a line are tags. -*** .ss files are Scheme files. +*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is +for PSWrap. ** Emacs now attempts to determine the initial language environment and preferred and locale coding systems systematically from the
--- a/etc/etags.1 Mon Nov 01 18:27:31 1999 +0000 +++ b/etc/etags.1 Mon Nov 01 19:04:46 1999 +0000 @@ -1,6 +1,6 @@ .\" Copyright (c) 1992 Free Software Foundation .\" See section COPYING for conditions for redistribution -.TH etags 1 "19apr1994" "GNU Tools" "GNU Tools" +.TH etags 1 "02nov1999" "GNU Tools" "GNU Tools" .de BP .sp .ti -.2i @@ -12,24 +12,31 @@ .SH SYNOPSIS .hy 0 .na -.B etags [\|\-aCDRSVh\|] [\|\-i \fIfile\fP\|] [\|\-l \fIlanguage\fP\|] [\|\-i \fIregexp\fP\|] [\|\-o \fItagfile\fP\|] +.B etags [\|\-aCDGImRVh\|] [\|\-i \fIfile\fP\|] [\|\-l \fIlanguage\fP\|] +.if n .br +.B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|] .br -[\|\-\-c++\|] [\|\-\-no\-defines\|] [\|\-\-ignore\-indentation\|] -[\|\-\-language=\fIlanguage\fP\|] [\|\-\-regex=\fIregexp\fP\|] -[\|\-\-no\-regexp\|] [\|\-\-help\|] [\|\-\-version\|] -[\|\-\-include=\fIfile\fP\|] [\|\-\-output=\fItagfile\fP\|] -[\|\-\-append\|] \fIfile\fP .\|.\|. +[\|\-\-append\|] [\|\-\-c++\|] [\|\-\-no\-defines\|] +[\|\-\-no\-globals\|] [\|\-\-include=\fIfile\fP\|] +[\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|] +[\|\-\-members\|] [\|\-\-output=\fItagfile\fP\|] +[\|\-\-regex=\fIregexp\fP\|] [\|\-\-no\-regex\|] +[\|\-\-help\|] [\|\-\-version\|] +\fIfile\fP .\|.\|. -.B ctags [\|\-aCdRSVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|] +.B ctags [\|\-aCdgImRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|] +.if n .br +.B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|] .br -[\|\-i \fIregexp\fP\|] [\|\-o \fItagfile\fP\|] -[\|\-\-c++\|] [\|\-\-defines\|] [\|\-\-ignore\-indentation\|] -[\|\-\-no\-warn\|] [\|\-\-cxref\|] [\|\-\-backward\-search\|] -[\|\-\-forward\-search\|] [\|\-\-typedefs\|] [\|\-\-typedefs\-and\-c++\|] -[\|\-\-language=\fIlanguage\fP\|] [\|\-\-regex=\fIregexp\fP\|] +[\|\-\-append\|] [\|\-\-backward\-search\|] [\|\-\-c++\|] +[\|\-\-cxref\|] [\|\-\-defines\|] [\|\-\-forward\-search\|] +[\|\-\-globals\|] [\|\-\-ignore\-indentation\|] +[\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|] +[\|\-\-output=\fItagfile\fP\|] [\|\-\-regex=\fIregexp\fP\|] +[\|\-\-typedefs\|] [\|\-\-typedefs\-and\-c++\|] +[\|\-\-update\|] [\|\-\-no\-warn\|] [\|\-\-help\|] [\|\-\-version\|] -.br -[\|\-\-output=\fItagfile\fP\|] [\|\-\-append\|] [\|\-\-update\|] \fIfile\fP .\|.\|. +\fIfile\fP .\|.\|. .ad b .hy 1 .SH DESCRIPTION @@ -40,8 +47,9 @@ format understood by .BR vi ( 1 )\c \&. Both forms of the program understand -the syntax of C, C++, Fortran, Pascal, LaTeX, Scheme, -Emacs Lisp/Common Lisp, Erlang, Prolog and most assembler\-like syntaxes. +the syntax of C, Objective C, C++, Java, Fortran, Pascal, Cobol, Ada, Perl, +LaTeX, Scheme, Emacs Lisp/Common Lisp, Postscript, Erlang, Python, Prolog and +most assembler\-like syntaxes. Both forms read the files specified on the command line, and write a tag table (defaults: `\|TAGS\|' for \fBetags\fP, `\|tags\|' for \fBctags\fP) in the current working directory. @@ -76,16 +84,39 @@ code. Files with `\|.C\|', `\|.H\|', `\|.cxx\|', `\|.hxx\|', or `\|.cc\|' extensions are always assumed to be C++ code. .TP +.B \-\-declarations +In C and derived languages, create tags for function declarations, +and create tags for extern variables unless \-\-no\-globals is used. +.TP .B \-d, \-\-defines -Create tag entries for C preprocessor definitions, too. This is the -default behavior for \fBetags\fP, so this option is only accepted -by \fBctags\fP. +Create tag entries for C preprocessor constant definitions +and enum constants, too. This is the +default behavior for \fBetags\fP. .TP .B \-D, \-\-no\-defines -Do not create tag entries for C preprocessor definitions. +Do not create tag entries for C preprocessor constant definitions +and enum constants. This may make the tags file much smaller if many header files are tagged. -This is the default behavior for \fBctags\fP, so this option is only -accepted by \fBetags\fP. +This is the default behavior for \fBctags\fP. +.TP +.B \-g, \-\-globals +Create tag entries for global variables in C, C++, Objective C, Java, +and Perl. +This is the default behavior for \fBetags\fP. +.TP +.B \-G, \-\-no\-globals +Do not tag global variables. Typically this reduces the file size by +one fourth. This is the default behavior for \fBctags\fP. +.TP +\fB\-i\fP \fIfile\fP, \fB\-\-include=\fIfile\fP +Include a note in the tag file indicating that, when searching for a +tag, one should also consult the tags file \fIfile\fP after checking the +current file. This options is only accepted by \fBetags\fP. +.TP +.B \-I, \-\-ignore\-indentation +Don't rely on indentation as much as we normally do. Currently, this +means not to assume that a closing brace in the first column is the +final brace of a function or structure definition in C and C++. .TP \fB\-l\fP \fIlanguage\fP, \fB\-\-language=\fIlanguage\fP Parse the following files according to the given language. More than @@ -96,6 +127,16 @@ language may be used to disable language parsing altogether; only regexp matching is done in this case (see the \fB\-\-regex\fP option). .TP +.B \-m, \-\-members +Create tag entries for variables that are members of structure-like +constructs in C++, Objective C, Java. +.TP +.B \-M, \-\-no\-members +Do not tag member variables. This is the default behavior. +.TP +.B \-\-packages\-only +Only tag packages in Ada files. +.TP \fB\-o\fP \fItagfile\fP, \fB\-\-output=\fItagfile\fP Explicit name of file for tag table; overrides default `\|TAGS\|' or `\|tags\|'. (But ignored with \fB\-v\fP or \fB\-x\fP.) @@ -116,7 +157,8 @@ such that more characters than needed are unavoidably matched by \fItagregexp\fP, it may be useful to add a \fInameregexp\fP, to narrow down the tag scope. \fBctags\fP ignores regexps without a -\fInameregexp\fP. +\fInameregexp\fP. The syntax of regexps is the same as in emacs, +augmented with intervals of the form \\{m,n\\}, as in ed or grep. .br Here are some examples. All the regexps are quoted to protect them from shell interpretation. @@ -136,16 +178,6 @@ \\|PROCEDURE\\|PROCESS\\|TYPE\\)[\ \\t]+\\([^\ \\t(]+\\)/\\3/'\fP .br -Tag Cobol files: -.br -\fI\-\-language\=none \-\-regex\='/.......[a\-zA\-Z0\-9\-]+\\./'\fP -.br - -Tag Postscript files: -.br -\fI\-\-language\=none \-\-regex\='#/[^\ \\t{]+#/'\fP -.br - Tag TCL files (this last example shows the usage of a \fItagregexp\fP): .br \fI\-\-lang\=none \-\-regex\='/proc[\ \\t]+\\([^\ \\t]+\\)/\\1/'\fP @@ -155,11 +187,6 @@ Don't do any more regexp matching on the following files. May be freely intermixed with filenames and the \fB\-\-regex\fP option. .TP -.B \-S, \-\-ignore\-indentation -Don't rely on indentation as much as we normally do. Currently, this -means not to assume that a closing brace in the first column is the -final brace of a function or structure definition in C and C++. -.TP .B \-t, \-\-typedefs Record typedefs in C code as tags. Since this is the default behaviour of \fBetags\fP, only \fBctags\fP accepts this option. @@ -190,7 +217,7 @@ Instead of generating a tag file, write a cross reference (in \fBcxref\fP format) to standard output. Only \fBctags\fP accepts this option. .TP -.B \-H, \-\-help +.B \-h, \-H, \-\-help Print usage information. .TP .B \-V, \-\-version @@ -207,7 +234,7 @@ .BR vi ( 1 ). .SH COPYING -Copyright (c) 1992 Free Software Foundation, Inc. +Copyright (c) 1999 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice
--- a/man/programs.texi Mon Nov 01 18:27:31 1999 +0000 +++ b/man/programs.texi Mon Nov 01 19:04:46 1999 +0000 @@ -1620,13 +1620,13 @@ @item In C code, any C function or typedef is a tag, and so are definitions of @code{struct}, @code{union} and @code{enum}. You can tag function -declarations in addition to function definitions by giving the -@samp{--declarations} option to @code{etags}. @code{#define} macro -definitions and @code{enum} constants are also tags, unless you specify -@samp{--no-defines} when making the tags table. Similarly, global -variables are tags, unless you specify @samp{--no-globals}. Use of -@samp{--no-globals} and @samp{--no-defines} can make the tags table file -much smaller. +declarations and external variables in addition to function definitions +by giving the @samp{--declarations} option to @code{etags}. +@code{#define} macro definitions and @code{enum} constants are also +tags, unless you specify @samp{--no-defines} when making the tags table. +Similarly, global variables are tags, unless you specify +@samp{--no-globals}. Use of @samp{--no-globals} and @samp{--no-defines} +can make the tags table file much smaller. @item In C++ code, in addition to all the tag constructs of C code, member @@ -1680,7 +1680,9 @@ @itemize @bullet @item -In Ada code, functions, procedures, packages, tasks, and types are tags. +In Ada code, functions, procedures, packages, tasks, and types are +tags. Use the @samp{--packages-only} option to create tags for packages +only. @item In assembler code, labels appearing at the beginning of a line, @@ -1720,11 +1722,11 @@ @item In Prolog code, a tag name appears at the left margin. -@end itemize @item In Python code, @code{def} or @code{class} at the beginning of a line generate a tag. +@end itemize You can also generate tags based on regexp matching (@pxref{Using Regexps}) to handle other formats and languages. @@ -1930,21 +1932,36 @@ @itemize @bullet @item -Tag VHDL files (this example is a single long line, broken here for -formatting reasons): +Tag Octave files: @smallexample ---language=none ---regex='/[ \t]*\(ARCHITECTURE\|CONFIGURATION\) +[^ ]* +OF/' ---regex='/[ \t]*\(ATTRIBUTE\|ENTITY\|FUNCTION\|PACKAGE\ -\( BODY\)?\|PROCEDURE\|PROCESS\|TYPE\)[ \t]+\([^ \t(]+\)/\3/' +etags --language=none \ + --regex='/[ \t]*function.*=[ \t]*\([^ \t]*\)[ \t]*(/\1/' \ + --regex='/###key \(.*\)/\1/' \ + --regex='/[ \t]*global[ \t].*/' \ + *.m +@end smallexample + +@noindent +Note that tags are not generated for scripts so that you have to add a +line by yourself of the form `###key <script-name>' if you want to jump +to it. + +@item +Tag Tcl files: + +@smallexample +etags --language=none --regex='/proc[ \t]+\([^ \t]+\)/\1/' *.tcl @end smallexample @item -Tag Tcl files (this last example shows the usage of a @var{nameregexp}): +Tag VHDL files: @smallexample ---lang=none --regex='/proc[ \t]+\([^ \t]+\)/\1/' +--language=none \ +--regex='/[ \t]*\(ARCHITECTURE\|CONFIGURATION\) +[^ ]* +OF/' \ +--regex='/[ \t]*\(ATTRIBUTE\|ENTITY\|FUNCTION\|PACKAGE\ +\( BODY\)?\|PROCEDURE\|PROCESS\|TYPE\)[ \t]+\([^ \t(]+\)/\3/' @end smallexample @end itemize