ctags.rb 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -0
- data/Rakefile +23 -0
- data/ctags.rb.gemspec +23 -0
- data/ext/.gitignore +3 -0
- data/ext/extconf.rb +15 -0
- data/ext/vendor/exuberant-ctags/.gitignore +6 -0
- data/ext/vendor/exuberant-ctags/.indent.pro +31 -0
- data/ext/vendor/exuberant-ctags/COPYING +340 -0
- data/ext/vendor/exuberant-ctags/EXTENDING.html +386 -0
- data/ext/vendor/exuberant-ctags/FAQ +371 -0
- data/ext/vendor/exuberant-ctags/INSTALL +215 -0
- data/ext/vendor/exuberant-ctags/INSTALL.oth +73 -0
- data/ext/vendor/exuberant-ctags/MAINTAINERS +88 -0
- data/ext/vendor/exuberant-ctags/Makefile.in +222 -0
- data/ext/vendor/exuberant-ctags/NEWS +871 -0
- data/ext/vendor/exuberant-ctags/README +73 -0
- data/ext/vendor/exuberant-ctags/ant.c +42 -0
- data/ext/vendor/exuberant-ctags/argproc.c +505 -0
- data/ext/vendor/exuberant-ctags/args.c +274 -0
- data/ext/vendor/exuberant-ctags/args.h +63 -0
- data/ext/vendor/exuberant-ctags/asm.c +387 -0
- data/ext/vendor/exuberant-ctags/asp.c +328 -0
- data/ext/vendor/exuberant-ctags/awk.c +81 -0
- data/ext/vendor/exuberant-ctags/basic.c +203 -0
- data/ext/vendor/exuberant-ctags/beta.c +321 -0
- data/ext/vendor/exuberant-ctags/c.c +2932 -0
- data/ext/vendor/exuberant-ctags/cobol.c +50 -0
- data/ext/vendor/exuberant-ctags/config.h.in +277 -0
- data/ext/vendor/exuberant-ctags/configure +7704 -0
- data/ext/vendor/exuberant-ctags/configure.ac +532 -0
- data/ext/vendor/exuberant-ctags/ctags.1 +1186 -0
- data/ext/vendor/exuberant-ctags/ctags.h +28 -0
- data/ext/vendor/exuberant-ctags/ctags.html +2087 -0
- data/ext/vendor/exuberant-ctags/ctags.spec +40 -0
- data/ext/vendor/exuberant-ctags/debug.c +113 -0
- data/ext/vendor/exuberant-ctags/debug.h +70 -0
- data/ext/vendor/exuberant-ctags/descrip.mms +68 -0
- data/ext/vendor/exuberant-ctags/dosbatch.c +42 -0
- data/ext/vendor/exuberant-ctags/e_amiga.h +24 -0
- data/ext/vendor/exuberant-ctags/e_djgpp.h +47 -0
- data/ext/vendor/exuberant-ctags/e_mac.h +143 -0
- data/ext/vendor/exuberant-ctags/e_msoft.h +76 -0
- data/ext/vendor/exuberant-ctags/e_os2.h +37 -0
- data/ext/vendor/exuberant-ctags/e_qdos.h +34 -0
- data/ext/vendor/exuberant-ctags/e_riscos.h +58 -0
- data/ext/vendor/exuberant-ctags/e_vms.h +31 -0
- data/ext/vendor/exuberant-ctags/eiffel.c +1352 -0
- data/ext/vendor/exuberant-ctags/entry.c +847 -0
- data/ext/vendor/exuberant-ctags/entry.h +103 -0
- data/ext/vendor/exuberant-ctags/erlang.c +189 -0
- data/ext/vendor/exuberant-ctags/flex.c +2243 -0
- data/ext/vendor/exuberant-ctags/fortran.c +2197 -0
- data/ext/vendor/exuberant-ctags/general.h +127 -0
- data/ext/vendor/exuberant-ctags/get.c +669 -0
- data/ext/vendor/exuberant-ctags/get.h +50 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/all-wcprops +47 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/entries +112 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/README.txt.svn-base +5 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regcomp.c.svn-base +3818 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.c.svn-base +74 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.h.svn-base +575 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.c.svn-base +1713 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.h.svn-base +773 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regexec.c.svn-base +4338 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/README.txt +5 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regcomp.c +3818 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex.c +74 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex.h +575 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.c +1713 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.h +773 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regexec.c +4338 -0
- data/ext/vendor/exuberant-ctags/html.c +49 -0
- data/ext/vendor/exuberant-ctags/jscript.c +1572 -0
- data/ext/vendor/exuberant-ctags/keyword.c +258 -0
- data/ext/vendor/exuberant-ctags/keyword.h +34 -0
- data/ext/vendor/exuberant-ctags/lisp.c +139 -0
- data/ext/vendor/exuberant-ctags/lregex.c +704 -0
- data/ext/vendor/exuberant-ctags/lua.c +133 -0
- data/ext/vendor/exuberant-ctags/mac.c +273 -0
- data/ext/vendor/exuberant-ctags/magic.diff +21 -0
- data/ext/vendor/exuberant-ctags/main.c +584 -0
- data/ext/vendor/exuberant-ctags/main.h +32 -0
- data/ext/vendor/exuberant-ctags/maintainer.mak +476 -0
- data/ext/vendor/exuberant-ctags/make.c +217 -0
- data/ext/vendor/exuberant-ctags/matlab.c +44 -0
- data/ext/vendor/exuberant-ctags/mk_bc3.mak +46 -0
- data/ext/vendor/exuberant-ctags/mk_bc5.mak +49 -0
- data/ext/vendor/exuberant-ctags/mk_djg.mak +18 -0
- data/ext/vendor/exuberant-ctags/mk_manx.mak +65 -0
- data/ext/vendor/exuberant-ctags/mk_mingw.mak +31 -0
- data/ext/vendor/exuberant-ctags/mk_mpw.mak +130 -0
- data/ext/vendor/exuberant-ctags/mk_mvc.mak +40 -0
- data/ext/vendor/exuberant-ctags/mk_os2.mak +104 -0
- data/ext/vendor/exuberant-ctags/mk_qdos.mak +100 -0
- data/ext/vendor/exuberant-ctags/mk_sas.mak +63 -0
- data/ext/vendor/exuberant-ctags/mkinstalldirs +40 -0
- data/ext/vendor/exuberant-ctags/ocaml.c +1842 -0
- data/ext/vendor/exuberant-ctags/options.c +1842 -0
- data/ext/vendor/exuberant-ctags/options.h +155 -0
- data/ext/vendor/exuberant-ctags/parse.c +677 -0
- data/ext/vendor/exuberant-ctags/parse.h +129 -0
- data/ext/vendor/exuberant-ctags/parsers.h +63 -0
- data/ext/vendor/exuberant-ctags/pascal.c +267 -0
- data/ext/vendor/exuberant-ctags/perl.c +382 -0
- data/ext/vendor/exuberant-ctags/php.c +237 -0
- data/ext/vendor/exuberant-ctags/python.c +771 -0
- data/ext/vendor/exuberant-ctags/qdos.c +106 -0
- data/ext/vendor/exuberant-ctags/read.c +569 -0
- data/ext/vendor/exuberant-ctags/read.h +116 -0
- data/ext/vendor/exuberant-ctags/readtags.c +959 -0
- data/ext/vendor/exuberant-ctags/readtags.h +252 -0
- data/ext/vendor/exuberant-ctags/rexx.c +39 -0
- data/ext/vendor/exuberant-ctags/routines.c +891 -0
- data/ext/vendor/exuberant-ctags/routines.h +134 -0
- data/ext/vendor/exuberant-ctags/ruby.c +408 -0
- data/ext/vendor/exuberant-ctags/scheme.c +111 -0
- data/ext/vendor/exuberant-ctags/sh.c +115 -0
- data/ext/vendor/exuberant-ctags/slang.c +41 -0
- data/ext/vendor/exuberant-ctags/sml.c +212 -0
- data/ext/vendor/exuberant-ctags/sort.c +230 -0
- data/ext/vendor/exuberant-ctags/sort.h +32 -0
- data/ext/vendor/exuberant-ctags/source.mak +122 -0
- data/ext/vendor/exuberant-ctags/sql.c +2112 -0
- data/ext/vendor/exuberant-ctags/strlist.c +281 -0
- data/ext/vendor/exuberant-ctags/strlist.h +54 -0
- data/ext/vendor/exuberant-ctags/tcl.c +116 -0
- data/ext/vendor/exuberant-ctags/tex.c +524 -0
- data/ext/vendor/exuberant-ctags/verilog.c +340 -0
- data/ext/vendor/exuberant-ctags/vhdl.c +835 -0
- data/ext/vendor/exuberant-ctags/vim.c +636 -0
- data/ext/vendor/exuberant-ctags/vstring.c +232 -0
- data/ext/vendor/exuberant-ctags/vstring.h +85 -0
- data/ext/vendor/exuberant-ctags/yacc.c +40 -0
- data/lib/ctags/exuberant.rb +45 -0
- data/lib/ctags/version.rb +3 -0
- data/lib/ctags.rb +6 -0
- data/test/test_ctags.rb +24 -0
- metadata +233 -0
@@ -0,0 +1,1186 @@
|
|
1
|
+
.TH CTAGS 1 "Version 5.8" "Darren Hiebert" "Exuberant Ctags"
|
2
|
+
|
3
|
+
|
4
|
+
.SH "NAME"
|
5
|
+
ctags \- Generate tag files for source code
|
6
|
+
|
7
|
+
|
8
|
+
.SH SYNOPSIS
|
9
|
+
.TP 6
|
10
|
+
\fBctags\fP [\fBoptions\fP] [\fIfile(s)\fP]
|
11
|
+
.TP 6
|
12
|
+
\fBetags\fP [\fBoptions\fP] [\fIfile(s)\fP]
|
13
|
+
|
14
|
+
|
15
|
+
.SH "DESCRIPTION"
|
16
|
+
The \fBctags\fP and \fBetags\fP programs (hereinafter collectively referred to
|
17
|
+
as \fBctags\fP, except where distinguished) generate an index (or "tag") file
|
18
|
+
for a variety of language objects found in \fIfile(s)\fP.
|
19
|
+
This tag file allows these items to be quickly and easily located by a text
|
20
|
+
editor or other utility. A "tag" signifies a language object for which an
|
21
|
+
index entry is available (or, alternatively, the index entry created for that
|
22
|
+
object).
|
23
|
+
|
24
|
+
Alternatively, \fBctags\fP can generate a cross reference file which lists, in
|
25
|
+
human readable form, information about the various source objects found in a
|
26
|
+
set of language files.
|
27
|
+
|
28
|
+
Tag index files are supported by numerous editors, which allow the user to
|
29
|
+
locate the object associated with a name appearing in a source file and jump
|
30
|
+
to the file and line which defines the name. Those known about at the time of
|
31
|
+
this release are:
|
32
|
+
|
33
|
+
.RS 4
|
34
|
+
\fBVi\fP(1) and its derivatives (e.g. Elvis, Vim, Vile, Lemmy),
|
35
|
+
\fBCRiSP\fP,
|
36
|
+
\fBEmacs\fP,
|
37
|
+
\fBFTE\fP (Folding Text Editor),
|
38
|
+
\fBJED\fP,
|
39
|
+
\fBjEdit\fP,
|
40
|
+
\fBMined\fP,
|
41
|
+
\fBNEdit\fP (Nirvana Edit),
|
42
|
+
\fBTSE\fP (The SemWare Editor),
|
43
|
+
\fBUltraEdit\fP,
|
44
|
+
\fBWorkSpace\fP,
|
45
|
+
\fBX2\fP,
|
46
|
+
\fBZeus\fP
|
47
|
+
.RE
|
48
|
+
|
49
|
+
\fBCtags\fP is capable of generating different kinds of tags for each of many
|
50
|
+
different languages. For a complete list of supported languages, the names
|
51
|
+
by which they are recognized, and the kinds of tags which are generated for
|
52
|
+
each, see the \fB\-\-list\-languages\fP and \fB\-\-list\-kinds\fP options.
|
53
|
+
|
54
|
+
|
55
|
+
.SH "SOURCE FILES"
|
56
|
+
|
57
|
+
Unless the \fB\-\-language\-force\fP option is specified, the language of each
|
58
|
+
source file is automatically selected based upon a mapping of file names to
|
59
|
+
languages. The mappings in effect for each language may be display using the
|
60
|
+
\fB\-\-list\-maps\fP option and may be changed using the \fB\-\-langmap\fP option.
|
61
|
+
On platforms which support it, if the name of a file is not mapped
|
62
|
+
to a language and the file is executable, the first line of the file is
|
63
|
+
checked to see if the file is a "#!" script for a recognized language.
|
64
|
+
|
65
|
+
By default, all other files names are ignored. This permits running
|
66
|
+
\fBctags\fP on all files in either a single directory (e.g. "ctags *"), or on
|
67
|
+
all files in an entire source directory tree (e.g. "ctags \-R"), since only
|
68
|
+
those files whose names are mapped to languages will be scanned.
|
69
|
+
|
70
|
+
[The reason that .h extensions are mapped to C++ files rather than C files
|
71
|
+
is because it is common to use .h extensions in C++, and no harm results in
|
72
|
+
treating them as C++ files.]
|
73
|
+
|
74
|
+
|
75
|
+
.SH "OPTIONS"
|
76
|
+
|
77
|
+
Despite the wealth of available options, defaults are set so that \fBctags\fP
|
78
|
+
is most commonly executed without any options (e.g. "ctags *", or "ctags \-R"),
|
79
|
+
which will create a tag file in the current directory for all recognized
|
80
|
+
source files. The options described below are provided merely to allow custom
|
81
|
+
tailoring to meet special needs.
|
82
|
+
|
83
|
+
Note that spaces separating the single-letter options from their parameters
|
84
|
+
are optional.
|
85
|
+
|
86
|
+
Note also that the boolean parameters to the long form options (those
|
87
|
+
beginning with "\-\-" and that take a "\fI[=yes\fP|\fIno]\fP" parameter) may
|
88
|
+
be omitted, in which case "\fB=\fP\fIyes\fP" is implied. (e.g. \fB\-\-sort\fP
|
89
|
+
is equivalent to \fB\-\-sort\fP=\fIyes\fP). Note further that "=\fI1\fP" and
|
90
|
+
"=\fIon\fP" are considered synonyms for "=\fIyes\fP", and that "=\fI0\fP"
|
91
|
+
and "=\fIoff\fP" are considered synonyms for "=\fIno\fP".
|
92
|
+
|
93
|
+
Some options are either ignored or useful only when used while running in
|
94
|
+
etags mode (see \fB\-e\fP option). Such options will be noted.
|
95
|
+
|
96
|
+
Most options may appear anywhere on the command line, affecting only those
|
97
|
+
files which follow the option. A few options, however, must appear before the
|
98
|
+
first file name and will be noted as such.
|
99
|
+
|
100
|
+
Options taking language names will accept those names in either upper or lower
|
101
|
+
case. See the \fB\-\-list\-languages\fP option for a complete list of the
|
102
|
+
built-in language names.
|
103
|
+
|
104
|
+
.TP 5
|
105
|
+
.B \-a
|
106
|
+
Equivalent to \fB\-\-append\fP.
|
107
|
+
|
108
|
+
.TP 5
|
109
|
+
.B \-B
|
110
|
+
Use backward searching patterns (e.g. ?pattern?). [Ignored in etags mode]
|
111
|
+
|
112
|
+
.TP 5
|
113
|
+
.B \-e
|
114
|
+
Enable etags mode, which will create a tag file for use with the Emacs editor.
|
115
|
+
Alternatively, if \fBctags\fP is invoked by a name containing the string
|
116
|
+
"etags" (either by renaming, or creating a link to, the executable), etags
|
117
|
+
mode will be enabled. This option must appear before the first file name.
|
118
|
+
|
119
|
+
.TP 5
|
120
|
+
.BI \-f " tagfile"
|
121
|
+
Use the name specified by \fItagfile\fP for the tag file (default is "tags",
|
122
|
+
or "TAGS" when running in etags mode). If \fItagfile\fP is specified as
|
123
|
+
"\-", then the tag file is written to standard output instead. \fBCtags\fP
|
124
|
+
will stubbornly refuse to take orders if \fItagfile\fP exists and its first
|
125
|
+
line contains something other than a valid tags line. This will save your neck
|
126
|
+
if you mistakenly type "ctags \-f *.c", which would otherwise overwrite your
|
127
|
+
first C file with the tags generated by the rest! It will also refuse to
|
128
|
+
accept a multi-character file name which begins with a '\-' (dash) character,
|
129
|
+
since this most likely means that you left out the tag file name and this
|
130
|
+
option tried to grab the next option as the file name. If you really want to
|
131
|
+
name your output tag file "\-ugly", specify it as "./\-ugly". This option must
|
132
|
+
appear before the first file name. If this option is specified more than once,
|
133
|
+
only the last will apply.
|
134
|
+
|
135
|
+
.TP 5
|
136
|
+
.B \-F
|
137
|
+
Use forward searching patterns (e.g. /pattern/) (default).
|
138
|
+
[Ignored in etags mode]
|
139
|
+
|
140
|
+
.TP 5
|
141
|
+
.BI \-h " list"
|
142
|
+
Specifies a list of file extensions, separated by periods, which are to be
|
143
|
+
interpreted as include (or header) files. To indicate files having no
|
144
|
+
extension, use a period not followed by a non-period character (e.g. ".",
|
145
|
+
"..x", ".x."). This option only affects how the scoping of a particular kinds
|
146
|
+
of tags is interpreted (i.e. whether or not they are considered as globally
|
147
|
+
visible or visible only within the file in which they are defined); it does
|
148
|
+
not map the extension to any particular language. Any tag which is located in
|
149
|
+
a non-include file and cannot be seen (e.g. linked to) from another file is
|
150
|
+
considered to have file-limited (e.g. static) scope. No kind of tag appearing
|
151
|
+
in an include file will be considered to have file-limited scope. If the first
|
152
|
+
character in the list is a plus sign, then the extensions in the list will be
|
153
|
+
appended to the current list; otherwise, the list will replace the current
|
154
|
+
list. See, also, the \fB\-\-file\-scope\fP option. The default list is
|
155
|
+
".h.H.hh.hpp.hxx.h++.inc.def". To restore the default list, specify \fB\-h\fP
|
156
|
+
\fIdefault\fP. Note that if an extension supplied to this option is not
|
157
|
+
already mapped to a particular language (see \fBSOURCE FILES\fP, above), you
|
158
|
+
will also need to use either the \fB\-\-langmap\fP or \fB\-\-language\-force\fP
|
159
|
+
option.
|
160
|
+
|
161
|
+
.TP 5
|
162
|
+
.BI \-I " identifier\-list"
|
163
|
+
Specifies a list of identifiers which are to be specially handled while
|
164
|
+
parsing C and C++ source files. This option is specifically provided to handle
|
165
|
+
special cases arising through the use of preprocessor macros. When the
|
166
|
+
identifiers listed are simple identifiers, these identifiers will be ignored
|
167
|
+
during parsing of the source files. If an identifier is suffixed with a '+'
|
168
|
+
character, \fBctags\fP will also ignore any parenthesis-enclosed argument list
|
169
|
+
which may immediately follow the identifier in the source files. If two
|
170
|
+
identifiers are separated with the '=' character, the first identifiers is
|
171
|
+
replaced by the second identifiers for parsing purposes. The list of
|
172
|
+
identifiers may be supplied directly on the command line or read in from a
|
173
|
+
separate file. If the first character of \fIidentifier\-list\fP is '@', '.' or
|
174
|
+
a pathname separator ('/' or '\\'), or the first two characters specify a
|
175
|
+
drive letter (e.g. "C:"), the parameter \fIidentifier\-list\fP will be
|
176
|
+
interpreted as a filename from which to read a list of identifiers, one per
|
177
|
+
input line. Otherwise, \fIidentifier\-list\fP is a list of identifiers (or
|
178
|
+
identifier pairs) to be specially handled, each delimited by a either a comma
|
179
|
+
or by white space (in which case the list should be quoted to keep the entire
|
180
|
+
list as one command line argument). Multiple \fB\-I\fP options may be supplied.
|
181
|
+
To clear the list of ignore identifiers, supply a single dash ("\-") for
|
182
|
+
\fIidentifier\-list\fP.
|
183
|
+
|
184
|
+
This feature is useful when preprocessor macros are used in such a way that
|
185
|
+
they cause syntactic confusion due to their presence. Indeed, this is the best
|
186
|
+
way of working around a number of problems caused by the presence of
|
187
|
+
syntax-busting macros in source files (see \fBCAVEATS\fP, below). Some
|
188
|
+
examples will illustrate this point.
|
189
|
+
|
190
|
+
.RS 8
|
191
|
+
int foo ARGDECL4(void *, ptr, long int, nbytes)
|
192
|
+
.RE
|
193
|
+
|
194
|
+
.IP
|
195
|
+
In the above example, the macro "ARGDECL4" would be mistakenly interpreted to
|
196
|
+
be the name of the function instead of the correct name of "foo". Specifying
|
197
|
+
\fB\-I\fP \fIARGDECL4\fP results in the correct behavior.
|
198
|
+
|
199
|
+
.RS 8
|
200
|
+
/* creates an RCS version string in module */
|
201
|
+
.br
|
202
|
+
MODULE_VERSION("$Revision: 690 $")
|
203
|
+
.RE
|
204
|
+
|
205
|
+
.IP
|
206
|
+
In the above example the macro invocation looks too much like a function
|
207
|
+
definition because it is not followed by a semicolon (indeed, it could even be
|
208
|
+
followed by a global variable definition that would look much like a K&R style
|
209
|
+
function parameter declaration). In fact, this seeming function definition
|
210
|
+
could possibly even cause the rest of the file to be skipped over while trying
|
211
|
+
to complete the definition. Specifying \fB\-I\fP \fIMODULE_VERSION+\fP would
|
212
|
+
avoid such a problem.
|
213
|
+
|
214
|
+
.RS 8
|
215
|
+
CLASS Example {
|
216
|
+
.br
|
217
|
+
// your content here
|
218
|
+
.br
|
219
|
+
};
|
220
|
+
.RE
|
221
|
+
|
222
|
+
.IP
|
223
|
+
The example above uses "CLASS" as a preprocessor macro which expands to
|
224
|
+
something different for each platform. For instance CLASS may be defined as
|
225
|
+
"class __declspec(dllexport)" on Win32 platforms and simply "class" on UNIX.
|
226
|
+
Normally, the absence of the C++ keyword "class" would cause the source file
|
227
|
+
to be incorrectly parsed. Correct behavior can be restored by specifying
|
228
|
+
\fB\-I\fP \fICLASS=class\fP.
|
229
|
+
|
230
|
+
.TP 5
|
231
|
+
.BI \-L " file"
|
232
|
+
Read from \fIfile\fP a list of file names for which tags should be generated.
|
233
|
+
If \fIfile\fP is specified as "\-", then file names are read from standard
|
234
|
+
input. File names read using this option are processed following file names
|
235
|
+
appearing on the command line. Options are also accepted in this input. If
|
236
|
+
this option is specified more than once, only the last will apply. \fBNote:\fP
|
237
|
+
\fIfile\fP is read in line-oriented mode, where a new line is the only
|
238
|
+
delimiter and non-trailing white space is considered significant, in order
|
239
|
+
that file names containing spaces may be supplied (however, trailing white
|
240
|
+
space is stripped from lines); this can affect how options are parsed if
|
241
|
+
included in the input.
|
242
|
+
|
243
|
+
.TP 5
|
244
|
+
.B \-n
|
245
|
+
Equivalent to \fB\-\-excmd\fP=\fInumber\fP.
|
246
|
+
|
247
|
+
.TP 5
|
248
|
+
.B \-N
|
249
|
+
Equivalent to \fB\-\-excmd\fP=\fIpattern\fP.
|
250
|
+
|
251
|
+
.TP 5
|
252
|
+
.BI \-o " tagfile"
|
253
|
+
Equivalent to \fB\-f\fP \fItagfile\fP.
|
254
|
+
|
255
|
+
.TP 5
|
256
|
+
.B \-R
|
257
|
+
Equivalent to \fB\-\-recurse\fP.
|
258
|
+
|
259
|
+
.TP 5
|
260
|
+
.B \-u
|
261
|
+
Equivalent to \fB\-\-sort\fP=\fIno\fP (i.e. "unsorted").
|
262
|
+
|
263
|
+
.TP 5
|
264
|
+
.B \-V
|
265
|
+
Equivalent to \fB\-\-verbose\fP.
|
266
|
+
|
267
|
+
.TP 5
|
268
|
+
.B \-w
|
269
|
+
This option is silently ignored for backward-compatibility with the ctags
|
270
|
+
of SVR4 Unix.
|
271
|
+
|
272
|
+
.TP 5
|
273
|
+
.B \-x
|
274
|
+
Print a tabular, human-readable cross reference (xref) file to standard output
|
275
|
+
instead of generating a tag file. The information contained in the output
|
276
|
+
includes: the tag name; the kind of tag; the line number, file name, and
|
277
|
+
source line (with extra white space condensed) of the file which defines the
|
278
|
+
tag. No tag file is written and all options affecting tag file output will be
|
279
|
+
ignored. Example applications for this feature are generating a listing of all
|
280
|
+
functions located in a source file (e.g. \fBctags \-x \-\-c\-kinds\fP=\fIf\fP
|
281
|
+
\fIfile\fP), or generating a list of all externally visible global variables
|
282
|
+
located in a source file (e.g. \fBctags \-x \-\-c\-kinds\fP=\fIv\fP
|
283
|
+
\fB\-\-file\-scope\fP=\fIno file\fP). This option must appear before the first
|
284
|
+
file name.
|
285
|
+
|
286
|
+
.TP 5
|
287
|
+
\fB\-\-append\fP[=\fIyes\fP|\fIno\fP]
|
288
|
+
Indicates whether tags generated from the specified files should be appended
|
289
|
+
to those already present in the tag file or should replace them. This option
|
290
|
+
is off by default. This option must appear before the first file name.
|
291
|
+
|
292
|
+
.TP 5
|
293
|
+
\fB\-\-etags\-include\fP=\fIfile\fP
|
294
|
+
Include a reference to \fIfile\fP in the tag file. This option may be
|
295
|
+
specified as many times as desired. This supports Emacs' capability to use a
|
296
|
+
tag file which "includes" other tag files. [Available only in etags mode]
|
297
|
+
|
298
|
+
.TP 5
|
299
|
+
\fB\-\-exclude\fP=[\fIpattern\fP]
|
300
|
+
Add \fIpattern\fP to a list of excluded files and directories. This option
|
301
|
+
may be specified as many times as desired. For each file name considered by
|
302
|
+
\fBctags\fP, each \fIpattern\fP specified using this option will be compared
|
303
|
+
against both the complete path (e.g. some/path/base.ext) and the base name
|
304
|
+
(e.g. base.ext) of the file, thus allowing patterns which match a given file
|
305
|
+
name irrespective of its path, or match only a specific path. If appropriate
|
306
|
+
support is available from the runtime library of your C compiler, then
|
307
|
+
\fIpattern\fP may contain the usual shell wildcards (not regular expressions)
|
308
|
+
common on Unix (be sure to quote the option parameter to protect the wildcards
|
309
|
+
from being expanded by the shell before being passed to \fBctags\fP; also be
|
310
|
+
aware that wildcards can match the slash character, '/'). You can determine if
|
311
|
+
shell wildcards are available on your platform by examining the output of the
|
312
|
+
\fB\-\-version\fP option, which will include "+wildcards" in the compiled
|
313
|
+
feature list; otherwise, \fIpattern\fP is matched against file names using a
|
314
|
+
simple textual comparison.
|
315
|
+
|
316
|
+
If \fIpattern\fP begins with the character '@', then the rest of the string
|
317
|
+
is interpreted as a file name from which to read exclusion patterns, one per
|
318
|
+
line. If \fIpattern\fP is empty, the list of excluded patterns is cleared.
|
319
|
+
Note that at program startup, the default exclude list contains "EIFGEN",
|
320
|
+
"SCCS", "RCS", and "CVS", which are names of directories for which it is
|
321
|
+
generally not desirable to descend while processing the \fB\-\-recurse\fP
|
322
|
+
option.
|
323
|
+
|
324
|
+
.TP 5
|
325
|
+
\fB\-\-excmd\fP=\fItype\fP
|
326
|
+
Determines the type of EX command used to locate tags in the source file.
|
327
|
+
[Ignored in etags mode]
|
328
|
+
|
329
|
+
The valid values for \fItype\fP (either the entire word or the first letter is
|
330
|
+
accepted) are:
|
331
|
+
|
332
|
+
.RS 5
|
333
|
+
.TP 9
|
334
|
+
.I number
|
335
|
+
Use only line numbers in the tag file for locating tags. This has four
|
336
|
+
advantages:
|
337
|
+
.PD 0
|
338
|
+
.RS 9
|
339
|
+
.TP 4
|
340
|
+
1.
|
341
|
+
Significantly reduces the size of the resulting tag file.
|
342
|
+
.TP 4
|
343
|
+
2.
|
344
|
+
Eliminates failures to find tags because the line defining the tag has
|
345
|
+
changed, causing the pattern match to fail (note that some editors, such as
|
346
|
+
\fBvim\fP, are able to recover in many such instances).
|
347
|
+
.TP 4
|
348
|
+
3.
|
349
|
+
Eliminates finding identical matching, but incorrect, source lines (see
|
350
|
+
\fBBUGS\fP, below).
|
351
|
+
.TP 4
|
352
|
+
4.
|
353
|
+
Retains separate entries in the tag file for lines which are identical in
|
354
|
+
content. In \fIpattern\fP mode, duplicate entries are dropped because the
|
355
|
+
search patterns they generate are identical, making the duplicate entries
|
356
|
+
useless.
|
357
|
+
.RE
|
358
|
+
.PD 1
|
359
|
+
|
360
|
+
.IP
|
361
|
+
However, this option has one significant drawback: changes to the source files
|
362
|
+
can cause the line numbers recorded in the tag file to no longer correspond
|
363
|
+
to the lines in the source file, causing jumps to some tags to miss the target
|
364
|
+
definition by one or more lines. Basically, this option is best used when the
|
365
|
+
source code to which it is applied is not subject to change. Selecting this
|
366
|
+
option type causes the following options to be ignored: \fB\-BF\fP.
|
367
|
+
|
368
|
+
.TP 9
|
369
|
+
.I pattern
|
370
|
+
Use only search patterns for all tags, rather than the line numbers usually
|
371
|
+
used for macro definitions. This has the advantage of not referencing obsolete
|
372
|
+
line numbers when lines have been added or removed since the tag file was
|
373
|
+
generated.
|
374
|
+
|
375
|
+
.TP 9
|
376
|
+
.I mixed
|
377
|
+
In this mode, patterns are generally used with a few exceptions. For C, line
|
378
|
+
numbers are used for macro definition tags. This was the default format
|
379
|
+
generated by the original \fBctags\fP and is, therefore, retained as the
|
380
|
+
default for this option. For Fortran, line numbers are used for common blocks
|
381
|
+
because their corresponding source lines are generally identical, making
|
382
|
+
pattern searches useless for finding all matches.
|
383
|
+
.RE
|
384
|
+
|
385
|
+
.TP 5
|
386
|
+
\fB\-\-extra\fP=\fI[+|\-]flags\fP
|
387
|
+
Specifies whether to include extra tag entries for certain kinds of
|
388
|
+
information. The parameter \fIflags\fP is a set of one-letter flags, each
|
389
|
+
representing one kind of extra tag entry to include in the tag file. If
|
390
|
+
\fIflags\fP is preceded by by either the '+' or '\-' character, the effect of
|
391
|
+
each flag is added to, or removed from, those currently enabled; otherwise the
|
392
|
+
flags replace any current settings. The meaning of each flag is as follows:
|
393
|
+
|
394
|
+
.PP
|
395
|
+
.RS 8
|
396
|
+
.TP 4
|
397
|
+
.I f
|
398
|
+
Include an entry for the base file name of every source file (e.g.
|
399
|
+
"example.c"), which addresses the first line of the file.
|
400
|
+
.TP 4
|
401
|
+
.I q
|
402
|
+
Include an extra class-qualified tag entry for each tag which is a member
|
403
|
+
of a class (for languages for which this information is extracted; currently
|
404
|
+
C++, Eiffel, and Java). The actual form of the qualified tag depends upon the
|
405
|
+
language from which the tag was derived (using a form that is most natural for
|
406
|
+
how qualified calls are specified in the language). For C++, it is in the form
|
407
|
+
"class::member"; for Eiffel and Java, it is in the form "class.member". This
|
408
|
+
may allow easier location of a specific tags when multiple occurrences of a
|
409
|
+
tag name occur in the tag file. Note, however, that this could potentially
|
410
|
+
more than double the size of the tag file.
|
411
|
+
.RE
|
412
|
+
|
413
|
+
.TP 5
|
414
|
+
\fB\-\-fields\fP=\fI[+|\-]flags\fP
|
415
|
+
Specifies the available extension fields which are to be included in the
|
416
|
+
entries of the tag file (see \fBTAG FILE FORMAT\fP, below, for more
|
417
|
+
information). The parameter \fIflags\fP is a set of one-letter flags, each
|
418
|
+
representing one type of extension field to include, with the following
|
419
|
+
meanings (disabled by default unless indicated):
|
420
|
+
|
421
|
+
.PP
|
422
|
+
.PD 0
|
423
|
+
.RS 8
|
424
|
+
.TP 4
|
425
|
+
.I a
|
426
|
+
Access (or export) of class members
|
427
|
+
.TP 4
|
428
|
+
.I f
|
429
|
+
File-restricted scoping [enabled]
|
430
|
+
.TP 4
|
431
|
+
.I i
|
432
|
+
Inheritance information
|
433
|
+
.TP 4
|
434
|
+
.I k
|
435
|
+
Kind of tag as a single letter [enabled]
|
436
|
+
.TP 4
|
437
|
+
.I K
|
438
|
+
Kind of tag as full name
|
439
|
+
.TP 4
|
440
|
+
.I l
|
441
|
+
Language of source file containing tag
|
442
|
+
.TP 4
|
443
|
+
.I m
|
444
|
+
Implementation information
|
445
|
+
.TP 4
|
446
|
+
.I n
|
447
|
+
Line number of tag definition
|
448
|
+
.TP 4
|
449
|
+
.I s
|
450
|
+
Scope of tag definition [enabled]
|
451
|
+
.TP 4
|
452
|
+
.I S
|
453
|
+
Signature of routine (e.g. prototype or parameter list)
|
454
|
+
.TP 4
|
455
|
+
.I z
|
456
|
+
Include the "kind:" key in kind field
|
457
|
+
.TP 4
|
458
|
+
.I t
|
459
|
+
Type and name of a variable or typedef as "typeref:" field [enabled]
|
460
|
+
.PD 1
|
461
|
+
.RE
|
462
|
+
|
463
|
+
.RS 5
|
464
|
+
Each letter or group of letters may be preceded by either '+' to add it to the
|
465
|
+
default set, or '\-' to exclude it. In the absence of any preceding '+' or '\-'
|
466
|
+
sign, only those kinds explicitly listed in \fIflags\fP will be included in
|
467
|
+
the output (i.e. overriding the default set). This option is ignored if the
|
468
|
+
option \fB\-\-format\fP=\fI1\fP has been specified. The default value
|
469
|
+
of this option is \fIfkst\fP.
|
470
|
+
.RE
|
471
|
+
|
472
|
+
.TP 5
|
473
|
+
\fB\-\-file\-scope\fP[=\fIyes\fP|\fIno\fP]
|
474
|
+
Indicates whether tags scoped only for a single file (i.e. tags which cannot
|
475
|
+
be seen outside of the file in which they are defined, such as "static" tags)
|
476
|
+
should be included in the output. See, also, the \fB\-h\fP option. This option
|
477
|
+
is enabled by default.
|
478
|
+
|
479
|
+
.TP 5
|
480
|
+
\fB\-\-filter\fP[=\fIyes\fP|\fIno\fP]
|
481
|
+
Causes \fBctags\fP to behave as a filter, reading source file names from
|
482
|
+
standard input and printing their tags to standard output on a file-by-file
|
483
|
+
basis. If \fB\-\-sorted\fP is enabled, tags are sorted only within the source
|
484
|
+
file in which they are defined. File names are read from standard input in
|
485
|
+
line-oriented input mode (see note for \fB\-L\fP option) and only after file
|
486
|
+
names listed on the command line or from any file supplied using the \fB\-L\fP
|
487
|
+
option. When this option is enabled, the options \fB\-f\fP, \fB\-o\fP,
|
488
|
+
and \fB\-\-totals\fP are ignored. This option is quite esoteric and is disabled
|
489
|
+
by default. This option must appear before the first file name.
|
490
|
+
|
491
|
+
.TP 5
|
492
|
+
\fB\-\-filter\-terminator\fP=\fIstring\fP
|
493
|
+
Specifies a string to print to standard output following the tags for each
|
494
|
+
file name parsed when the \fB\-\-filter\fP option is enabled. This may permit an
|
495
|
+
application reading the output of ctags to determine when the output for each
|
496
|
+
file is finished. Note that if the file name read is a directory and
|
497
|
+
\fB\-\-recurse\fP is enabled, this string will be printed only one once at the
|
498
|
+
end of all tags found for by descending the directory. This string will always
|
499
|
+
be separated from the last tag line for the file by its terminating newline.
|
500
|
+
This option is quite esoteric and is empty by default. This option must appear
|
501
|
+
before the first file name.
|
502
|
+
|
503
|
+
.TP 5
|
504
|
+
\fB\-\-format\fP=\fIlevel\fP
|
505
|
+
Change the format of the output tag file. Currently the only valid values for
|
506
|
+
\fIlevel\fP are \fI1\fP or \fI2\fP. Level 1 specifies the original tag file
|
507
|
+
format and level 2 specifies a new extended format containing extension fields
|
508
|
+
(but in a manner which retains backward-compatibility with original
|
509
|
+
\fBvi\fP(1) implementations). The default level is 2. This option must appear
|
510
|
+
before the first file name. [Ignored in etags mode]
|
511
|
+
|
512
|
+
.TP 5
|
513
|
+
.B \-\-help
|
514
|
+
Prints to standard output a detailed usage description, and then exits.
|
515
|
+
|
516
|
+
.TP 5
|
517
|
+
\fB\-\-if0\fP[=\fIyes\fP|\fIno\fP]
|
518
|
+
Indicates a preference as to whether code within an "#if 0" branch of a
|
519
|
+
preprocessor conditional should be examined for non-macro tags (macro tags are
|
520
|
+
always included). Because the intent of this construct is to disable code, the
|
521
|
+
default value of this option is \fIno\fP. Note that this indicates a
|
522
|
+
preference only and does not guarantee skipping code within an "#if 0" branch,
|
523
|
+
since the fall-back algorithm used to generate tags when preprocessor
|
524
|
+
conditionals are too complex follows all branches of a conditional. This
|
525
|
+
option is disabled by default.
|
526
|
+
|
527
|
+
.TP 5
|
528
|
+
\fB\-\-<LANG>\-kinds\fP=\fI[+|\-]kinds\fP
|
529
|
+
Specifies a list of language-specific kinds of tags (or kinds) to include in
|
530
|
+
the output file for a particular language, where \fB<LANG>\fP is
|
531
|
+
case-insensitive and is one of the built-in language names (see the
|
532
|
+
\fB\-\-list\-languages\fP option for a complete list). The parameter \fIkinds\fP
|
533
|
+
is a group of one-letter flags designating kinds of tags (particular to the
|
534
|
+
language) to either include or exclude from the output. The specific sets of
|
535
|
+
flags recognized for each language, their meanings and defaults may be list
|
536
|
+
using the \fB\-\-list\-kinds\fP option. Each letter or group of letters may be
|
537
|
+
preceded by either '+' to add it to, or '\-' to remove it from, the default
|
538
|
+
set. In the absence of any preceding '+' or '\-' sign, only those kinds
|
539
|
+
explicitly listed in \fIkinds\fP will be included in the output (i.e.
|
540
|
+
overriding the default for the specified language).
|
541
|
+
|
542
|
+
As an example for the C language, in order to add prototypes and external
|
543
|
+
variable declarations to the default set of tag kinds, but exclude macros,
|
544
|
+
use \fB\-\-c\-kinds\fP=\fI+px\-d\fP; to include only tags for functions, use
|
545
|
+
\fB\-\-c\-kinds\fP=\fIf\fP.
|
546
|
+
|
547
|
+
.TP 5
|
548
|
+
\fB\-\-langdef\fP=\fIname\fP
|
549
|
+
Defines a new user-defined language, \fIname\fP, to be parsed with regular
|
550
|
+
expressions. Once defined, \fIname\fP may be used in other options taking
|
551
|
+
language names. The typical use of this option is to first define the
|
552
|
+
language, then map file names to it using \fI\-\-langmap\fP, then specify
|
553
|
+
regular expressions using \fI\-\-regex\-<LANG>\fP to define how its tags are
|
554
|
+
found.
|
555
|
+
|
556
|
+
.TP 5
|
557
|
+
\fB\-\-langmap\fP=\fImap[,map[...]]\fP
|
558
|
+
Controls how file names are mapped to languages (see the \fB\-\-list\-maps\fP
|
559
|
+
option). Each comma-separated \fImap\fP consists of the language name (either
|
560
|
+
a built-in or user-defined language), a colon, and a list of file extensions
|
561
|
+
and/or file name patterns. A file extension is specified by preceding the
|
562
|
+
extension with a period (e.g. ".c"). A file name pattern is specified by
|
563
|
+
enclosing the pattern in parentheses (e.g. "([Mm]akefile)"). If appropriate
|
564
|
+
support is available from the runtime library of your C compiler, then the
|
565
|
+
file name pattern may contain the usual shell wildcards common on Unix (be
|
566
|
+
sure to quote the option parameter to protect the wildcards from being
|
567
|
+
expanded by the shell before being passed to \fBctags\fP). You can determine
|
568
|
+
if shell wildcards are available on your platform by examining the output of
|
569
|
+
the \fB\-\-version\fP option, which will include "+wildcards" in the compiled
|
570
|
+
feature list; otherwise, the file name patterns are matched against file names
|
571
|
+
using a simple textual comparison. When mapping a file extension, it will
|
572
|
+
first be unmapped from any other languages.
|
573
|
+
|
574
|
+
If the first character in a map is a plus sign, then the extensions and file
|
575
|
+
name patterns in that map will be appended to the current map for that
|
576
|
+
language; otherwise, the map will replace the current map. For example, to
|
577
|
+
specify that only files with extensions of .c and .x are to be treated as C
|
578
|
+
language files, use "\fB\-\-langmap\fP=\fIc:.c.x\fP"; to also add files with
|
579
|
+
extensions of .j as Java language files, specify
|
580
|
+
"\fB\-\-langmap\fP=\fIc:.c.x,java:+.j\fP". To map makefiles (e.g. files
|
581
|
+
named either "Makefile", "makefile", or having the extension ".mak") to a
|
582
|
+
language called "make", specify "\fB\-\-langmap\fP=\fImake:([Mm]akefile).mak\fP".
|
583
|
+
To map files having no extension, specify a period not followed by a
|
584
|
+
non-period character (e.g. ".", "..x", ".x."). To clear the mapping for a
|
585
|
+
particular language (thus inhibiting automatic generation of tags for that
|
586
|
+
language), specify an empty extension list (e.g.
|
587
|
+
"\fB\-\-langmap\fP=\fIfortran:\fP"). To restore the default language mappings
|
588
|
+
for all a particular language, supply the keyword "default" for the mapping.
|
589
|
+
To specify restore the default language mappings for all languages, specify
|
590
|
+
"\fB\-\-langmap\fP=\fIdefault\fP". Note that file extensions are tested before
|
591
|
+
file name patterns when inferring the language of a file.
|
592
|
+
|
593
|
+
.TP 5
|
594
|
+
\fB\-\-language\-force\fP=\fIlanguage\fP
|
595
|
+
By default, \fBctags\fP automatically selects the language of a source file,
|
596
|
+
ignoring those files whose language cannot be determined (see
|
597
|
+
\fBSOURCE FILES\fP, above). This option forces the specified \fIlanguage\fP
|
598
|
+
(case-insensitive; either built-in or user-defined) to be used for every
|
599
|
+
supplied file instead of automatically selecting the language based upon its
|
600
|
+
extension. In addition, the special value \fIauto\fP indicates that the
|
601
|
+
language should be automatically selected (which effectively disables this
|
602
|
+
option).
|
603
|
+
|
604
|
+
.TP 5
|
605
|
+
\fB\-\-languages\fP=\fI[+|\-]list\fP
|
606
|
+
Specifies the languages for which tag generation is enabled, with \fIlist\fP
|
607
|
+
containing a comma-separated list of language names (case-insensitive; either
|
608
|
+
built-in or user-defined). If the first language of \fIlist\fP is not preceded
|
609
|
+
by either a '+' or '\-', the current list will be cleared before adding or
|
610
|
+
removing the languages in \fIlist\fP. Until a '\-' is encountered, each
|
611
|
+
language in the list will be added to the current list. As either the '+' or
|
612
|
+
\&'\-' is encountered in the list, the languages following it are added or
|
613
|
+
removed from the current list, respectively. Thus, it becomes simple to
|
614
|
+
replace the current list with a new one, or to add or remove languages from
|
615
|
+
the current list. The actual list of files for which tags will be generated
|
616
|
+
depends upon the language extension mapping in effect (see the \fB\-\-langmap\fP
|
617
|
+
option). Note that all languages, including user-defined languages are enabled
|
618
|
+
unless explicitly disabled using this option. Language names included in
|
619
|
+
\fIlist\fP may be any built-in language or one previously defined with
|
620
|
+
\fB\-\-langdef\fP. The default is "all", which is also accepted as a valid
|
621
|
+
argument. See the \fB\-\-list\-languages\fP option for a complete list of the
|
622
|
+
built-in language names.
|
623
|
+
|
624
|
+
.TP 5
|
625
|
+
\fB\-\-license\fP
|
626
|
+
Prints a summary of the software license to standard output, and then exits.
|
627
|
+
|
628
|
+
.TP 5
|
629
|
+
\fB\-\-line\-directives\fP[=\fIyes\fP|\fIno\fP]
|
630
|
+
Specifies whether "#line" directives should be recognized. These are present
|
631
|
+
in the output of preprocessors and contain the line number, and possibly the
|
632
|
+
file name, of the original source file(s) from which the preprocessor output
|
633
|
+
file was generated. When enabled, this option will cause \fBctags\fP to
|
634
|
+
generate tag entries marked with the file names and line numbers of their
|
635
|
+
locations original source file(s), instead of their actual locations in the
|
636
|
+
preprocessor output. The actual file names placed into the tag file will have
|
637
|
+
the same leading path components as the preprocessor output file, since it is
|
638
|
+
assumed that the original source files are located relative to the
|
639
|
+
preprocessor output file (unless, of course, the #line directive specifies an
|
640
|
+
absolute path). This option is off by default. \fBNote:\fP This option is
|
641
|
+
generally only useful when used together with the \fB\-\-excmd\fP=\fInumber\fP
|
642
|
+
(\fB\-n\fP) option. Also, you may have to use either the \fB\-\-langmap\fP or
|
643
|
+
\fB\-\-language\-force\fP option if the extension of the preprocessor output file
|
644
|
+
is not known to \fBctags\fP.
|
645
|
+
|
646
|
+
.TP 5
|
647
|
+
\fB\-\-links\fP[=\fIyes\fP|\fIno\fP]
|
648
|
+
Indicates whether symbolic links (if supported) should be followed. When
|
649
|
+
disabled, symbolic links are ignored. This option is on by default.
|
650
|
+
|
651
|
+
.TP 5
|
652
|
+
\fB\-\-list\-kinds\fP[=\fIlanguage\fP|\fIall\fP]
|
653
|
+
Lists the tag kinds recognized for either the specified language or all
|
654
|
+
languages, and then exits. Each kind of tag recorded in the tag file is
|
655
|
+
represented by a one-letter flag, which is also used to filter the tags placed
|
656
|
+
into the output through use of the \fB\-\-<LANG>\-kinds\fP option. Note that some
|
657
|
+
languages and/or tag kinds may be implemented using regular expressions and
|
658
|
+
may not be available if regex support is not compiled into \fBctags\fP (see
|
659
|
+
the \fB\-\-regex\-<LANG>\fP option). Each kind listed is enabled unless followed
|
660
|
+
by "[off]".
|
661
|
+
|
662
|
+
.TP 5
|
663
|
+
\fB\-\-list\-maps\fP[=\fIlanguage\fP|\fIall\fP]
|
664
|
+
Lists the file extensions and file name patterns which associate a file name
|
665
|
+
with a language for either the specified language or all languages, and then
|
666
|
+
exits. See the \fB\-\-langmap\fP option, and \fBSOURCE FILES\fP, above.
|
667
|
+
|
668
|
+
.TP 5
|
669
|
+
\fB\-\-list\-languages\fP
|
670
|
+
Lists the names of the languages understood by \fBctags\fP, and then exits.
|
671
|
+
These language names are case insensitive and may be used in the
|
672
|
+
\fB\-\-language\-force\fP, \fB\-\-languages\fP, \fB\-\-<LANG>\-kinds\fP, and
|
673
|
+
\fB\-\-regex\-<LANG>\fP options.
|
674
|
+
|
675
|
+
.TP 5
|
676
|
+
\fB\-\-options\fP=\fIfile\fP
|
677
|
+
Read additional options from \fIfile\fP. The file should contain one option
|
678
|
+
per line. As a special case, if
|
679
|
+
\fB\-\-options\fP=\fINONE\fP is specified as the first option on the command
|
680
|
+
line, it will disable the automatic reading of any configuration options from
|
681
|
+
either a file or the environment (see \fBFILES\fP).
|
682
|
+
|
683
|
+
.TP 5
|
684
|
+
\fB\-\-recurse\fP[=\fIyes\fP|\fIno\fP]
|
685
|
+
Recurse into directories encountered in the list of supplied files. If the
|
686
|
+
list of supplied files is empty and no file list is specified with the
|
687
|
+
\fB\-L\fP option, then the current directory (i.e. ".") is assumed. Symbolic
|
688
|
+
links are followed. If you don't like these behaviors, either explicitly
|
689
|
+
specify the files or pipe the output of \fBfind\fP(1) into \fBctags \-L\-\fP
|
690
|
+
instead. \fBNote:\fP This option is not supported on all platforms at present.
|
691
|
+
It is available if the output of the \fB\-\-help\fP option includes this option.
|
692
|
+
See, also, the \fB\-\-exclude\fP to limit recursion.
|
693
|
+
|
694
|
+
.TP 5
|
695
|
+
\fB\-\-regex\-<LANG>\fP=\fI/regexp/replacement/[kind\-spec/][flags]\fP
|
696
|
+
The \fI/regexp/replacement/\fP pair define a regular expression replacement
|
697
|
+
pattern, similar in style to \fBsed\fP substitution commands, with which to
|
698
|
+
generate tags from source files mapped to the named language, \fB<LANG>\fP,
|
699
|
+
(case-insensitive; either a built-in or user-defined language). The regular
|
700
|
+
expression, \fIregexp\fP, defines an extended regular expression (roughly that
|
701
|
+
used by \fBegrep\fP(1)), which is used to locate a single source line
|
702
|
+
containing a tag and may specify tab characters using \\t. When a matching
|
703
|
+
line is found, a tag will be generated for the name defined by
|
704
|
+
\fIreplacement\fP, which generally will contain the special back-references
|
705
|
+
\\1 through \\9 to refer to matching sub-expression groups within
|
706
|
+
\fIregexp\fP. The '/' separator characters shown in the parameter to the
|
707
|
+
option can actually be replaced by any character. Note that whichever
|
708
|
+
separator character is used will have to be escaped with a backslash ('\\')
|
709
|
+
character wherever it is used in the parameter as something other than a
|
710
|
+
separator. The regular expression defined by this option is added to the
|
711
|
+
current list of regular expressions for the specified language unless the
|
712
|
+
parameter is omitted, in which case the current list is cleared.
|
713
|
+
|
714
|
+
Unless modified by \fIflags\fP, \fIregexp\fP is interpreted as a Posix
|
715
|
+
extended regular expression. The \fIreplacement\fP should expand for all
|
716
|
+
matching lines to a non-empty string of characters, or a warning message will
|
717
|
+
be reported. An optional kind specifier for tags matching \fIregexp\fP may
|
718
|
+
follow \fIreplacement\fP, which will determine what kind of tag is reported in
|
719
|
+
the "kind" extension field (see \fBTAG FILE FORMAT\fP, below). The full form
|
720
|
+
of \fIkind\-spec\fP is in the form of a single letter, a comma, a name (without
|
721
|
+
spaces), a comma, a description, followed by a separator, which specify
|
722
|
+
the short and long forms of the kind value and its textual description
|
723
|
+
(displayed using \fB\-\-list\-kinds\fP). Either the kind name and/or the
|
724
|
+
description may be omitted. If \fIkind\-spec\fP is omitted, it defaults to
|
725
|
+
"\fIr,regex\fP". Finally, \fIflags\fP are one or more single-letter characters
|
726
|
+
having the following effect upon the interpretation of \fIregexp\fP:
|
727
|
+
|
728
|
+
.PP
|
729
|
+
.RS 8
|
730
|
+
.TP 4
|
731
|
+
.I b
|
732
|
+
The pattern is interpreted as a Posix basic regular expression.
|
733
|
+
.TP 4
|
734
|
+
.I e
|
735
|
+
The pattern is interpreted as a Posix extended regular expression (default).
|
736
|
+
.TP 4
|
737
|
+
.I i
|
738
|
+
The regular expression is to be applied in a case-insensitive manner.
|
739
|
+
.RE
|
740
|
+
|
741
|
+
.RS 5
|
742
|
+
Note that this option is available only if \fBctags\fP was compiled with
|
743
|
+
support for regular expressions, which depends upon your platform. You can
|
744
|
+
determine if support for regular expressions is compiled in by examining the
|
745
|
+
output of the \fB\-\-version\fP option, which will include "+regex" in the
|
746
|
+
compiled feature list.
|
747
|
+
|
748
|
+
For more information on the regular expressions used by \fBctags\fP, see
|
749
|
+
either the \fBregex(5,7)\fP man page, or the GNU info documentation for regex
|
750
|
+
(e.g. "info regex").
|
751
|
+
.RE
|
752
|
+
|
753
|
+
.TP 5
|
754
|
+
\fB\-\-sort\fP[=\fIyes\fP|\fIno\fP|\fIfoldcase\fP]
|
755
|
+
Indicates whether the tag file should be sorted on the tag name (default is
|
756
|
+
\fIyes\fP). Note that the original \fBvi\fP(1) required sorted tags.
|
757
|
+
The \fIfoldcase\fP value specifies case insensitive (or case-folded) sorting.
|
758
|
+
Fast binary searches of tag files sorted with case-folding will require
|
759
|
+
special support from tools using tag files, such as that found in the ctags
|
760
|
+
readtags library, or Vim version 6.2 or higher (using "set ignorecase"). This
|
761
|
+
option must appear before the first file name. [Ignored in etags mode]
|
762
|
+
|
763
|
+
.TP 5
|
764
|
+
\fB\-\-tag\-relative\fP[=\fIyes\fP|\fIno\fP]
|
765
|
+
Indicates that the file paths recorded in the tag file should be relative to
|
766
|
+
the directory containing the tag file, rather than relative to the current
|
767
|
+
directory, unless the files supplied on the command line are specified with
|
768
|
+
absolute paths. This option must appear before the first file name. The
|
769
|
+
default is \fIyes\fP when running in etags mode (see the \fB\-e\fP
|
770
|
+
option), \fIno\fP otherwise.
|
771
|
+
|
772
|
+
.TP 5
|
773
|
+
\fB\-\-totals\fP[=\fIyes\fP|\fIno\fP]
|
774
|
+
Prints statistics about the source files read and the tag file written during
|
775
|
+
the current invocation of \fBctags\fP. This option is off by default.
|
776
|
+
This option must appear before the first file name.
|
777
|
+
|
778
|
+
.TP 5
|
779
|
+
\fB\-\-verbose\fP[=\fIyes\fP|\fIno\fP]
|
780
|
+
Enable verbose mode. This prints out information on option processing and a
|
781
|
+
brief message describing what action is being taken for each file considered
|
782
|
+
by \fBctags\fP. Normally, \fBctags\fP does not read command line arguments
|
783
|
+
until after options are read from the configuration files (see \fBFILES\fP,
|
784
|
+
below) and the \fBCTAGS\fP environment variable. However, if this option is
|
785
|
+
the first argument on the command line, it will take effect before any options
|
786
|
+
are read from these sources. The default is \fIno\fP.
|
787
|
+
|
788
|
+
.TP 5
|
789
|
+
\fB\-\-version\fP
|
790
|
+
Prints a version identifier for \fBctags\fP to standard output, and then
|
791
|
+
exits. This is guaranteed to always contain the string "Exuberant Ctags".
|
792
|
+
|
793
|
+
|
794
|
+
.SH "OPERATIONAL DETAILS"
|
795
|
+
|
796
|
+
As \fBctags\fP considers each file name in turn, it tries to determine the
|
797
|
+
language of the file by applying the following three tests in order: if the
|
798
|
+
file extension has been mapped to a language, if the file name matches a shell
|
799
|
+
pattern mapped to a language, and finally if the file is executable and its
|
800
|
+
first line specifies an interpreter using the Unix-style "#!" specification
|
801
|
+
(if supported on the platform). If a language was identified, the file is
|
802
|
+
opened and then the appropriate language parser is called to operate on the
|
803
|
+
currently open file. The parser parses through the file and adds an entry to
|
804
|
+
the tag file for each language object it is written to handle. See
|
805
|
+
\fBTAG FILE FORMAT\fP, below, for details on these entries.
|
806
|
+
|
807
|
+
This implementation of \fBctags\fP imposes no formatting requirements on C
|
808
|
+
code as do legacy implementations. Older implementations of ctags tended to
|
809
|
+
rely upon certain formatting assumptions in order to help it resolve coding
|
810
|
+
dilemmas caused by preprocessor conditionals.
|
811
|
+
|
812
|
+
In general, \fBctags\fP tries to be smart about conditional preprocessor
|
813
|
+
directives. If a preprocessor conditional is encountered within a statement
|
814
|
+
which defines a tag, \fBctags\fP follows only the first branch of that
|
815
|
+
conditional (except in the special case of "#if 0", in which case it follows
|
816
|
+
only the last branch). The reason for this is that failing to pursue only one
|
817
|
+
branch can result in ambiguous syntax, as in the following example:
|
818
|
+
|
819
|
+
.RS
|
820
|
+
#ifdef TWO_ALTERNATIVES
|
821
|
+
.br
|
822
|
+
struct {
|
823
|
+
.br
|
824
|
+
#else
|
825
|
+
.br
|
826
|
+
union {
|
827
|
+
.br
|
828
|
+
#endif
|
829
|
+
.RS 4
|
830
|
+
short a;
|
831
|
+
.br
|
832
|
+
long b;
|
833
|
+
.RE
|
834
|
+
}
|
835
|
+
.RE
|
836
|
+
|
837
|
+
Both branches cannot be followed, or braces become unbalanced and \fBctags\fP
|
838
|
+
would be unable to make sense of the syntax.
|
839
|
+
|
840
|
+
If the application of this heuristic fails to properly parse a file,
|
841
|
+
generally due to complicated and inconsistent pairing within the conditionals,
|
842
|
+
\fBctags\fP will retry the file using a different heuristic which does not
|
843
|
+
selectively follow conditional preprocessor branches, but instead falls back
|
844
|
+
to relying upon a closing brace ("}") in column 1 as indicating the end of a
|
845
|
+
block once any brace imbalance results from following a #if conditional branch.
|
846
|
+
|
847
|
+
\fBCtags\fP will also try to specially handle arguments lists enclosed in
|
848
|
+
double sets of parentheses in order to accept the following conditional
|
849
|
+
construct:
|
850
|
+
|
851
|
+
.RS
|
852
|
+
extern void foo __ARGS((int one, char two));
|
853
|
+
.RE
|
854
|
+
|
855
|
+
Any name immediately preceding the "((" will be automatically ignored and
|
856
|
+
the previous name will be used.
|
857
|
+
|
858
|
+
C++ operator definitions are specially handled. In order for consistency with
|
859
|
+
all types of operators (overloaded and conversion), the operator name in the
|
860
|
+
tag file will always be preceded by the string "operator " (i.e. even if the
|
861
|
+
actual operator definition was written as "operator<<").
|
862
|
+
|
863
|
+
After creating or appending to the tag file, it is sorted by the tag name,
|
864
|
+
removing identical tag lines.
|
865
|
+
|
866
|
+
|
867
|
+
.SH "TAG FILE FORMAT"
|
868
|
+
|
869
|
+
When not running in etags mode, each entry in the tag file consists of a
|
870
|
+
separate line, each looking like this in the most general case:
|
871
|
+
|
872
|
+
.RS 1
|
873
|
+
tag_name<TAB>file_name<TAB>ex_cmd;"<TAB>extension_fields
|
874
|
+
.RE
|
875
|
+
|
876
|
+
The fields and separators of these lines are specified as follows:
|
877
|
+
|
878
|
+
.PD 0
|
879
|
+
.RS 4
|
880
|
+
.TP 4
|
881
|
+
1.
|
882
|
+
tag name
|
883
|
+
.TP 4
|
884
|
+
2.
|
885
|
+
single tab character
|
886
|
+
.TP 4
|
887
|
+
3.
|
888
|
+
name of the file in which the object associated with the tag is located
|
889
|
+
.TP 4
|
890
|
+
4.
|
891
|
+
single tab character
|
892
|
+
.TP 4
|
893
|
+
5.
|
894
|
+
EX command used to locate the tag within the file; generally a search pattern
|
895
|
+
(either /pattern/ or ?pattern?) or line number (see \fB\-\-excmd\fP). Tag file
|
896
|
+
format 2 (see \fB\-\-format\fP) extends this EX command under certain
|
897
|
+
circumstances to include a set of extension fields (described below) embedded
|
898
|
+
in an EX comment immediately appended to the EX command, which leaves it
|
899
|
+
backward-compatible with original \fBvi\fP(1) implementations.
|
900
|
+
.RE
|
901
|
+
.PD 1
|
902
|
+
|
903
|
+
A few special tags are written into the tag file for internal purposes. These
|
904
|
+
tags are composed in such a way that they always sort to the top of the file.
|
905
|
+
Therefore, the first two characters of these tags are used a magic number to
|
906
|
+
detect a tag file for purposes of determining whether a valid tag file is
|
907
|
+
being overwritten rather than a source file.
|
908
|
+
|
909
|
+
Note that the name of each source file will be recorded in the tag file
|
910
|
+
exactly as it appears on the command line. Therefore, if the path you
|
911
|
+
specified on the command line was relative to the current directory, then it
|
912
|
+
will be recorded in that same manner in the tag file. See, however, the
|
913
|
+
\fB\-\-tag\-relative\fP option for how this behavior can be modified.
|
914
|
+
|
915
|
+
Extension fields are tab-separated key-value pairs appended to the end of the
|
916
|
+
EX command as a comment, as described above. These key value pairs appear in
|
917
|
+
the general form "\fIkey\fP:\fIvalue\fP". Their presence in the lines of the
|
918
|
+
tag file are controlled by the \fB\-\-fields\fP option. The possible keys and
|
919
|
+
the meaning of their values are as follows:
|
920
|
+
|
921
|
+
.TP 12
|
922
|
+
.I access
|
923
|
+
Indicates the visibility of this class member, where \fIvalue\fP is specific
|
924
|
+
to the language.
|
925
|
+
|
926
|
+
.TP 12
|
927
|
+
.I file
|
928
|
+
Indicates that the tag has file-limited visibility. This key has no
|
929
|
+
corresponding value.
|
930
|
+
|
931
|
+
.TP 12
|
932
|
+
.I kind
|
933
|
+
Indicates the type, or kind, of tag. Its value is either one of the
|
934
|
+
corresponding one-letter flags described under the various
|
935
|
+
\fB\-\-<LANG>\-kinds\fP options above, or a full name. It is permitted (and is,
|
936
|
+
in fact, the default) for the key portion of this field to be omitted. The
|
937
|
+
optional behaviors are controlled with the \fB\-\-fields\fP option.
|
938
|
+
|
939
|
+
.TP 12
|
940
|
+
.I implementation
|
941
|
+
When present, this indicates a limited implementation (abstract vs. concrete)
|
942
|
+
of a routine or class, where \fIvalue\fP is specific to the language
|
943
|
+
("virtual" or "pure virtual" for C++; "abstract" for Java).
|
944
|
+
|
945
|
+
.TP 12
|
946
|
+
.I inherits
|
947
|
+
When present, \fIvalue\fP. is a comma-separated list of classes from which
|
948
|
+
this class is derived (i.e. inherits from).
|
949
|
+
|
950
|
+
.TP 12
|
951
|
+
.I signature
|
952
|
+
When present, \fIvalue\fP is a language-dependent representation of the
|
953
|
+
signature of a routine. A routine signature in its complete form specifies the
|
954
|
+
return type of a routine and its formal argument list. This extension field is
|
955
|
+
presently supported only for C-based languages and does not include the return
|
956
|
+
type.
|
957
|
+
|
958
|
+
.PP
|
959
|
+
In addition, information on the scope of the tag definition may be available,
|
960
|
+
with the key portion equal to some language-dependent construct name and its
|
961
|
+
value the name declared for that construct in the program. This scope entry
|
962
|
+
indicates the scope in which the tag was found. For example, a tag generated
|
963
|
+
for a C structure member would have a scope looking like "struct:myStruct".
|
964
|
+
|
965
|
+
|
966
|
+
.SH "HOW TO USE WITH VI"
|
967
|
+
Vi will, by default, expect a tag file by the name "tags" in the current
|
968
|
+
directory. Once the tag file is built, the following commands exercise the tag
|
969
|
+
indexing feature:
|
970
|
+
.TP 12
|
971
|
+
.B vi \-t tag
|
972
|
+
Start vi and position the cursor at the file and line where "tag" is defined.
|
973
|
+
.TP 12
|
974
|
+
.B :ta tag
|
975
|
+
Find a tag.
|
976
|
+
.TP 12
|
977
|
+
.B Ctrl-]
|
978
|
+
Find the tag under the cursor.
|
979
|
+
.TP 12
|
980
|
+
.B Ctrl-T
|
981
|
+
Return to previous location before jump to tag (not widely implemented).
|
982
|
+
|
983
|
+
|
984
|
+
.SH "HOW TO USE WITH GNU EMACS"
|
985
|
+
Emacs will, by default, expect a tag file by the name "TAGS" in the current
|
986
|
+
directory. Once the tag file is built, the following commands exercise the
|
987
|
+
tag indexing feature:
|
988
|
+
.TP 10
|
989
|
+
.B "M-x visit\-tags\-table <RET> FILE <RET>"
|
990
|
+
Select the tag file, "FILE", to use.
|
991
|
+
.TP 10
|
992
|
+
.B "M-. [TAG] <RET>"
|
993
|
+
Find the first definition of TAG. The default tag is the identifier under the
|
994
|
+
cursor.
|
995
|
+
.TP 10
|
996
|
+
.B "M-*"
|
997
|
+
Pop back to where you previously invoked "M-.".
|
998
|
+
.TP 10
|
999
|
+
.B "C-u M-."
|
1000
|
+
Find the next definition for the last tag.
|
1001
|
+
|
1002
|
+
.PP
|
1003
|
+
For more commands, see the \fITags\fP topic in the Emacs info document.
|
1004
|
+
|
1005
|
+
|
1006
|
+
.SH "HOW TO USE WITH NEDIT"
|
1007
|
+
NEdit version 5.1 and later can handle the new extended tag file format (see
|
1008
|
+
\fB\-\-format\fP). To make NEdit use the tag file, select "File\->Load Tags
|
1009
|
+
File". To jump to the definition for a tag, highlight the word, the press
|
1010
|
+
Ctrl-D. NEdit 5.1 can can read multiple tag files from different directories.
|
1011
|
+
Setting the X resource nedit.tagFile to the name of a tag file instructs NEdit
|
1012
|
+
to automatically load that tag file at startup time.
|
1013
|
+
|
1014
|
+
|
1015
|
+
.SH "CAVEATS"
|
1016
|
+
Because \fBctags\fP is neither a preprocessor nor a compiler, use of
|
1017
|
+
preprocessor macros can fool \fBctags\fP into either missing tags or
|
1018
|
+
improperly generating inappropriate tags. Although \fBctags\fP has been
|
1019
|
+
designed to handle certain common cases, this is the single biggest cause of
|
1020
|
+
reported problems. In particular, the use of preprocessor constructs which
|
1021
|
+
alter the textual syntax of C can fool \fBctags\fP. You can work around many
|
1022
|
+
such problems by using the \fB\-I\fP option.
|
1023
|
+
|
1024
|
+
Note that since \fBctags\fP generates patterns for locating tags (see
|
1025
|
+
the \fB\-\-excmd\fP option), it is entirely possible that the wrong line may be
|
1026
|
+
found by your editor if there exists another source line which is identical to
|
1027
|
+
the line containing the tag. The following example demonstrates this condition:
|
1028
|
+
|
1029
|
+
.RS
|
1030
|
+
int variable;
|
1031
|
+
|
1032
|
+
/* ... */
|
1033
|
+
.br
|
1034
|
+
void foo(variable)
|
1035
|
+
.br
|
1036
|
+
int variable;
|
1037
|
+
.br
|
1038
|
+
{
|
1039
|
+
.RS 4
|
1040
|
+
/* ... */
|
1041
|
+
.RE
|
1042
|
+
}
|
1043
|
+
.RE
|
1044
|
+
|
1045
|
+
Depending upon which editor you use and where in the code you happen to be, it
|
1046
|
+
is possible that the search pattern may locate the local parameter declaration
|
1047
|
+
in foo() before it finds the actual global variable definition, since the
|
1048
|
+
lines (and therefore their search patterns are identical). This can be avoided
|
1049
|
+
by use of the \fB\-\-excmd\fP=\fIn\fP option.
|
1050
|
+
|
1051
|
+
|
1052
|
+
.SH "BUGS"
|
1053
|
+
\fBCtags\fP has more options than \fBls\fP(1).
|
1054
|
+
|
1055
|
+
When parsing a C++ member function definition (e.g. "className::function"),
|
1056
|
+
\fBctags\fP cannot determine whether the scope specifier is a class name or a
|
1057
|
+
namespace specifier and always lists it as a class name in the scope portion
|
1058
|
+
of the extension fields. Also, if a C++ function is defined outside of the
|
1059
|
+
class declaration (the usual case), the access specification (i.e. public,
|
1060
|
+
protected, or private) and implementation information (e.g. virtual, pure
|
1061
|
+
virtual) contained in the function declaration are not known when the tag is
|
1062
|
+
generated for the function definition. It will, however be available for
|
1063
|
+
prototypes (e.g \fB\-\-c++\-kinds\fP=\fI+p\fP).
|
1064
|
+
|
1065
|
+
No qualified tags are generated for language objects inherited into a class.
|
1066
|
+
|
1067
|
+
|
1068
|
+
.SH "ENVIRONMENT VARIABLES"
|
1069
|
+
|
1070
|
+
.TP 8
|
1071
|
+
.B CTAGS
|
1072
|
+
If this environment variable exists, it will be expected to contain a set of
|
1073
|
+
default options which are read when \fBctags\fP starts, after the
|
1074
|
+
configuration files listed in \fBFILES\fP, below, are read, but before any
|
1075
|
+
command line options are read. Options appearing on the command line will
|
1076
|
+
override options specified in this variable. Only options will be read from
|
1077
|
+
this variable. Note that all white space in this variable is considered a
|
1078
|
+
separator, making it impossible to pass an option parameter containing an
|
1079
|
+
embedded space. If this is a problem, use a configuration file instead.
|
1080
|
+
|
1081
|
+
.TP 8
|
1082
|
+
.B ETAGS
|
1083
|
+
Similar to the \fBCTAGS\fP variable above, this variable, if found, will be
|
1084
|
+
read when \fBetags\fP starts. If this variable is not found, \fBetags\fP will
|
1085
|
+
try to use \fBCTAGS\fP instead.
|
1086
|
+
|
1087
|
+
.TP 8
|
1088
|
+
.B TMPDIR
|
1089
|
+
On Unix-like hosts where mkstemp() is available, the value of this variable
|
1090
|
+
specifies the directory in which to place temporary files. This can be useful
|
1091
|
+
if the size of a temporary file becomes too large to fit on the partition
|
1092
|
+
holding the default temporary directory defined at compilation time.
|
1093
|
+
\fBctags\fP creates temporary files only if either (1) an emacs-style tag file
|
1094
|
+
is being generated, (2) the tag file is being sent to standard output, or (3)
|
1095
|
+
the program was compiled to use an internal sort algorithm to sort the tag
|
1096
|
+
files instead of the the sort utility of the operating system. If the sort
|
1097
|
+
utility of the operating system is being used, it will generally observe this
|
1098
|
+
variable also. Note that if \fBctags\fP is setuid, the value of TMPDIR will be
|
1099
|
+
ignored.
|
1100
|
+
|
1101
|
+
|
1102
|
+
.SH "FILES"
|
1103
|
+
.PD 0
|
1104
|
+
.I /ctags.cnf (on MSDOS, MSWindows only)
|
1105
|
+
.br
|
1106
|
+
.I /etc/ctags.conf
|
1107
|
+
.br
|
1108
|
+
.I /usr/local/etc/ctags.conf
|
1109
|
+
.br
|
1110
|
+
.I $HOME/.ctags
|
1111
|
+
.br
|
1112
|
+
.I $HOME/ctags.cnf (on MSDOS, MSWindows only)
|
1113
|
+
.br
|
1114
|
+
.I .ctags
|
1115
|
+
.br
|
1116
|
+
.I ctags.cnf (on MSDOS, MSWindows only)
|
1117
|
+
.IP
|
1118
|
+
If any of these configuration files exist, each will be expected to contain a
|
1119
|
+
set of default options which are read in the order listed when \fBctags\fP
|
1120
|
+
starts, but before the \fBCTAGS\fP environment variable is read or any command
|
1121
|
+
line options are read. This makes it possible to set up site-wide, personal
|
1122
|
+
or project-level defaults. It is possible to compile \fBctags\fP to read an
|
1123
|
+
additional configuration file before any of those shown above, which will be
|
1124
|
+
indicated if the output produced by the \fB\-\-version\fP option lists the
|
1125
|
+
"custom-conf" feature. Options appearing in the \fBCTAGS\fP environment
|
1126
|
+
variable or on the command line will override options specified in these
|
1127
|
+
files. Only options will be read from these files. Note that the option files
|
1128
|
+
are read in line-oriented mode in which spaces are significant (since
|
1129
|
+
shell quoting is not possible). Each line of the file is read as one command
|
1130
|
+
line parameter (as if it were quoted with single quotes). Therefore, use new
|
1131
|
+
lines to indicate separate command-line arguments.
|
1132
|
+
.PD 1
|
1133
|
+
|
1134
|
+
.TP
|
1135
|
+
.I tags
|
1136
|
+
The default tag file created by \fBctags\fP.
|
1137
|
+
.TP
|
1138
|
+
.I TAGS
|
1139
|
+
The default tag file created by \fBetags\fP.
|
1140
|
+
|
1141
|
+
.SH "SEE ALSO"
|
1142
|
+
The official Exuberant Ctags web site at:
|
1143
|
+
|
1144
|
+
.RS
|
1145
|
+
http://ctags.sourceforge.net
|
1146
|
+
.RE
|
1147
|
+
|
1148
|
+
Also \fBex\fP(1), \fBvi\fP(1), \fBelvis\fP, or, better yet, \fBvim\fP, the
|
1149
|
+
official editor of \fBctags\fP. For more information on \fBvim\fP, see the VIM
|
1150
|
+
Pages web site at:
|
1151
|
+
|
1152
|
+
.RS
|
1153
|
+
http://www.vim.org/
|
1154
|
+
.RE
|
1155
|
+
|
1156
|
+
|
1157
|
+
.SH "AUTHOR"
|
1158
|
+
Darren Hiebert <dhiebert at users.sourceforge.net>
|
1159
|
+
.br
|
1160
|
+
http://DarrenHiebert.com/
|
1161
|
+
|
1162
|
+
|
1163
|
+
.SH "MOTIVATION"
|
1164
|
+
"Think ye at all times of rendering some service to every member of the human
|
1165
|
+
race."
|
1166
|
+
|
1167
|
+
"All effort and exertion put forth by man from the fullness of his heart is
|
1168
|
+
worship, if it is prompted by the highest motives and the will to do service
|
1169
|
+
to humanity."
|
1170
|
+
|
1171
|
+
.RS
|
1172
|
+
\-\- From the Baha'i Writings
|
1173
|
+
.RE
|
1174
|
+
|
1175
|
+
|
1176
|
+
.SH "CREDITS"
|
1177
|
+
This version of \fBctags\fP was originally derived from and inspired by the
|
1178
|
+
ctags program by Steve Kirkendall <kirkenda@cs.pdx.edu> that comes with the
|
1179
|
+
Elvis vi clone (though virtually none of the original code remains).
|
1180
|
+
|
1181
|
+
Credit is also due Bram Moolenaar <Bram@vim.org>, the author of \fBvim\fP, who
|
1182
|
+
has devoted so much of his time and energy both to developing the editor as a
|
1183
|
+
service to others, and to helping the orphans of Uganda.
|
1184
|
+
|
1185
|
+
The section entitled "HOW TO USE WITH GNU EMACS" was shamelessly stolen from
|
1186
|
+
the info page for GNU \fBetags\fP.
|