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,2087 @@
|
|
1
|
+
<!-- Creator : groff version 1.19.2 -->
|
2
|
+
<!-- CreationDate: Thu Jul 9 17:03:58 2009 -->
|
3
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/html4/loose.dtd">
|
5
|
+
<html>
|
6
|
+
<head>
|
7
|
+
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
9
|
+
<meta name="Content-Style" content="text/css">
|
10
|
+
<style type="text/css">
|
11
|
+
p { margin-top: 0; margin-bottom: 0; }
|
12
|
+
pre { margin-top: 0; margin-bottom: 0; }
|
13
|
+
table { margin-top: 0; margin-bottom: 0; }
|
14
|
+
</style>
|
15
|
+
<title>CTAGS</title>
|
16
|
+
|
17
|
+
</head>
|
18
|
+
<body>
|
19
|
+
|
20
|
+
<h1 align=center>CTAGS</h1>
|
21
|
+
|
22
|
+
<a href="#NAME">NAME</a><br>
|
23
|
+
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
24
|
+
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
25
|
+
<a href="#SOURCE FILES">SOURCE FILES</a><br>
|
26
|
+
<a href="#OPTIONS">OPTIONS</a><br>
|
27
|
+
<a href="#OPERATIONAL DETAILS">OPERATIONAL DETAILS</a><br>
|
28
|
+
<a href="#TAG FILE FORMAT">TAG FILE FORMAT</a><br>
|
29
|
+
<a href="#HOW TO USE WITH VI">HOW TO USE WITH VI</a><br>
|
30
|
+
<a href="#HOW TO USE WITH GNU EMACS">HOW TO USE WITH GNU EMACS</a><br>
|
31
|
+
<a href="#HOW TO USE WITH NEDIT">HOW TO USE WITH NEDIT</a><br>
|
32
|
+
<a href="#CAVEATS">CAVEATS</a><br>
|
33
|
+
<a href="#BUGS">BUGS</a><br>
|
34
|
+
<a href="#ENVIRONMENT VARIABLES">ENVIRONMENT VARIABLES</a><br>
|
35
|
+
<a href="#FILES">FILES</a><br>
|
36
|
+
<a href="#SEE ALSO">SEE ALSO</a><br>
|
37
|
+
<a href="#AUTHOR">AUTHOR</a><br>
|
38
|
+
<a href="#MOTIVATION">MOTIVATION</a><br>
|
39
|
+
<a href="#CREDITS">CREDITS</a><br>
|
40
|
+
|
41
|
+
<hr>
|
42
|
+
|
43
|
+
|
44
|
+
<a name="NAME"></a>
|
45
|
+
<h2>NAME</h2>
|
46
|
+
|
47
|
+
|
48
|
+
<p style="margin-left:11%; margin-top: 1em">ctags −
|
49
|
+
Generate tag files for source code</p>
|
50
|
+
|
51
|
+
<a name="SYNOPSIS"></a>
|
52
|
+
<h2>SYNOPSIS</h2>
|
53
|
+
|
54
|
+
|
55
|
+
<p style="margin-left:11%; margin-top: 1em"><b>ctags</b>
|
56
|
+
[<b>options</b>] [<i>file(s)</i>] <b><br>
|
57
|
+
etags</b> [<b>options</b>] [<i>file(s)</i>]</p>
|
58
|
+
|
59
|
+
<a name="DESCRIPTION"></a>
|
60
|
+
<h2>DESCRIPTION</h2>
|
61
|
+
|
62
|
+
|
63
|
+
<p style="margin-left:11%; margin-top: 1em">The
|
64
|
+
<b>ctags</b> and <b>etags</b> programs (hereinafter
|
65
|
+
collectively referred to as <b>ctags</b>, except where
|
66
|
+
distinguished) generate an index (or "tag") file
|
67
|
+
for a variety of language objects found in <i>file(s)</i>.
|
68
|
+
This tag file allows these items to be quickly and easily
|
69
|
+
located by a text editor or other utility. A "tag"
|
70
|
+
signifies a language object for which an index entry is
|
71
|
+
available (or, alternatively, the index entry created for
|
72
|
+
that object).</p>
|
73
|
+
|
74
|
+
<p style="margin-left:11%; margin-top: 1em">Alternatively,
|
75
|
+
<b>ctags</b> can generate a cross reference file which
|
76
|
+
lists, in human readable form, information about the various
|
77
|
+
source objects found in a set of language files.</p>
|
78
|
+
|
79
|
+
<p style="margin-left:11%; margin-top: 1em">Tag index files
|
80
|
+
are supported by numerous editors, which allow the user to
|
81
|
+
locate the object associated with a name appearing in a
|
82
|
+
source file and jump to the file and line which defines the
|
83
|
+
name. Those known about at the time of this release are:</p>
|
84
|
+
|
85
|
+
<p style="margin-left:17%; margin-top: 1em"><b>Vi</b>(1)
|
86
|
+
and its derivatives (e.g. Elvis, Vim, Vile, Lemmy),
|
87
|
+
<b>CRiSP</b>, <b>Emacs</b>, <b>FTE</b> (Folding Text
|
88
|
+
Editor), <b>JED</b>, <b>jEdit</b>, <b>Mined</b>,
|
89
|
+
<b>NEdit</b> (Nirvana Edit), <b>TSE</b> (The SemWare
|
90
|
+
Editor), <b>UltraEdit</b>, <b>WorkSpace</b>, <b>X2</b>,
|
91
|
+
<b>Zeus</b></p>
|
92
|
+
|
93
|
+
<p style="margin-left:11%; margin-top: 1em"><b>Ctags</b> is
|
94
|
+
capable of generating different kinds of tags for each of
|
95
|
+
many different languages. For a complete list of supported
|
96
|
+
languages, the names by which they are recognized, and the
|
97
|
+
kinds of tags which are generated for each, see the
|
98
|
+
<b>−−list−languages</b> and
|
99
|
+
<b>−−list−kinds</b> options.</p>
|
100
|
+
|
101
|
+
<a name="SOURCE FILES"></a>
|
102
|
+
<h2>SOURCE FILES</h2>
|
103
|
+
|
104
|
+
|
105
|
+
<p style="margin-left:11%; margin-top: 1em">Unless the
|
106
|
+
<b>−−language−force</b> option is
|
107
|
+
specified, the language of each source file is automatically
|
108
|
+
selected based upon a mapping of file names to languages.
|
109
|
+
The mappings in effect for each language may be display
|
110
|
+
using the <b>−−list−maps</b> option and
|
111
|
+
may be changed using the <b>−−langmap</b>
|
112
|
+
option. On platforms which support it, if the name of a file
|
113
|
+
is not mapped to a language and the file is executable, the
|
114
|
+
first line of the file is checked to see if the file is a
|
115
|
+
"#!" script for a recognized language.</p>
|
116
|
+
|
117
|
+
<p style="margin-left:11%; margin-top: 1em">By default, all
|
118
|
+
other files names are ignored. This permits running
|
119
|
+
<b>ctags</b> on all files in either a single directory (e.g.
|
120
|
+
"ctags *"), or on all files in an entire source
|
121
|
+
directory tree (e.g. "ctags −R"), since only
|
122
|
+
those files whose names are mapped to languages will be
|
123
|
+
scanned.</p>
|
124
|
+
|
125
|
+
<p style="margin-left:11%; margin-top: 1em">[The reason
|
126
|
+
that .h extensions are mapped to C++ files rather than C
|
127
|
+
files is because it is common to use .h extensions in C++,
|
128
|
+
and no harm results in treating them as C++ files.]</p>
|
129
|
+
|
130
|
+
<a name="OPTIONS"></a>
|
131
|
+
<h2>OPTIONS</h2>
|
132
|
+
|
133
|
+
|
134
|
+
<p style="margin-left:11%; margin-top: 1em">Despite the
|
135
|
+
wealth of available options, defaults are set so that
|
136
|
+
<b>ctags</b> is most commonly executed without any options
|
137
|
+
(e.g. "ctags *", or "ctags −R"),
|
138
|
+
which will create a tag file in the current directory for
|
139
|
+
all recognized source files. The options described below are
|
140
|
+
provided merely to allow custom tailoring to meet special
|
141
|
+
needs.</p>
|
142
|
+
|
143
|
+
<p style="margin-left:11%; margin-top: 1em">Note that
|
144
|
+
spaces separating the single-letter options from their
|
145
|
+
parameters are optional.</p>
|
146
|
+
|
147
|
+
<p style="margin-left:11%; margin-top: 1em">Note also that
|
148
|
+
the boolean parameters to the long form options (those
|
149
|
+
beginning with "−−" and that take a
|
150
|
+
"<i>[=yes</i>|<i>no]</i>" parameter) may be
|
151
|
+
omitted, in which case "<b>=</b><i>yes</i>" is
|
152
|
+
implied. (e.g. <b>−−sort</b> is equivalent to
|
153
|
+
<b>−−sort</b>=<i>yes</i>). Note further that
|
154
|
+
"=<i>1</i>" and "=<i>on</i>" are
|
155
|
+
considered synonyms for "=<i>yes</i>", and that
|
156
|
+
"=<i>0</i>" and "=<i>off</i>" are
|
157
|
+
considered synonyms for "=<i>no</i>".</p>
|
158
|
+
|
159
|
+
<p style="margin-left:11%; margin-top: 1em">Some options
|
160
|
+
are either ignored or useful only when used while running in
|
161
|
+
etags mode (see <b>−e</b> option). Such options will
|
162
|
+
be noted.</p>
|
163
|
+
|
164
|
+
<p style="margin-left:11%; margin-top: 1em">Most options
|
165
|
+
may appear anywhere on the command line, affecting only
|
166
|
+
those files which follow the option. A few options, however,
|
167
|
+
must appear before the first file name and will be noted as
|
168
|
+
such.</p>
|
169
|
+
|
170
|
+
<p style="margin-left:11%; margin-top: 1em">Options taking
|
171
|
+
language names will accept those names in either upper or
|
172
|
+
lower case. See the
|
173
|
+
<b>−−list−languages</b> option for a
|
174
|
+
complete list of the built-in language names.</p>
|
175
|
+
|
176
|
+
<table width="100%" border=0 rules="none" frame="void"
|
177
|
+
cellspacing="0" cellpadding="0">
|
178
|
+
<tr valign="top" align="left">
|
179
|
+
<td width="11%"></td>
|
180
|
+
<td width="3%">
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
<p style="margin-top: 1em" valign="top"><b>−a</b></p> </td>
|
185
|
+
<td width="4%"></td>
|
186
|
+
<td width="82%">
|
187
|
+
|
188
|
+
|
189
|
+
<p style="margin-top: 1em" valign="top">Equivalent to
|
190
|
+
<b>−−append</b>.</p> </td>
|
191
|
+
<tr valign="top" align="left">
|
192
|
+
<td width="11%"></td>
|
193
|
+
<td width="3%">
|
194
|
+
|
195
|
+
|
196
|
+
<p><b>−B</b></p></td>
|
197
|
+
<td width="4%"></td>
|
198
|
+
<td width="82%">
|
199
|
+
|
200
|
+
|
201
|
+
<p>Use backward searching patterns (e.g. ?pattern?).
|
202
|
+
[Ignored in etags mode]</p></td>
|
203
|
+
<tr valign="top" align="left">
|
204
|
+
<td width="11%"></td>
|
205
|
+
<td width="3%">
|
206
|
+
|
207
|
+
|
208
|
+
<p><b>−e</b></p></td>
|
209
|
+
<td width="4%"></td>
|
210
|
+
<td width="82%">
|
211
|
+
|
212
|
+
|
213
|
+
<p>Enable etags mode, which will create a tag file for use
|
214
|
+
with the Emacs editor. Alternatively, if <b>ctags</b> is
|
215
|
+
invoked by a name containing the string "etags"
|
216
|
+
(either by renaming, or creating a link to, the executable),
|
217
|
+
etags mode will be enabled. This option must appear before
|
218
|
+
the first file name.</p></td>
|
219
|
+
</table>
|
220
|
+
|
221
|
+
<p style="margin-left:11%;"><b>−f</b>
|
222
|
+
<i>tagfile</i></p>
|
223
|
+
|
224
|
+
<p style="margin-left:18%;">Use the name specified by
|
225
|
+
<i>tagfile</i> for the tag file (default is
|
226
|
+
"tags", or "TAGS" when running in etags
|
227
|
+
mode). If <i>tagfile</i> is specified as
|
228
|
+
"−", then the tag file is written to
|
229
|
+
standard output instead. <b>Ctags</b> will stubbornly refuse
|
230
|
+
to take orders if <i>tagfile</i> exists and its first line
|
231
|
+
contains something other than a valid tags line. This will
|
232
|
+
save your neck if you mistakenly type "ctags −f
|
233
|
+
*.c", which would otherwise overwrite your first C file
|
234
|
+
with the tags generated by the rest! It will also refuse to
|
235
|
+
accept a multi-character file name which begins with a
|
236
|
+
’−’ (dash) character, since this most
|
237
|
+
likely means that you left out the tag file name and this
|
238
|
+
option tried to grab the next option as the file name. If
|
239
|
+
you really want to name your output tag file
|
240
|
+
"−ugly", specify it as
|
241
|
+
"./−ugly". This option must appear before
|
242
|
+
the first file name. If this option is specified more than
|
243
|
+
once, only the last will apply.</p>
|
244
|
+
|
245
|
+
<table width="100%" border=0 rules="none" frame="void"
|
246
|
+
cellspacing="0" cellpadding="0">
|
247
|
+
<tr valign="top" align="left">
|
248
|
+
<td width="11%"></td>
|
249
|
+
<td width="3%">
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
<p style="margin-top: 1em" valign="top"><b>−F</b></p> </td>
|
254
|
+
<td width="4%"></td>
|
255
|
+
<td width="82%">
|
256
|
+
|
257
|
+
|
258
|
+
<p style="margin-top: 1em" valign="top">Use forward
|
259
|
+
searching patterns (e.g. /pattern/) (default). [Ignored in
|
260
|
+
etags mode]</p></td>
|
261
|
+
</table>
|
262
|
+
|
263
|
+
<p style="margin-left:11%;"><b>−h</b> <i>list</i></p>
|
264
|
+
|
265
|
+
<p style="margin-left:18%;">Specifies a list of file
|
266
|
+
extensions, separated by periods, which are to be
|
267
|
+
interpreted as include (or header) files. To indicate files
|
268
|
+
having no extension, use a period not followed by a
|
269
|
+
non-period character (e.g. ".", "..x",
|
270
|
+
".x."). This option only affects how the scoping
|
271
|
+
of a particular kinds of tags is interpreted (i.e. whether
|
272
|
+
or not they are considered as globally visible or visible
|
273
|
+
only within the file in which they are defined); it does not
|
274
|
+
map the extension to any particular language. Any tag which
|
275
|
+
is located in a non-include file and cannot be seen (e.g.
|
276
|
+
linked to) from another file is considered to have
|
277
|
+
file-limited (e.g. static) scope. No kind of tag appearing
|
278
|
+
in an include file will be considered to have file-limited
|
279
|
+
scope. If the first character in the list is a plus sign,
|
280
|
+
then the extensions in the list will be appended to the
|
281
|
+
current list; otherwise, the list will replace the current
|
282
|
+
list. See, also, the <b>−−file−scope</b>
|
283
|
+
option. The default list is
|
284
|
+
".h.H.hh.hpp.hxx.h++.inc.def". To restore the
|
285
|
+
default list, specify <b>−h</b> <i>default</i>. Note
|
286
|
+
that if an extension supplied to this option is not already
|
287
|
+
mapped to a particular language (see <b>SOURCE FILES</b>,
|
288
|
+
above), you will also need to use either the
|
289
|
+
<b>−−langmap</b> or
|
290
|
+
<b>−−language−force</b> option.</p>
|
291
|
+
|
292
|
+
<p style="margin-left:11%;"><b>−I</b>
|
293
|
+
<i>identifier−list</i></p>
|
294
|
+
|
295
|
+
<p style="margin-left:18%;">Specifies a list of identifiers
|
296
|
+
which are to be specially handled while parsing C and C++
|
297
|
+
source files. This option is specifically provided to handle
|
298
|
+
special cases arising through the use of preprocessor
|
299
|
+
macros. When the identifiers listed are simple identifiers,
|
300
|
+
these identifiers will be ignored during parsing of the
|
301
|
+
source files. If an identifier is suffixed with a
|
302
|
+
’+’ character, <b>ctags</b> will also ignore any
|
303
|
+
parenthesis-enclosed argument list which may immediately
|
304
|
+
follow the identifier in the source files. If two
|
305
|
+
identifiers are separated with the ’=’
|
306
|
+
character, the first identifiers is replaced by the second
|
307
|
+
identifiers for parsing purposes. The list of identifiers
|
308
|
+
may be supplied directly on the command line or read in from
|
309
|
+
a separate file. If the first character of
|
310
|
+
<i>identifier−list</i> is ’@’,
|
311
|
+
’.’ or a pathname separator (’/’ or
|
312
|
+
’\’), or the first two characters specify a
|
313
|
+
drive letter (e.g. "C:"), the parameter
|
314
|
+
<i>identifier−list</i> will be interpreted as a
|
315
|
+
filename from which to read a list of identifiers, one per
|
316
|
+
input line. Otherwise, <i>identifier−list</i> is a
|
317
|
+
list of identifiers (or identifier pairs) to be specially
|
318
|
+
handled, each delimited by a either a comma or by white
|
319
|
+
space (in which case the list should be quoted to keep the
|
320
|
+
entire list as one command line argument). Multiple
|
321
|
+
<b>−I</b> options may be supplied. To clear the list
|
322
|
+
of ignore identifiers, supply a single dash
|
323
|
+
("−") for <i>identifier−list</i>.</p>
|
324
|
+
|
325
|
+
<p style="margin-left:18%; margin-top: 1em">This feature is
|
326
|
+
useful when preprocessor macros are used in such a way that
|
327
|
+
they cause syntactic confusion due to their presence.
|
328
|
+
Indeed, this is the best way of working around a number of
|
329
|
+
problems caused by the presence of syntax-busting macros in
|
330
|
+
source files (see <b>CAVEATS</b>, below). Some examples will
|
331
|
+
illustrate this point.</p>
|
332
|
+
|
333
|
+
<p style="margin-left:23%; margin-top: 1em">int foo
|
334
|
+
ARGDECL4(void *, ptr, long int, nbytes)</p>
|
335
|
+
|
336
|
+
<p style="margin-left:18%; margin-top: 1em">In the above
|
337
|
+
example, the macro "ARGDECL4" would be mistakenly
|
338
|
+
interpreted to be the name of the function instead of the
|
339
|
+
correct name of "foo". Specifying <b>−I</b>
|
340
|
+
<i>ARGDECL4</i> results in the correct behavior.</p>
|
341
|
+
|
342
|
+
<p style="margin-left:23%; margin-top: 1em">/* creates an
|
343
|
+
RCS version string in module */ <br>
|
344
|
+
MODULE_VERSION("$Revision: 690 $")</p>
|
345
|
+
|
346
|
+
<p style="margin-left:18%; margin-top: 1em">In the above
|
347
|
+
example the macro invocation looks too much like a function
|
348
|
+
definition because it is not followed by a semicolon
|
349
|
+
(indeed, it could even be followed by a global variable
|
350
|
+
definition that would look much like a K&R style
|
351
|
+
function parameter declaration). In fact, this seeming
|
352
|
+
function definition could possibly even cause the rest of
|
353
|
+
the file to be skipped over while trying to complete the
|
354
|
+
definition. Specifying <b>−I</b>
|
355
|
+
<i>MODULE_VERSION+</i> would avoid such a problem.</p>
|
356
|
+
|
357
|
+
<p style="margin-left:23%; margin-top: 1em">CLASS Example {
|
358
|
+
<br>
|
359
|
+
// your content here <br>
|
360
|
+
};</p>
|
361
|
+
|
362
|
+
<p style="margin-left:18%; margin-top: 1em">The example
|
363
|
+
above uses "CLASS" as a preprocessor macro which
|
364
|
+
expands to something different for each platform. For
|
365
|
+
instance CLASS may be defined as "class
|
366
|
+
__declspec(dllexport)" on Win32 platforms and simply
|
367
|
+
"class" on UNIX. Normally, the absence of the C++
|
368
|
+
keyword "class" would cause the source file to be
|
369
|
+
incorrectly parsed. Correct behavior can be restored by
|
370
|
+
specifying <b>−I</b> <i>CLASS=class</i>.</p>
|
371
|
+
|
372
|
+
<p style="margin-left:11%;"><b>−L</b> <i>file</i></p>
|
373
|
+
|
374
|
+
<p style="margin-left:18%;">Read from <i>file</i> a list of
|
375
|
+
file names for which tags should be generated. If
|
376
|
+
<i>file</i> is specified as "−", then file
|
377
|
+
names are read from standard input. File names read using
|
378
|
+
this option are processed following file names appearing on
|
379
|
+
the command line. Options are also accepted in this input.
|
380
|
+
If this option is specified more than once, only the last
|
381
|
+
will apply. <b>Note:</b> <i>file</i> is read in
|
382
|
+
line-oriented mode, where a new line is the only delimiter
|
383
|
+
and non-trailing white space is considered significant, in
|
384
|
+
order that file names containing spaces may be supplied
|
385
|
+
(however, trailing white space is stripped from lines); this
|
386
|
+
can affect how options are parsed if included in the
|
387
|
+
input.</p>
|
388
|
+
|
389
|
+
<table width="100%" border=0 rules="none" frame="void"
|
390
|
+
cellspacing="0" cellpadding="0">
|
391
|
+
<tr valign="top" align="left">
|
392
|
+
<td width="11%"></td>
|
393
|
+
<td width="3%">
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
<p style="margin-top: 1em" valign="top"><b>−n</b></p> </td>
|
398
|
+
<td width="4%"></td>
|
399
|
+
<td width="47%">
|
400
|
+
|
401
|
+
|
402
|
+
<p style="margin-top: 1em" valign="top">Equivalent to
|
403
|
+
<b>−−excmd</b>=<i>number</i>.</p> </td>
|
404
|
+
<td width="35%">
|
405
|
+
</td>
|
406
|
+
<tr valign="top" align="left">
|
407
|
+
<td width="11%"></td>
|
408
|
+
<td width="3%">
|
409
|
+
|
410
|
+
|
411
|
+
<p><b>−N</b></p></td>
|
412
|
+
<td width="4%"></td>
|
413
|
+
<td width="47%">
|
414
|
+
|
415
|
+
|
416
|
+
<p>Equivalent to
|
417
|
+
<b>−−excmd</b>=<i>pattern</i>.</p> </td>
|
418
|
+
<td width="35%">
|
419
|
+
</td>
|
420
|
+
</table>
|
421
|
+
|
422
|
+
<p style="margin-left:11%;"><b>−o</b>
|
423
|
+
<i>tagfile</i></p>
|
424
|
+
|
425
|
+
<p style="margin-left:18%;">Equivalent to <b>−f</b>
|
426
|
+
<i>tagfile</i>.</p>
|
427
|
+
|
428
|
+
<table width="100%" border=0 rules="none" frame="void"
|
429
|
+
cellspacing="0" cellpadding="0">
|
430
|
+
<tr valign="top" align="left">
|
431
|
+
<td width="11%"></td>
|
432
|
+
<td width="3%">
|
433
|
+
|
434
|
+
|
435
|
+
|
436
|
+
<p style="margin-top: 1em" valign="top"><b>−R</b></p> </td>
|
437
|
+
<td width="4%"></td>
|
438
|
+
<td width="82%">
|
439
|
+
|
440
|
+
|
441
|
+
<p style="margin-top: 1em" valign="top">Equivalent to
|
442
|
+
<b>−−recurse</b>.</p> </td>
|
443
|
+
<tr valign="top" align="left">
|
444
|
+
<td width="11%"></td>
|
445
|
+
<td width="3%">
|
446
|
+
|
447
|
+
|
448
|
+
<p><b>−u</b></p></td>
|
449
|
+
<td width="4%"></td>
|
450
|
+
<td width="82%">
|
451
|
+
|
452
|
+
|
453
|
+
<p>Equivalent to <b>−−sort</b>=<i>no</i> (i.e.
|
454
|
+
"unsorted").</p> </td>
|
455
|
+
<tr valign="top" align="left">
|
456
|
+
<td width="11%"></td>
|
457
|
+
<td width="3%">
|
458
|
+
|
459
|
+
|
460
|
+
<p><b>−V</b></p></td>
|
461
|
+
<td width="4%"></td>
|
462
|
+
<td width="82%">
|
463
|
+
|
464
|
+
|
465
|
+
<p>Equivalent to <b>−−verbose</b>.</p></td>
|
466
|
+
<tr valign="top" align="left">
|
467
|
+
<td width="11%"></td>
|
468
|
+
<td width="3%">
|
469
|
+
|
470
|
+
|
471
|
+
<p><b>−w</b></p></td>
|
472
|
+
<td width="4%"></td>
|
473
|
+
<td width="82%">
|
474
|
+
|
475
|
+
|
476
|
+
<p>This option is silently ignored for
|
477
|
+
backward-compatibility with the ctags of SVR4 Unix.</p></td>
|
478
|
+
<tr valign="top" align="left">
|
479
|
+
<td width="11%"></td>
|
480
|
+
<td width="3%">
|
481
|
+
|
482
|
+
|
483
|
+
<p><b>−x</b></p></td>
|
484
|
+
<td width="4%"></td>
|
485
|
+
<td width="82%">
|
486
|
+
|
487
|
+
|
488
|
+
<p>Print a tabular, human-readable cross reference (xref)
|
489
|
+
file to standard output instead of generating a tag file.
|
490
|
+
The information contained in the output includes: the tag
|
491
|
+
name; the kind of tag; the line number, file name, and
|
492
|
+
source line (with extra white space condensed) of the file
|
493
|
+
which defines the tag. No tag file is written and all
|
494
|
+
options affecting tag file output will be ignored. Example
|
495
|
+
applications for this feature are generating a listing of
|
496
|
+
all functions located in a source file (e.g. <b>ctags
|
497
|
+
−x −−c−kinds</b>=<i>f file</i>), or
|
498
|
+
generating a list of all externally visible global variables
|
499
|
+
located in a source file (e.g. <b>ctags −x
|
500
|
+
−−c−kinds</b>=<i>v</i>
|
501
|
+
<b>−−file−scope</b>=<i>no file</i>). This
|
502
|
+
option must appear before the first file name.</p></td>
|
503
|
+
</table>
|
504
|
+
|
505
|
+
|
506
|
+
<p style="margin-left:11%;"><b>−−append</b>[=<i>yes</i>|<i>no</i>]</p>
|
507
|
+
|
508
|
+
<p style="margin-left:18%;">Indicates whether tags
|
509
|
+
generated from the specified files should be appended to
|
510
|
+
those already present in the tag file or should replace
|
511
|
+
them. This option is off by default. This option must appear
|
512
|
+
before the first file name.</p>
|
513
|
+
|
514
|
+
|
515
|
+
<p style="margin-left:11%;"><b>−−etags−include</b>=<i>file</i></p>
|
516
|
+
|
517
|
+
<p style="margin-left:18%;">Include a reference to
|
518
|
+
<i>file</i> in the tag file. This option may be specified as
|
519
|
+
many times as desired. This supports Emacs’ capability
|
520
|
+
to use a tag file which "includes" other tag
|
521
|
+
files. [Available only in etags mode]</p>
|
522
|
+
|
523
|
+
|
524
|
+
<p style="margin-left:11%;"><b>−−exclude</b>=[<i>pattern</i>]</p>
|
525
|
+
|
526
|
+
<p style="margin-left:18%;">Add <i>pattern</i> to a list of
|
527
|
+
excluded files and directories. This option may be specified
|
528
|
+
as many times as desired. For each file name considered by
|
529
|
+
<b>ctags</b>, each <i>pattern</i> specified using this
|
530
|
+
option will be compared against both the complete path (e.g.
|
531
|
+
some/path/base.ext) and the base name (e.g. base.ext) of the
|
532
|
+
file, thus allowing patterns which match a given file name
|
533
|
+
irrespective of its path, or match only a specific path. If
|
534
|
+
appropriate support is available from the runtime library of
|
535
|
+
your C compiler, then <i>pattern</i> may contain the usual
|
536
|
+
shell wildcards (not regular expressions) common on Unix (be
|
537
|
+
sure to quote the option parameter to protect the wildcards
|
538
|
+
from being expanded by the shell before being passed to
|
539
|
+
<b>ctags</b>; also be aware that wildcards can match the
|
540
|
+
slash character, ’/’). You can determine if
|
541
|
+
shell wildcards are available on your platform by examining
|
542
|
+
the output of the <b>−−version</b> option, which
|
543
|
+
will include "+wildcards" in the compiled feature
|
544
|
+
list; otherwise, <i>pattern</i> is matched against file
|
545
|
+
names using a simple textual comparison.</p>
|
546
|
+
|
547
|
+
<p style="margin-left:18%; margin-top: 1em">If
|
548
|
+
<i>pattern</i> begins with the character ’@’,
|
549
|
+
then the rest of the string is interpreted as a file name
|
550
|
+
from which to read exclusion patterns, one per line. If
|
551
|
+
<i>pattern</i> is empty, the list of excluded patterns is
|
552
|
+
cleared. Note that at program startup, the default exclude
|
553
|
+
list contains "EIFGEN", "SCCS",
|
554
|
+
"RCS", and "CVS", which are names of
|
555
|
+
directories for which it is generally not desirable to
|
556
|
+
descend while processing the <b>−−recurse</b>
|
557
|
+
option.</p>
|
558
|
+
|
559
|
+
|
560
|
+
<p style="margin-left:11%;"><b>−−excmd</b>=<i>type</i></p>
|
561
|
+
|
562
|
+
<p style="margin-left:18%;">Determines the type of EX
|
563
|
+
command used to locate tags in the source file. [Ignored in
|
564
|
+
etags mode]</p>
|
565
|
+
|
566
|
+
<p style="margin-left:18%; margin-top: 1em">The valid
|
567
|
+
values for <i>type</i> (either the entire word or the first
|
568
|
+
letter is accepted) are:</p>
|
569
|
+
|
570
|
+
<table width="100%" border=0 rules="none" frame="void"
|
571
|
+
cellspacing="0" cellpadding="0">
|
572
|
+
<tr valign="top" align="left">
|
573
|
+
<td width="18%"></td>
|
574
|
+
<td width="10%">
|
575
|
+
|
576
|
+
|
577
|
+
<p style="margin-top: 1em" valign="top"><i>number</i></p></td>
|
578
|
+
<td width="4%"></td>
|
579
|
+
<td width="68%">
|
580
|
+
|
581
|
+
|
582
|
+
<p style="margin-top: 1em" valign="top">Use only line
|
583
|
+
numbers in the tag file for locating tags. This has four
|
584
|
+
advantages:</p> </td>
|
585
|
+
</table>
|
586
|
+
|
587
|
+
<table width="100%" border=0 rules="none" frame="void"
|
588
|
+
cellspacing="0" cellpadding="0">
|
589
|
+
<tr valign="top" align="left">
|
590
|
+
<td width="32%"></td>
|
591
|
+
<td width="3%">
|
592
|
+
|
593
|
+
|
594
|
+
<p valign="top">1.</p></td>
|
595
|
+
<td width="3%"></td>
|
596
|
+
<td width="62%">
|
597
|
+
|
598
|
+
|
599
|
+
<p valign="top">Significantly reduces the size of the
|
600
|
+
resulting tag file.</p></td>
|
601
|
+
<tr valign="top" align="left">
|
602
|
+
<td width="32%"></td>
|
603
|
+
<td width="3%">
|
604
|
+
|
605
|
+
|
606
|
+
<p valign="top">2.</p></td>
|
607
|
+
<td width="3%"></td>
|
608
|
+
<td width="62%">
|
609
|
+
|
610
|
+
|
611
|
+
<p valign="top">Eliminates failures to find tags because
|
612
|
+
the line defining the tag has changed, causing the pattern
|
613
|
+
match to fail (note that some editors, such as <b>vim</b>,
|
614
|
+
are able to recover in many such instances).</p></td>
|
615
|
+
<tr valign="top" align="left">
|
616
|
+
<td width="32%"></td>
|
617
|
+
<td width="3%">
|
618
|
+
|
619
|
+
|
620
|
+
<p valign="top">3.</p></td>
|
621
|
+
<td width="3%"></td>
|
622
|
+
<td width="62%">
|
623
|
+
|
624
|
+
|
625
|
+
<p valign="top">Eliminates finding identical matching, but
|
626
|
+
incorrect, source lines (see <b>BUGS</b>, below).</p></td>
|
627
|
+
<tr valign="top" align="left">
|
628
|
+
<td width="32%"></td>
|
629
|
+
<td width="3%">
|
630
|
+
|
631
|
+
|
632
|
+
<p valign="top">4.</p></td>
|
633
|
+
<td width="3%"></td>
|
634
|
+
<td width="62%">
|
635
|
+
|
636
|
+
|
637
|
+
<p valign="top">Retains separate entries in the tag file
|
638
|
+
for lines which are identical in content. In <i>pattern</i>
|
639
|
+
mode, duplicate entries are dropped because the search
|
640
|
+
patterns they generate are identical, making the duplicate
|
641
|
+
entries useless.</p></td>
|
642
|
+
</table>
|
643
|
+
|
644
|
+
<p style="margin-left:32%; margin-top: 1em">However, this
|
645
|
+
option has one significant drawback: changes to the source
|
646
|
+
files can cause the line numbers recorded in the tag file to
|
647
|
+
no longer correspond to the lines in the source file,
|
648
|
+
causing jumps to some tags to miss the target definition by
|
649
|
+
one or more lines. Basically, this option is best used when
|
650
|
+
the source code to which it is applied is not subject to
|
651
|
+
change. Selecting this option type causes the following
|
652
|
+
options to be ignored: <b>−BF</b>.</p>
|
653
|
+
|
654
|
+
<table width="100%" border=0 rules="none" frame="void"
|
655
|
+
cellspacing="0" cellpadding="0">
|
656
|
+
<tr valign="top" align="left">
|
657
|
+
<td width="18%"></td>
|
658
|
+
<td width="11%">
|
659
|
+
|
660
|
+
|
661
|
+
<p style="margin-top: 1em" valign="top"><i>pattern</i></p></td>
|
662
|
+
<td width="3%"></td>
|
663
|
+
<td width="68%">
|
664
|
+
|
665
|
+
|
666
|
+
<p style="margin-top: 1em" valign="top">Use only search
|
667
|
+
patterns for all tags, rather than the line numbers usually
|
668
|
+
used for macro definitions. This has the advantage of not
|
669
|
+
referencing obsolete line numbers when lines have been added
|
670
|
+
or removed since the tag file was generated.</p></td>
|
671
|
+
<tr valign="top" align="left">
|
672
|
+
<td width="18%"></td>
|
673
|
+
<td width="11%">
|
674
|
+
|
675
|
+
|
676
|
+
<p><i>mixed</i></p></td>
|
677
|
+
<td width="3%"></td>
|
678
|
+
<td width="68%">
|
679
|
+
|
680
|
+
|
681
|
+
<p>In this mode, patterns are generally used with a few
|
682
|
+
exceptions. For C, line numbers are used for macro
|
683
|
+
definition tags. This was the default format generated by
|
684
|
+
the original <b>ctags</b> and is, therefore, retained as the
|
685
|
+
default for this option. For Fortran, line numbers are used
|
686
|
+
for common blocks because their corresponding source lines
|
687
|
+
are generally identical, making pattern searches useless for
|
688
|
+
finding all matches.</p></td>
|
689
|
+
</table>
|
690
|
+
|
691
|
+
|
692
|
+
<p style="margin-left:11%;"><b>−−extra</b>=<i>[+|−]flags</i></p>
|
693
|
+
|
694
|
+
<p style="margin-left:18%;">Specifies whether to include
|
695
|
+
extra tag entries for certain kinds of information. The
|
696
|
+
parameter <i>flags</i> is a set of one-letter flags, each
|
697
|
+
representing one kind of extra tag entry to include in the
|
698
|
+
tag file. If <i>flags</i> is preceded by by either the
|
699
|
+
’+’ or ’−’ character, the
|
700
|
+
effect of each flag is added to, or removed from, those
|
701
|
+
currently enabled; otherwise the flags replace any current
|
702
|
+
settings. The meaning of each flag is as follows:</p>
|
703
|
+
|
704
|
+
<table width="100%" border=0 rules="none" frame="void"
|
705
|
+
cellspacing="0" cellpadding="0">
|
706
|
+
<tr valign="top" align="left">
|
707
|
+
<td width="23%"></td>
|
708
|
+
<td width="2%">
|
709
|
+
|
710
|
+
|
711
|
+
<p style="margin-top: 1em" valign="top"><i>f</i></p></td>
|
712
|
+
<td width="4%"></td>
|
713
|
+
<td width="71%">
|
714
|
+
|
715
|
+
|
716
|
+
<p style="margin-top: 1em" valign="top">Include an entry
|
717
|
+
for the base file name of every source file (e.g.
|
718
|
+
"example.c"), which addresses the first line of
|
719
|
+
the file.</p></td>
|
720
|
+
<tr valign="top" align="left">
|
721
|
+
<td width="23%"></td>
|
722
|
+
<td width="2%">
|
723
|
+
|
724
|
+
|
725
|
+
<p style="margin-top: 1em" valign="top"><i>q</i></p></td>
|
726
|
+
<td width="4%"></td>
|
727
|
+
<td width="71%">
|
728
|
+
|
729
|
+
|
730
|
+
<p style="margin-top: 1em" valign="top">Include an extra
|
731
|
+
class-qualified tag entry for each tag which is a member of
|
732
|
+
a class (for languages for which this information is
|
733
|
+
extracted; currently C++, Eiffel, and Java). The actual form
|
734
|
+
of the qualified tag depends upon the language from which
|
735
|
+
the tag was derived (using a form that is most natural for
|
736
|
+
how qualified calls are specified in the language). For C++,
|
737
|
+
it is in the form "class::member"; for Eiffel and
|
738
|
+
Java, it is in the form "class.member". This may
|
739
|
+
allow easier location of a specific tags when multiple
|
740
|
+
occurrences of a tag name occur in the tag file. Note,
|
741
|
+
however, that this could potentially more than double the
|
742
|
+
size of the tag file.</p></td>
|
743
|
+
</table>
|
744
|
+
|
745
|
+
|
746
|
+
<p style="margin-left:11%;"><b>−−fields</b>=<i>[+|−]flags</i></p>
|
747
|
+
|
748
|
+
<p style="margin-left:18%;">Specifies the available
|
749
|
+
extension fields which are to be included in the entries of
|
750
|
+
the tag file (see <b>TAG FILE FORMAT</b>, below, for more
|
751
|
+
information). The parameter <i>flags</i> is a set of
|
752
|
+
one-letter flags, each representing one type of extension
|
753
|
+
field to include, with the following meanings (disabled by
|
754
|
+
default unless indicated):</p>
|
755
|
+
|
756
|
+
<table width="100%" border=0 rules="none" frame="void"
|
757
|
+
cellspacing="0" cellpadding="0">
|
758
|
+
<tr valign="top" align="left">
|
759
|
+
<td width="23%"></td>
|
760
|
+
<td width="2%">
|
761
|
+
|
762
|
+
|
763
|
+
<p style="margin-top: 1em" valign="top"><i>a</i></p></td>
|
764
|
+
<td width="4%"></td>
|
765
|
+
<td width="71%">
|
766
|
+
|
767
|
+
|
768
|
+
<p style="margin-top: 1em" valign="top">Access (or export)
|
769
|
+
of class members</p></td>
|
770
|
+
<tr valign="top" align="left">
|
771
|
+
<td width="23%"></td>
|
772
|
+
<td width="2%">
|
773
|
+
|
774
|
+
|
775
|
+
<p valign="top"><i>f</i></p></td>
|
776
|
+
<td width="4%"></td>
|
777
|
+
<td width="71%">
|
778
|
+
|
779
|
+
|
780
|
+
<p valign="top">File-restricted scoping [enabled]</p></td>
|
781
|
+
<tr valign="top" align="left">
|
782
|
+
<td width="23%"></td>
|
783
|
+
<td width="2%">
|
784
|
+
|
785
|
+
|
786
|
+
<p valign="top"><i>i</i></p></td>
|
787
|
+
<td width="4%"></td>
|
788
|
+
<td width="71%">
|
789
|
+
|
790
|
+
|
791
|
+
<p valign="top">Inheritance information</p></td>
|
792
|
+
<tr valign="top" align="left">
|
793
|
+
<td width="23%"></td>
|
794
|
+
<td width="2%">
|
795
|
+
|
796
|
+
|
797
|
+
<p valign="top"><i>k</i></p></td>
|
798
|
+
<td width="4%"></td>
|
799
|
+
<td width="71%">
|
800
|
+
|
801
|
+
|
802
|
+
<p valign="top">Kind of tag as a single letter
|
803
|
+
[enabled]</p> </td>
|
804
|
+
<tr valign="top" align="left">
|
805
|
+
<td width="23%"></td>
|
806
|
+
<td width="2%">
|
807
|
+
|
808
|
+
|
809
|
+
<p valign="top"><i>K</i></p></td>
|
810
|
+
<td width="4%"></td>
|
811
|
+
<td width="71%">
|
812
|
+
|
813
|
+
|
814
|
+
<p valign="top">Kind of tag as full name</p></td>
|
815
|
+
<tr valign="top" align="left">
|
816
|
+
<td width="23%"></td>
|
817
|
+
<td width="2%">
|
818
|
+
|
819
|
+
|
820
|
+
<p valign="top"><i>l</i></p></td>
|
821
|
+
<td width="4%"></td>
|
822
|
+
<td width="71%">
|
823
|
+
|
824
|
+
|
825
|
+
<p valign="top">Language of source file containing tag</p></td>
|
826
|
+
<tr valign="top" align="left">
|
827
|
+
<td width="23%"></td>
|
828
|
+
<td width="2%">
|
829
|
+
|
830
|
+
|
831
|
+
<p valign="top"><i>m</i></p></td>
|
832
|
+
<td width="4%"></td>
|
833
|
+
<td width="71%">
|
834
|
+
|
835
|
+
|
836
|
+
<p valign="top">Implementation information</p></td>
|
837
|
+
<tr valign="top" align="left">
|
838
|
+
<td width="23%"></td>
|
839
|
+
<td width="2%">
|
840
|
+
|
841
|
+
|
842
|
+
<p valign="top"><i>n</i></p></td>
|
843
|
+
<td width="4%"></td>
|
844
|
+
<td width="71%">
|
845
|
+
|
846
|
+
|
847
|
+
<p valign="top">Line number of tag definition</p></td>
|
848
|
+
<tr valign="top" align="left">
|
849
|
+
<td width="23%"></td>
|
850
|
+
<td width="2%">
|
851
|
+
|
852
|
+
|
853
|
+
<p valign="top"><i>s</i></p></td>
|
854
|
+
<td width="4%"></td>
|
855
|
+
<td width="71%">
|
856
|
+
|
857
|
+
|
858
|
+
<p valign="top">Scope of tag definition [enabled]</p></td>
|
859
|
+
<tr valign="top" align="left">
|
860
|
+
<td width="23%"></td>
|
861
|
+
<td width="2%">
|
862
|
+
|
863
|
+
|
864
|
+
<p valign="top"><i>S</i></p></td>
|
865
|
+
<td width="4%"></td>
|
866
|
+
<td width="71%">
|
867
|
+
|
868
|
+
|
869
|
+
<p valign="top">Signature of routine (e.g. prototype or
|
870
|
+
parameter list)</p></td>
|
871
|
+
<tr valign="top" align="left">
|
872
|
+
<td width="23%"></td>
|
873
|
+
<td width="2%">
|
874
|
+
|
875
|
+
|
876
|
+
<p valign="top"><i>z</i></p></td>
|
877
|
+
<td width="4%"></td>
|
878
|
+
<td width="71%">
|
879
|
+
|
880
|
+
|
881
|
+
<p valign="top">Include the "kind:" key in kind
|
882
|
+
field</p> </td>
|
883
|
+
<tr valign="top" align="left">
|
884
|
+
<td width="23%"></td>
|
885
|
+
<td width="2%">
|
886
|
+
|
887
|
+
|
888
|
+
<p valign="top"><i>t</i></p></td>
|
889
|
+
<td width="4%"></td>
|
890
|
+
<td width="71%">
|
891
|
+
|
892
|
+
|
893
|
+
<p valign="top">Type and name of a variable or typedef as
|
894
|
+
"typeref:" field [enabled]</p></td>
|
895
|
+
</table>
|
896
|
+
|
897
|
+
<p style="margin-left:18%; margin-top: 1em">Each letter or
|
898
|
+
group of letters may be preceded by either ’+’
|
899
|
+
to add it to the default set, or ’−’ to
|
900
|
+
exclude it. In the absence of any preceding ’+’
|
901
|
+
or ’−’ sign, only those kinds explicitly
|
902
|
+
listed in <i>flags</i> will be included in the output (i.e.
|
903
|
+
overriding the default set). This option is ignored if the
|
904
|
+
option <b>−−format</b>=<i>1</i> has been
|
905
|
+
specified. The default value of this option is
|
906
|
+
<i>fkst</i>.</p>
|
907
|
+
|
908
|
+
|
909
|
+
<p style="margin-left:11%;"><b>−−file−scope</b>[=<i>yes</i>|<i>no</i>]</p>
|
910
|
+
|
911
|
+
<p style="margin-left:18%;">Indicates whether tags scoped
|
912
|
+
only for a single file (i.e. tags which cannot be seen
|
913
|
+
outside of the file in which they are defined, such as
|
914
|
+
"static" tags) should be included in the output.
|
915
|
+
See, also, the <b>−h</b> option. This option is
|
916
|
+
enabled by default.</p>
|
917
|
+
|
918
|
+
|
919
|
+
<p style="margin-left:11%;"><b>−−filter</b>[=<i>yes</i>|<i>no</i>]</p>
|
920
|
+
|
921
|
+
<p style="margin-left:18%;">Causes <b>ctags</b> to behave
|
922
|
+
as a filter, reading source file names from standard input
|
923
|
+
and printing their tags to standard output on a file-by-file
|
924
|
+
basis. If <b>−−sorted</b> is enabled, tags are
|
925
|
+
sorted only within the source file in which they are
|
926
|
+
defined. File names are read from standard input in
|
927
|
+
line-oriented input mode (see note for <b>−L</b>
|
928
|
+
option) and only after file names listed on the command line
|
929
|
+
or from any file supplied using the <b>−L</b> option.
|
930
|
+
When this option is enabled, the options <b>−f</b>,
|
931
|
+
<b>−o</b>, and <b>−−totals</b> are
|
932
|
+
ignored. This option is quite esoteric and is disabled by
|
933
|
+
default. This option must appear before the first file
|
934
|
+
name.</p>
|
935
|
+
|
936
|
+
|
937
|
+
<p style="margin-left:11%;"><b>−−filter−terminator</b>=<i>string</i></p>
|
938
|
+
|
939
|
+
<p style="margin-left:18%;">Specifies a string to print to
|
940
|
+
standard output following the tags for each file name parsed
|
941
|
+
when the <b>−−filter</b> option is enabled. This
|
942
|
+
may permit an application reading the output of ctags to
|
943
|
+
determine when the output for each file is finished. Note
|
944
|
+
that if the file name read is a directory and
|
945
|
+
<b>−−recurse</b> is enabled, this string will be
|
946
|
+
printed only one once at the end of all tags found for by
|
947
|
+
descending the directory. This string will always be
|
948
|
+
separated from the last tag line for the file by its
|
949
|
+
terminating newline. This option is quite esoteric and is
|
950
|
+
empty by default. This option must appear before the first
|
951
|
+
file name.</p>
|
952
|
+
|
953
|
+
|
954
|
+
<p style="margin-left:11%;"><b>−−format</b>=<i>level</i></p>
|
955
|
+
|
956
|
+
<p style="margin-left:18%;">Change the format of the output
|
957
|
+
tag file. Currently the only valid values for <i>level</i>
|
958
|
+
are <i>1</i> or <i>2</i>. Level 1 specifies the original tag
|
959
|
+
file format and level 2 specifies a new extended format
|
960
|
+
containing extension fields (but in a manner which retains
|
961
|
+
backward-compatibility with original <b>vi</b>(1)
|
962
|
+
implementations). The default level is 2. This option must
|
963
|
+
appear before the first file name. [Ignored in etags
|
964
|
+
mode]</p>
|
965
|
+
|
966
|
+
<p style="margin-left:11%;"><b>−−help</b></p>
|
967
|
+
|
968
|
+
<p style="margin-left:18%;">Prints to standard output a
|
969
|
+
detailed usage description, and then exits.</p>
|
970
|
+
|
971
|
+
|
972
|
+
<p style="margin-left:11%;"><b>−−if0</b>[=<i>yes</i>|<i>no</i>]</p>
|
973
|
+
|
974
|
+
<p style="margin-left:18%;">Indicates a preference as to
|
975
|
+
whether code within an "#if 0" branch of a
|
976
|
+
preprocessor conditional should be examined for non-macro
|
977
|
+
tags (macro tags are always included). Because the intent of
|
978
|
+
this construct is to disable code, the default value of this
|
979
|
+
option is <i>no</i>. Note that this indicates a preference
|
980
|
+
only and does not guarantee skipping code within an
|
981
|
+
"#if 0" branch, since the fall-back algorithm used
|
982
|
+
to generate tags when preprocessor conditionals are too
|
983
|
+
complex follows all branches of a conditional. This option
|
984
|
+
is disabled by default.</p>
|
985
|
+
|
986
|
+
|
987
|
+
<p style="margin-left:11%;"><b>−−<LANG>−kinds</b>=<i>[+|−]kinds</i></p>
|
988
|
+
|
989
|
+
<p style="margin-left:18%;">Specifies a list of
|
990
|
+
language-specific kinds of tags (or kinds) to include in the
|
991
|
+
output file for a particular language, where
|
992
|
+
<b><LANG></b> is case-insensitive and is one of the
|
993
|
+
built-in language names (see the
|
994
|
+
<b>−−list−languages</b> option for a
|
995
|
+
complete list). The parameter <i>kinds</i> is a group of
|
996
|
+
one-letter flags designating kinds of tags (particular to
|
997
|
+
the language) to either include or exclude from the output.
|
998
|
+
The specific sets of flags recognized for each language,
|
999
|
+
their meanings and defaults may be list using the
|
1000
|
+
<b>−−list−kinds</b> option. Each letter or
|
1001
|
+
group of letters may be preceded by either ’+’
|
1002
|
+
to add it to, or ’−’ to remove it from,
|
1003
|
+
the default set. In the absence of any preceding
|
1004
|
+
’+’ or ’−’ sign, only those
|
1005
|
+
kinds explicitly listed in <i>kinds</i> will be included in
|
1006
|
+
the output (i.e. overriding the default for the specified
|
1007
|
+
language).</p>
|
1008
|
+
|
1009
|
+
<p style="margin-left:18%; margin-top: 1em">As an example
|
1010
|
+
for the C language, in order to add prototypes and external
|
1011
|
+
variable declarations to the default set of tag kinds, but
|
1012
|
+
exclude macros, use
|
1013
|
+
<b>−−c−kinds</b>=<i>+px−d</i>; to
|
1014
|
+
include only tags for functions, use
|
1015
|
+
<b>−−c−kinds</b>=<i>f</i>.</p>
|
1016
|
+
|
1017
|
+
|
1018
|
+
<p style="margin-left:11%;"><b>−−langdef</b>=<i>name</i></p>
|
1019
|
+
|
1020
|
+
<p style="margin-left:18%;">Defines a new user-defined
|
1021
|
+
language, <i>name</i>, to be parsed with regular
|
1022
|
+
expressions. Once defined, <i>name</i> may be used in other
|
1023
|
+
options taking language names. The typical use of this
|
1024
|
+
option is to first define the language, then map file names
|
1025
|
+
to it using <i>−−langmap</i>, then specify
|
1026
|
+
regular expressions using
|
1027
|
+
<i>−−regex−<LANG></i> to define how
|
1028
|
+
its tags are found.</p>
|
1029
|
+
|
1030
|
+
|
1031
|
+
<p style="margin-left:11%;"><b>−−langmap</b>=<i>map[,map[...]]</i></p>
|
1032
|
+
|
1033
|
+
<p style="margin-left:18%;">Controls how file names are
|
1034
|
+
mapped to languages (see the
|
1035
|
+
<b>−−list−maps</b> option). Each
|
1036
|
+
comma-separated <i>map</i> consists of the language name
|
1037
|
+
(either a built-in or user-defined language), a colon, and a
|
1038
|
+
list of file extensions and/or file name patterns. A file
|
1039
|
+
extension is specified by preceding the extension with a
|
1040
|
+
period (e.g. ".c"). A file name pattern is
|
1041
|
+
specified by enclosing the pattern in parentheses (e.g.
|
1042
|
+
"([Mm]akefile)"). If appropriate support is
|
1043
|
+
available from the runtime library of your C compiler, then
|
1044
|
+
the file name pattern may contain the usual shell wildcards
|
1045
|
+
common on Unix (be sure to quote the option parameter to
|
1046
|
+
protect the wildcards from being expanded by the shell
|
1047
|
+
before being passed to <b>ctags</b>). You can determine if
|
1048
|
+
shell wildcards are available on your platform by examining
|
1049
|
+
the output of the <b>−−version</b> option, which
|
1050
|
+
will include "+wildcards" in the compiled feature
|
1051
|
+
list; otherwise, the file name patterns are matched against
|
1052
|
+
file names using a simple textual comparison. When mapping a
|
1053
|
+
file extension, it will first be unmapped from any other
|
1054
|
+
languages.</p>
|
1055
|
+
|
1056
|
+
<p style="margin-left:18%; margin-top: 1em">If the first
|
1057
|
+
character in a map is a plus sign, then the extensions and
|
1058
|
+
file name patterns in that map will be appended to the
|
1059
|
+
current map for that language; otherwise, the map will
|
1060
|
+
replace the current map. For example, to specify that only
|
1061
|
+
files with extensions of .c and .x are to be treated as C
|
1062
|
+
language files, use
|
1063
|
+
"<b>−−langmap</b>=<i>c:.c.x</i>"; to
|
1064
|
+
also add files with extensions of .j as Java language files,
|
1065
|
+
specify
|
1066
|
+
"<b>−−langmap</b>=<i>c:.c.x,java:+.j</i>".
|
1067
|
+
To map makefiles (e.g. files named either
|
1068
|
+
"Makefile", "makefile", or having the
|
1069
|
+
extension ".mak") to a language called
|
1070
|
+
"make", specify
|
1071
|
+
"<b>−−langmap</b>=<i>make:([Mm]akefile).mak</i>".
|
1072
|
+
To map files having no extension, specify a period not
|
1073
|
+
followed by a non-period character (e.g. ".",
|
1074
|
+
"..x", ".x."). To clear the mapping for
|
1075
|
+
a particular language (thus inhibiting automatic generation
|
1076
|
+
of tags for that language), specify an empty extension list
|
1077
|
+
(e.g.
|
1078
|
+
"<b>−−langmap</b>=<i>fortran:</i>").
|
1079
|
+
To restore the default language mappings for all a
|
1080
|
+
particular language, supply the keyword "default"
|
1081
|
+
for the mapping. To specify restore the default language
|
1082
|
+
mappings for all languages, specify
|
1083
|
+
"<b>−−langmap</b>=<i>default</i>".
|
1084
|
+
Note that file extensions are tested before file name
|
1085
|
+
patterns when inferring the language of a file.</p>
|
1086
|
+
|
1087
|
+
|
1088
|
+
<p style="margin-left:11%;"><b>−−language−force</b>=<i>language</i></p>
|
1089
|
+
|
1090
|
+
<p style="margin-left:18%;">By default, <b>ctags</b>
|
1091
|
+
automatically selects the language of a source file,
|
1092
|
+
ignoring those files whose language cannot be determined
|
1093
|
+
(see <b>SOURCE FILES</b>, above). This option forces the
|
1094
|
+
specified <i>language</i> (case-insensitive; either built-in
|
1095
|
+
or user-defined) to be used for every supplied file instead
|
1096
|
+
of automatically selecting the language based upon its
|
1097
|
+
extension. In addition, the special value <i>auto</i>
|
1098
|
+
indicates that the language should be automatically selected
|
1099
|
+
(which effectively disables this option).</p>
|
1100
|
+
|
1101
|
+
|
1102
|
+
<p style="margin-left:11%;"><b>−−languages</b>=<i>[+|−]list</i></p>
|
1103
|
+
|
1104
|
+
<p style="margin-left:18%;">Specifies the languages for
|
1105
|
+
which tag generation is enabled, with <i>list</i> containing
|
1106
|
+
a comma-separated list of language names (case-insensitive;
|
1107
|
+
either built-in or user-defined). If the first language of
|
1108
|
+
<i>list</i> is not preceded by either a ’+’ or
|
1109
|
+
’−’, the current list will be cleared
|
1110
|
+
before adding or removing the languages in <i>list</i>.
|
1111
|
+
Until a ’−’ is encountered, each language
|
1112
|
+
in the list will be added to the current list. As either the
|
1113
|
+
’+’ or ’−’ is encountered in
|
1114
|
+
the list, the languages following it are added or removed
|
1115
|
+
from the current list, respectively. Thus, it becomes simple
|
1116
|
+
to replace the current list with a new one, or to add or
|
1117
|
+
remove languages from the current list. The actual list of
|
1118
|
+
files for which tags will be generated depends upon the
|
1119
|
+
language extension mapping in effect (see the
|
1120
|
+
<b>−−langmap</b> option). Note that all
|
1121
|
+
languages, including user-defined languages are enabled
|
1122
|
+
unless explicitly disabled using this option. Language names
|
1123
|
+
included in <i>list</i> may be any built-in language or one
|
1124
|
+
previously defined with <b>−−langdef</b>. The
|
1125
|
+
default is "all", which is also accepted as a
|
1126
|
+
valid argument. See the
|
1127
|
+
<b>−−list−languages</b> option for a
|
1128
|
+
complete list of the built-in language names.</p>
|
1129
|
+
|
1130
|
+
|
1131
|
+
<p style="margin-left:11%;"><b>−−license</b></p>
|
1132
|
+
|
1133
|
+
<p style="margin-left:18%;">Prints a summary of the
|
1134
|
+
software license to standard output, and then exits.</p>
|
1135
|
+
|
1136
|
+
|
1137
|
+
<p style="margin-left:11%;"><b>−−line−directives</b>[=<i>yes</i>|<i>no</i>]</p>
|
1138
|
+
|
1139
|
+
<p style="margin-left:18%;">Specifies whether
|
1140
|
+
"#line" directives should be recognized. These are
|
1141
|
+
present in the output of preprocessors and contain the line
|
1142
|
+
number, and possibly the file name, of the original source
|
1143
|
+
file(s) from which the preprocessor output file was
|
1144
|
+
generated. When enabled, this option will cause <b>ctags</b>
|
1145
|
+
to generate tag entries marked with the file names and line
|
1146
|
+
numbers of their locations original source file(s), instead
|
1147
|
+
of their actual locations in the preprocessor output. The
|
1148
|
+
actual file names placed into the tag file will have the
|
1149
|
+
same leading path components as the preprocessor output
|
1150
|
+
file, since it is assumed that the original source files are
|
1151
|
+
located relative to the preprocessor output file (unless, of
|
1152
|
+
course, the #line directive specifies an absolute path).
|
1153
|
+
This option is off by default. <b>Note:</b> This option is
|
1154
|
+
generally only useful when used together with the
|
1155
|
+
<b>−−excmd</b>=<i>number</i> (<b>−n</b>)
|
1156
|
+
option. Also, you may have to use either the
|
1157
|
+
<b>−−langmap</b> or
|
1158
|
+
<b>−−language−force</b> option if the
|
1159
|
+
extension of the preprocessor output file is not known to
|
1160
|
+
<b>ctags</b>.</p>
|
1161
|
+
|
1162
|
+
|
1163
|
+
<p style="margin-left:11%;"><b>−−links</b>[=<i>yes</i>|<i>no</i>]</p>
|
1164
|
+
|
1165
|
+
<p style="margin-left:18%;">Indicates whether symbolic
|
1166
|
+
links (if supported) should be followed. When disabled,
|
1167
|
+
symbolic links are ignored. This option is on by
|
1168
|
+
default.</p>
|
1169
|
+
|
1170
|
+
|
1171
|
+
<p style="margin-left:11%;"><b>−−list−kinds</b>[=<i>language</i>|<i>all</i>]</p>
|
1172
|
+
|
1173
|
+
<p style="margin-left:18%;">Lists the tag kinds recognized
|
1174
|
+
for either the specified language or all languages, and then
|
1175
|
+
exits. Each kind of tag recorded in the tag file is
|
1176
|
+
represented by a one-letter flag, which is also used to
|
1177
|
+
filter the tags placed into the output through use of the
|
1178
|
+
<b>−−<LANG>−kinds</b> option. Note
|
1179
|
+
that some languages and/or tag kinds may be implemented
|
1180
|
+
using regular expressions and may not be available if regex
|
1181
|
+
support is not compiled into <b>ctags</b> (see the
|
1182
|
+
<b>−−regex−<LANG></b> option). Each
|
1183
|
+
kind listed is enabled unless followed by
|
1184
|
+
"[off]".</p>
|
1185
|
+
|
1186
|
+
|
1187
|
+
<p style="margin-left:11%;"><b>−−list−maps</b>[=<i>language</i>|<i>all</i>]</p>
|
1188
|
+
|
1189
|
+
<p style="margin-left:18%;">Lists the file extensions and
|
1190
|
+
file name patterns which associate a file name with a
|
1191
|
+
language for either the specified language or all languages,
|
1192
|
+
and then exits. See the <b>−−langmap</b> option,
|
1193
|
+
and <b>SOURCE FILES</b>, above.</p>
|
1194
|
+
|
1195
|
+
|
1196
|
+
<p style="margin-left:11%;"><b>−−list−languages</b></p>
|
1197
|
+
|
1198
|
+
<p style="margin-left:18%;">Lists the names of the
|
1199
|
+
languages understood by <b>ctags</b>, and then exits. These
|
1200
|
+
language names are case insensitive and may be used in the
|
1201
|
+
<b>−−language−force</b>,
|
1202
|
+
<b>−−languages</b>,
|
1203
|
+
<b>−−<LANG>−kinds</b>, and
|
1204
|
+
<b>−−regex−<LANG></b> options.</p>
|
1205
|
+
|
1206
|
+
|
1207
|
+
<p style="margin-left:11%;"><b>−−options</b>=<i>file</i></p>
|
1208
|
+
|
1209
|
+
<p style="margin-left:18%;">Read additional options from
|
1210
|
+
<i>file</i>. The file should contain one option per line. As
|
1211
|
+
a special case, if <b>−−options</b>=<i>NONE</i>
|
1212
|
+
is specified as the first option on the command line, it
|
1213
|
+
will disable the automatic reading of any configuration
|
1214
|
+
options from either a file or the environment (see
|
1215
|
+
<b>FILES</b>).</p>
|
1216
|
+
|
1217
|
+
|
1218
|
+
<p style="margin-left:11%;"><b>−−recurse</b>[=<i>yes</i>|<i>no</i>]</p>
|
1219
|
+
|
1220
|
+
<p style="margin-left:18%;">Recurse into directories
|
1221
|
+
encountered in the list of supplied files. If the list of
|
1222
|
+
supplied files is empty and no file list is specified with
|
1223
|
+
the <b>−L</b> option, then the current directory (i.e.
|
1224
|
+
".") is assumed. Symbolic links are followed. If
|
1225
|
+
you don’t like these behaviors, either explicitly
|
1226
|
+
specify the files or pipe the output of <b>find</b>(1) into
|
1227
|
+
<b>ctags −L−</b> instead. <b>Note:</b> This
|
1228
|
+
option is not supported on all platforms at present. It is
|
1229
|
+
available if the output of the <b>−−help</b>
|
1230
|
+
option includes this option. See, also, the
|
1231
|
+
<b>−−exclude</b> to limit recursion.</p>
|
1232
|
+
|
1233
|
+
|
1234
|
+
<p style="margin-left:11%;"><b>−−regex−<LANG></b>=<i>/regexp/replacement/[kind−spec/][flags]</i></p>
|
1235
|
+
|
1236
|
+
<p style="margin-left:18%;">The <i>/regexp/replacement/</i>
|
1237
|
+
pair define a regular expression replacement pattern,
|
1238
|
+
similar in style to <b>sed</b> substitution commands, with
|
1239
|
+
which to generate tags from source files mapped to the named
|
1240
|
+
language, <b><LANG></b>, (case-insensitive; either a
|
1241
|
+
built-in or user-defined language). The regular expression,
|
1242
|
+
<i>regexp</i>, defines an extended regular expression
|
1243
|
+
(roughly that used by <b>egrep</b>(1)), which is used to
|
1244
|
+
locate a single source line containing a tag and may specify
|
1245
|
+
tab characters using \t. When a matching line is found, a
|
1246
|
+
tag will be generated for the name defined by
|
1247
|
+
<i>replacement</i>, which generally will contain the special
|
1248
|
+
back-references \1 through \9 to refer to matching
|
1249
|
+
sub-expression groups within <i>regexp</i>. The
|
1250
|
+
’/’ separator characters shown in the parameter
|
1251
|
+
to the option can actually be replaced by any character.
|
1252
|
+
Note that whichever separator character is used will have to
|
1253
|
+
be escaped with a backslash (’\’) character
|
1254
|
+
wherever it is used in the parameter as something other than
|
1255
|
+
a separator. The regular expression defined by this option
|
1256
|
+
is added to the current list of regular expressions for the
|
1257
|
+
specified language unless the parameter is omitted, in which
|
1258
|
+
case the current list is cleared.</p>
|
1259
|
+
|
1260
|
+
<p style="margin-left:18%; margin-top: 1em">Unless modified
|
1261
|
+
by <i>flags</i>, <i>regexp</i> is interpreted as a Posix
|
1262
|
+
extended regular expression. The <i>replacement</i> should
|
1263
|
+
expand for all matching lines to a non-empty string of
|
1264
|
+
characters, or a warning message will be reported. An
|
1265
|
+
optional kind specifier for tags matching <i>regexp</i> may
|
1266
|
+
follow <i>replacement</i>, which will determine what kind of
|
1267
|
+
tag is reported in the "kind" extension field (see
|
1268
|
+
<b>TAG FILE FORMAT</b>, below). The full form of
|
1269
|
+
<i>kind−spec</i> is in the form of a single letter, a
|
1270
|
+
comma, a name (without spaces), a comma, a description,
|
1271
|
+
followed by a separator, which specify the short and long
|
1272
|
+
forms of the kind value and its textual description
|
1273
|
+
(displayed using <b>−−list−kinds</b>).
|
1274
|
+
Either the kind name and/or the description may be omitted.
|
1275
|
+
If <i>kind−spec</i> is omitted, it defaults to
|
1276
|
+
"<i>r,regex</i>". Finally, <i>flags</i> are one or
|
1277
|
+
more single-letter characters having the following effect
|
1278
|
+
upon the interpretation of <i>regexp</i>:</p>
|
1279
|
+
|
1280
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1281
|
+
cellspacing="0" cellpadding="0">
|
1282
|
+
<tr valign="top" align="left">
|
1283
|
+
<td width="23%"></td>
|
1284
|
+
<td width="2%">
|
1285
|
+
|
1286
|
+
|
1287
|
+
<p style="margin-top: 1em" valign="top"><i>b</i></p></td>
|
1288
|
+
<td width="4%"></td>
|
1289
|
+
<td width="71%">
|
1290
|
+
|
1291
|
+
|
1292
|
+
<p style="margin-top: 1em" valign="top">The pattern is
|
1293
|
+
interpreted as a Posix basic regular expression.</p></td>
|
1294
|
+
<tr valign="top" align="left">
|
1295
|
+
<td width="23%"></td>
|
1296
|
+
<td width="2%">
|
1297
|
+
|
1298
|
+
|
1299
|
+
<p style="margin-top: 1em" valign="top"><i>e</i></p></td>
|
1300
|
+
<td width="4%"></td>
|
1301
|
+
<td width="71%">
|
1302
|
+
|
1303
|
+
|
1304
|
+
<p style="margin-top: 1em" valign="top">The pattern is
|
1305
|
+
interpreted as a Posix extended regular expression
|
1306
|
+
(default).</p> </td>
|
1307
|
+
<tr valign="top" align="left">
|
1308
|
+
<td width="23%"></td>
|
1309
|
+
<td width="2%">
|
1310
|
+
|
1311
|
+
|
1312
|
+
<p style="margin-top: 1em" valign="top"><i>i</i></p></td>
|
1313
|
+
<td width="4%"></td>
|
1314
|
+
<td width="71%">
|
1315
|
+
|
1316
|
+
|
1317
|
+
<p style="margin-top: 1em" valign="top">The regular
|
1318
|
+
expression is to be applied in a case-insensitive
|
1319
|
+
manner.</p> </td>
|
1320
|
+
</table>
|
1321
|
+
|
1322
|
+
<p style="margin-left:18%; margin-top: 1em">Note that this
|
1323
|
+
option is available only if <b>ctags</b> was compiled with
|
1324
|
+
support for regular expressions, which depends upon your
|
1325
|
+
platform. You can determine if support for regular
|
1326
|
+
expressions is compiled in by examining the output of the
|
1327
|
+
<b>−−version</b> option, which will include
|
1328
|
+
"+regex" in the compiled feature list.</p>
|
1329
|
+
|
1330
|
+
<p style="margin-left:18%; margin-top: 1em">For more
|
1331
|
+
information on the regular expressions used by <b>ctags</b>,
|
1332
|
+
see either the <b>regex(5,7)</b> man page, or the GNU info
|
1333
|
+
documentation for regex (e.g. "info regex").</p>
|
1334
|
+
|
1335
|
+
|
1336
|
+
<p style="margin-left:11%;"><b>−−sort</b>[=<i>yes</i>|<i>no</i>|<i>foldcase</i>]</p>
|
1337
|
+
|
1338
|
+
<p style="margin-left:18%;">Indicates whether the tag file
|
1339
|
+
should be sorted on the tag name (default is <i>yes</i>).
|
1340
|
+
Note that the original <b>vi</b>(1) required sorted tags.
|
1341
|
+
The <i>foldcase</i> value specifies case insensitive (or
|
1342
|
+
case-folded) sorting. Fast binary searches of tag files
|
1343
|
+
sorted with case-folding will require special support from
|
1344
|
+
tools using tag files, such as that found in the ctags
|
1345
|
+
readtags library, or Vim version 6.2 or higher (using
|
1346
|
+
"set ignorecase"). This option must appear before
|
1347
|
+
the first file name. [Ignored in etags mode]</p>
|
1348
|
+
|
1349
|
+
|
1350
|
+
<p style="margin-left:11%;"><b>−−tag−relative</b>[=<i>yes</i>|<i>no</i>]</p>
|
1351
|
+
|
1352
|
+
<p style="margin-left:18%;">Indicates that the file paths
|
1353
|
+
recorded in the tag file should be relative to the directory
|
1354
|
+
containing the tag file, rather than relative to the current
|
1355
|
+
directory, unless the files supplied on the command line are
|
1356
|
+
specified with absolute paths. This option must appear
|
1357
|
+
before the first file name. The default is <i>yes</i> when
|
1358
|
+
running in etags mode (see the <b>−e</b> option),
|
1359
|
+
<i>no</i> otherwise.</p>
|
1360
|
+
|
1361
|
+
|
1362
|
+
<p style="margin-left:11%;"><b>−−totals</b>[=<i>yes</i>|<i>no</i>]</p>
|
1363
|
+
|
1364
|
+
<p style="margin-left:18%;">Prints statistics about the
|
1365
|
+
source files read and the tag file written during the
|
1366
|
+
current invocation of <b>ctags</b>. This option is off by
|
1367
|
+
default. This option must appear before the first file
|
1368
|
+
name.</p>
|
1369
|
+
|
1370
|
+
|
1371
|
+
<p style="margin-left:11%;"><b>−−verbose</b>[=<i>yes</i>|<i>no</i>]</p>
|
1372
|
+
|
1373
|
+
<p style="margin-left:18%;">Enable verbose mode. This
|
1374
|
+
prints out information on option processing and a brief
|
1375
|
+
message describing what action is being taken for each file
|
1376
|
+
considered by <b>ctags</b>. Normally, <b>ctags</b> does not
|
1377
|
+
read command line arguments until after options are read
|
1378
|
+
from the configuration files (see <b>FILES</b>, below) and
|
1379
|
+
the <b>CTAGS</b> environment variable. However, if this
|
1380
|
+
option is the first argument on the command line, it will
|
1381
|
+
take effect before any options are read from these sources.
|
1382
|
+
The default is <i>no</i>.</p>
|
1383
|
+
|
1384
|
+
|
1385
|
+
<p style="margin-left:11%;"><b>−−version</b></p>
|
1386
|
+
|
1387
|
+
<p style="margin-left:18%;">Prints a version identifier for
|
1388
|
+
<b>ctags</b> to standard output, and then exits. This is
|
1389
|
+
guaranteed to always contain the string "Exuberant
|
1390
|
+
Ctags".</p>
|
1391
|
+
|
1392
|
+
<a name="OPERATIONAL DETAILS"></a>
|
1393
|
+
<h2>OPERATIONAL DETAILS</h2>
|
1394
|
+
|
1395
|
+
|
1396
|
+
<p style="margin-left:11%; margin-top: 1em">As <b>ctags</b>
|
1397
|
+
considers each file name in turn, it tries to determine the
|
1398
|
+
language of the file by applying the following three tests
|
1399
|
+
in order: if the file extension has been mapped to a
|
1400
|
+
language, if the file name matches a shell pattern mapped to
|
1401
|
+
a language, and finally if the file is executable and its
|
1402
|
+
first line specifies an interpreter using the Unix-style
|
1403
|
+
"#!" specification (if supported on the platform).
|
1404
|
+
If a language was identified, the file is opened and then
|
1405
|
+
the appropriate language parser is called to operate on the
|
1406
|
+
currently open file. The parser parses through the file and
|
1407
|
+
adds an entry to the tag file for each language object it is
|
1408
|
+
written to handle. See <b>TAG FILE FORMAT</b>, below, for
|
1409
|
+
details on these entries.</p>
|
1410
|
+
|
1411
|
+
<p style="margin-left:11%; margin-top: 1em">This
|
1412
|
+
implementation of <b>ctags</b> imposes no formatting
|
1413
|
+
requirements on C code as do legacy implementations. Older
|
1414
|
+
implementations of ctags tended to rely upon certain
|
1415
|
+
formatting assumptions in order to help it resolve coding
|
1416
|
+
dilemmas caused by preprocessor conditionals.</p>
|
1417
|
+
|
1418
|
+
<p style="margin-left:11%; margin-top: 1em">In general,
|
1419
|
+
<b>ctags</b> tries to be smart about conditional
|
1420
|
+
preprocessor directives. If a preprocessor conditional is
|
1421
|
+
encountered within a statement which defines a tag,
|
1422
|
+
<b>ctags</b> follows only the first branch of that
|
1423
|
+
conditional (except in the special case of "#if
|
1424
|
+
0", in which case it follows only the last branch). The
|
1425
|
+
reason for this is that failing to pursue only one branch
|
1426
|
+
can result in ambiguous syntax, as in the following
|
1427
|
+
example:</p>
|
1428
|
+
|
1429
|
+
<p style="margin-left:22%; margin-top: 1em">#ifdef
|
1430
|
+
TWO_ALTERNATIVES <br>
|
1431
|
+
struct { <br>
|
1432
|
+
#else <br>
|
1433
|
+
union { <br>
|
1434
|
+
#endif</p>
|
1435
|
+
|
1436
|
+
<p style="margin-left:28%;">short a; <br>
|
1437
|
+
long b;</p>
|
1438
|
+
|
1439
|
+
<p style="margin-left:22%;">}</p>
|
1440
|
+
|
1441
|
+
<p style="margin-left:11%; margin-top: 1em">Both branches
|
1442
|
+
cannot be followed, or braces become unbalanced and
|
1443
|
+
<b>ctags</b> would be unable to make sense of the
|
1444
|
+
syntax.</p>
|
1445
|
+
|
1446
|
+
<p style="margin-left:11%; margin-top: 1em">If the
|
1447
|
+
application of this heuristic fails to properly parse a
|
1448
|
+
file, generally due to complicated and inconsistent pairing
|
1449
|
+
within the conditionals, <b>ctags</b> will retry the file
|
1450
|
+
using a different heuristic which does not selectively
|
1451
|
+
follow conditional preprocessor branches, but instead falls
|
1452
|
+
back to relying upon a closing brace ("}") in
|
1453
|
+
column 1 as indicating the end of a block once any brace
|
1454
|
+
imbalance results from following a #if conditional
|
1455
|
+
branch.</p>
|
1456
|
+
|
1457
|
+
<p style="margin-left:11%; margin-top: 1em"><b>Ctags</b>
|
1458
|
+
will also try to specially handle arguments lists enclosed
|
1459
|
+
in double sets of parentheses in order to accept the
|
1460
|
+
following conditional construct:</p>
|
1461
|
+
|
1462
|
+
<p style="margin-left:22%; margin-top: 1em">extern void foo
|
1463
|
+
__ARGS((int one, char two));</p>
|
1464
|
+
|
1465
|
+
<p style="margin-left:11%; margin-top: 1em">Any name
|
1466
|
+
immediately preceding the "((" will be
|
1467
|
+
automatically ignored and the previous name will be
|
1468
|
+
used.</p>
|
1469
|
+
|
1470
|
+
<p style="margin-left:11%; margin-top: 1em">C++ operator
|
1471
|
+
definitions are specially handled. In order for consistency
|
1472
|
+
with all types of operators (overloaded and conversion), the
|
1473
|
+
operator name in the tag file will always be preceded by the
|
1474
|
+
string "operator " (i.e. even if the actual
|
1475
|
+
operator definition was written as
|
1476
|
+
"operator<<").</p>
|
1477
|
+
|
1478
|
+
<p style="margin-left:11%; margin-top: 1em">After creating
|
1479
|
+
or appending to the tag file, it is sorted by the tag name,
|
1480
|
+
removing identical tag lines.</p>
|
1481
|
+
|
1482
|
+
<a name="TAG FILE FORMAT"></a>
|
1483
|
+
<h2>TAG FILE FORMAT</h2>
|
1484
|
+
|
1485
|
+
|
1486
|
+
<p style="margin-left:11%; margin-top: 1em">When not
|
1487
|
+
running in etags mode, each entry in the tag file consists
|
1488
|
+
of a separate line, each looking like this in the most
|
1489
|
+
general case:</p>
|
1490
|
+
|
1491
|
+
|
1492
|
+
<p style="margin-left:12%; margin-top: 1em">tag_name<TAB>file_name<TAB>ex_cmd;"<TAB>extension_fields</p>
|
1493
|
+
|
1494
|
+
<p style="margin-left:11%; margin-top: 1em">The fields and
|
1495
|
+
separators of these lines are specified as follows:</p>
|
1496
|
+
|
1497
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1498
|
+
cellspacing="0" cellpadding="0">
|
1499
|
+
<tr valign="top" align="left">
|
1500
|
+
<td width="17%"></td>
|
1501
|
+
<td width="3%">
|
1502
|
+
|
1503
|
+
|
1504
|
+
<p style="margin-top: 1em" valign="top">1.</p></td>
|
1505
|
+
<td width="3%"></td>
|
1506
|
+
<td width="77%">
|
1507
|
+
|
1508
|
+
|
1509
|
+
<p style="margin-top: 1em" valign="top">tag name</p></td>
|
1510
|
+
<tr valign="top" align="left">
|
1511
|
+
<td width="17%"></td>
|
1512
|
+
<td width="3%">
|
1513
|
+
|
1514
|
+
|
1515
|
+
<p valign="top">2.</p></td>
|
1516
|
+
<td width="3%"></td>
|
1517
|
+
<td width="77%">
|
1518
|
+
|
1519
|
+
|
1520
|
+
<p valign="top">single tab character</p></td>
|
1521
|
+
<tr valign="top" align="left">
|
1522
|
+
<td width="17%"></td>
|
1523
|
+
<td width="3%">
|
1524
|
+
|
1525
|
+
|
1526
|
+
<p valign="top">3.</p></td>
|
1527
|
+
<td width="3%"></td>
|
1528
|
+
<td width="77%">
|
1529
|
+
|
1530
|
+
|
1531
|
+
<p valign="top">name of the file in which the object
|
1532
|
+
associated with the tag is located</p></td>
|
1533
|
+
<tr valign="top" align="left">
|
1534
|
+
<td width="17%"></td>
|
1535
|
+
<td width="3%">
|
1536
|
+
|
1537
|
+
|
1538
|
+
<p valign="top">4.</p></td>
|
1539
|
+
<td width="3%"></td>
|
1540
|
+
<td width="77%">
|
1541
|
+
|
1542
|
+
|
1543
|
+
<p valign="top">single tab character</p></td>
|
1544
|
+
<tr valign="top" align="left">
|
1545
|
+
<td width="17%"></td>
|
1546
|
+
<td width="3%">
|
1547
|
+
|
1548
|
+
|
1549
|
+
<p valign="top">5.</p></td>
|
1550
|
+
<td width="3%"></td>
|
1551
|
+
<td width="77%">
|
1552
|
+
|
1553
|
+
|
1554
|
+
<p valign="top">EX command used to locate the tag within
|
1555
|
+
the file; generally a search pattern (either /pattern/ or
|
1556
|
+
?pattern?) or line number (see <b>−−excmd</b>).
|
1557
|
+
Tag file format 2 (see <b>−−format</b>) extends
|
1558
|
+
this EX command under certain circumstances to include a set
|
1559
|
+
of extension fields (described below) embedded in an EX
|
1560
|
+
comment immediately appended to the EX command, which leaves
|
1561
|
+
it backward-compatible with original <b>vi</b>(1)
|
1562
|
+
implementations.</p> </td>
|
1563
|
+
</table>
|
1564
|
+
|
1565
|
+
<p style="margin-left:11%; margin-top: 1em">A few special
|
1566
|
+
tags are written into the tag file for internal purposes.
|
1567
|
+
These tags are composed in such a way that they always sort
|
1568
|
+
to the top of the file. Therefore, the first two characters
|
1569
|
+
of these tags are used a magic number to detect a tag file
|
1570
|
+
for purposes of determining whether a valid tag file is
|
1571
|
+
being overwritten rather than a source file.</p>
|
1572
|
+
|
1573
|
+
<p style="margin-left:11%; margin-top: 1em">Note that the
|
1574
|
+
name of each source file will be recorded in the tag file
|
1575
|
+
exactly as it appears on the command line. Therefore, if the
|
1576
|
+
path you specified on the command line was relative to the
|
1577
|
+
current directory, then it will be recorded in that same
|
1578
|
+
manner in the tag file. See, however, the
|
1579
|
+
<b>−−tag−relative</b> option for how this
|
1580
|
+
behavior can be modified.</p>
|
1581
|
+
|
1582
|
+
<p style="margin-left:11%; margin-top: 1em">Extension
|
1583
|
+
fields are tab-separated key-value pairs appended to the end
|
1584
|
+
of the EX command as a comment, as described above. These
|
1585
|
+
key value pairs appear in the general form
|
1586
|
+
"<i>key</i>:<i>value</i>". Their presence in the
|
1587
|
+
lines of the tag file are controlled by the
|
1588
|
+
<b>−−fields</b> option. The possible keys and
|
1589
|
+
the meaning of their values are as follows:</p>
|
1590
|
+
|
1591
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1592
|
+
cellspacing="0" cellpadding="0">
|
1593
|
+
<tr valign="top" align="left">
|
1594
|
+
<td width="11%"></td>
|
1595
|
+
<td width="9%">
|
1596
|
+
|
1597
|
+
|
1598
|
+
<p style="margin-top: 1em" valign="top"><i>access</i></p></td>
|
1599
|
+
<td width="9%"></td>
|
1600
|
+
<td width="71%">
|
1601
|
+
|
1602
|
+
|
1603
|
+
<p style="margin-top: 1em" valign="top">Indicates the
|
1604
|
+
visibility of this class member, where <i>value</i> is
|
1605
|
+
specific to the language.</p></td>
|
1606
|
+
<tr valign="top" align="left">
|
1607
|
+
<td width="11%"></td>
|
1608
|
+
<td width="9%">
|
1609
|
+
|
1610
|
+
|
1611
|
+
<p><i>file</i></p></td>
|
1612
|
+
<td width="9%"></td>
|
1613
|
+
<td width="71%">
|
1614
|
+
|
1615
|
+
|
1616
|
+
<p>Indicates that the tag has file-limited visibility. This
|
1617
|
+
key has no corresponding value.</p></td>
|
1618
|
+
<tr valign="top" align="left">
|
1619
|
+
<td width="11%"></td>
|
1620
|
+
<td width="9%">
|
1621
|
+
|
1622
|
+
|
1623
|
+
<p><i>kind</i></p></td>
|
1624
|
+
<td width="9%"></td>
|
1625
|
+
<td width="71%">
|
1626
|
+
|
1627
|
+
|
1628
|
+
<p>Indicates the type, or kind, of tag. Its value is either
|
1629
|
+
one of the corresponding one-letter flags described under
|
1630
|
+
the various <b>−−<LANG>−kinds</b>
|
1631
|
+
options above, or a full name. It is permitted (and is, in
|
1632
|
+
fact, the default) for the key portion of this field to be
|
1633
|
+
omitted. The optional behaviors are controlled with the
|
1634
|
+
<b>−−fields</b> option.</p></td>
|
1635
|
+
</table>
|
1636
|
+
|
1637
|
+
<p style="margin-left:11%;"><i>implementation</i></p>
|
1638
|
+
|
1639
|
+
<p style="margin-left:29%;">When present, this indicates a
|
1640
|
+
limited implementation (abstract vs. concrete) of a routine
|
1641
|
+
or class, where <i>value</i> is specific to the language
|
1642
|
+
("virtual" or "pure virtual" for C++;
|
1643
|
+
"abstract" for Java).</p>
|
1644
|
+
|
1645
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1646
|
+
cellspacing="0" cellpadding="0">
|
1647
|
+
<tr valign="top" align="left">
|
1648
|
+
<td width="11%"></td>
|
1649
|
+
<td width="14%">
|
1650
|
+
|
1651
|
+
|
1652
|
+
|
1653
|
+
<p style="margin-top: 1em" valign="top"><i>inherits</i></p> </td>
|
1654
|
+
<td width="4%"></td>
|
1655
|
+
<td width="71%">
|
1656
|
+
|
1657
|
+
|
1658
|
+
<p style="margin-top: 1em" valign="top">When present,
|
1659
|
+
<i>value</i>. is a comma-separated list of classes from
|
1660
|
+
which this class is derived (i.e. inherits from).</p></td>
|
1661
|
+
<tr valign="top" align="left">
|
1662
|
+
<td width="11%"></td>
|
1663
|
+
<td width="14%">
|
1664
|
+
|
1665
|
+
|
1666
|
+
<p><i>signature</i></p></td>
|
1667
|
+
<td width="4%"></td>
|
1668
|
+
<td width="71%">
|
1669
|
+
|
1670
|
+
|
1671
|
+
<p>When present, <i>value</i> is a language-dependent
|
1672
|
+
representation of the signature of a routine. A routine
|
1673
|
+
signature in its complete form specifies the return type of
|
1674
|
+
a routine and its formal argument list. This extension field
|
1675
|
+
is presently supported only for C-based languages and does
|
1676
|
+
not include the return type.</p></td>
|
1677
|
+
</table>
|
1678
|
+
|
1679
|
+
<p style="margin-left:11%; margin-top: 1em">In addition,
|
1680
|
+
information on the scope of the tag definition may be
|
1681
|
+
available, with the key portion equal to some
|
1682
|
+
language-dependent construct name and its value the name
|
1683
|
+
declared for that construct in the program. This scope entry
|
1684
|
+
indicates the scope in which the tag was found. For example,
|
1685
|
+
a tag generated for a C structure member would have a scope
|
1686
|
+
looking like "struct:myStruct".</p>
|
1687
|
+
|
1688
|
+
<a name="HOW TO USE WITH VI"></a>
|
1689
|
+
<h2>HOW TO USE WITH VI</h2>
|
1690
|
+
|
1691
|
+
|
1692
|
+
<p style="margin-left:11%; margin-top: 1em">Vi will, by
|
1693
|
+
default, expect a tag file by the name "tags" in
|
1694
|
+
the current directory. Once the tag file is built, the
|
1695
|
+
following commands exercise the tag indexing feature:</p>
|
1696
|
+
|
1697
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1698
|
+
cellspacing="0" cellpadding="0">
|
1699
|
+
<tr valign="top" align="left">
|
1700
|
+
<td width="11%"></td>
|
1701
|
+
<td width="14%">
|
1702
|
+
|
1703
|
+
|
1704
|
+
<p style="margin-top: 1em" valign="top"><b>vi −t
|
1705
|
+
tag</b></p> </td>
|
1706
|
+
<td width="4%"></td>
|
1707
|
+
<td width="71%">
|
1708
|
+
|
1709
|
+
|
1710
|
+
<p style="margin-top: 1em" valign="top">Start vi and
|
1711
|
+
position the cursor at the file and line where
|
1712
|
+
"tag" is defined.</p></td>
|
1713
|
+
<tr valign="top" align="left">
|
1714
|
+
<td width="11%"></td>
|
1715
|
+
<td width="14%">
|
1716
|
+
|
1717
|
+
|
1718
|
+
<p style="margin-top: 1em" valign="top"><b>:ta tag</b></p></td>
|
1719
|
+
<td width="4%"></td>
|
1720
|
+
<td width="71%">
|
1721
|
+
|
1722
|
+
|
1723
|
+
<p style="margin-top: 1em" valign="top">Find a tag.</p></td>
|
1724
|
+
<tr valign="top" align="left">
|
1725
|
+
<td width="11%"></td>
|
1726
|
+
<td width="14%">
|
1727
|
+
|
1728
|
+
|
1729
|
+
<p style="margin-top: 1em" valign="top"><b>Ctrl-]</b></p></td>
|
1730
|
+
<td width="4%"></td>
|
1731
|
+
<td width="71%">
|
1732
|
+
|
1733
|
+
|
1734
|
+
<p style="margin-top: 1em" valign="top">Find the tag under
|
1735
|
+
the cursor.</p></td>
|
1736
|
+
<tr valign="top" align="left">
|
1737
|
+
<td width="11%"></td>
|
1738
|
+
<td width="14%">
|
1739
|
+
|
1740
|
+
|
1741
|
+
<p style="margin-top: 1em" valign="top"><b>Ctrl-T</b></p></td>
|
1742
|
+
<td width="4%"></td>
|
1743
|
+
<td width="71%">
|
1744
|
+
|
1745
|
+
|
1746
|
+
<p style="margin-top: 1em" valign="top">Return to previous
|
1747
|
+
location before jump to tag (not widely implemented).</p></td>
|
1748
|
+
</table>
|
1749
|
+
|
1750
|
+
<a name="HOW TO USE WITH GNU EMACS"></a>
|
1751
|
+
<h2>HOW TO USE WITH GNU EMACS</h2>
|
1752
|
+
|
1753
|
+
|
1754
|
+
<p style="margin-left:11%; margin-top: 1em">Emacs will, by
|
1755
|
+
default, expect a tag file by the name "TAGS" in
|
1756
|
+
the current directory. Once the tag file is built, the
|
1757
|
+
following commands exercise the tag indexing feature:
|
1758
|
+
<b><br>
|
1759
|
+
M-x visit−tags−table <RET> FILE
|
1760
|
+
<RET></b></p>
|
1761
|
+
|
1762
|
+
<p style="margin-left:26%;">Select the tag file,
|
1763
|
+
"FILE", to use.</p>
|
1764
|
+
|
1765
|
+
<p style="margin-left:11%;"><b>M-. [TAG]
|
1766
|
+
<RET></b></p>
|
1767
|
+
|
1768
|
+
<p style="margin-left:26%;">Find the first definition of
|
1769
|
+
TAG. The default tag is the identifier under the cursor.</p>
|
1770
|
+
|
1771
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1772
|
+
cellspacing="0" cellpadding="0">
|
1773
|
+
<tr valign="top" align="left">
|
1774
|
+
<td width="11%"></td>
|
1775
|
+
<td width="11%">
|
1776
|
+
|
1777
|
+
|
1778
|
+
<p style="margin-top: 1em" valign="top"><b>M-*</b></p></td>
|
1779
|
+
<td width="4%"></td>
|
1780
|
+
<td width="72%">
|
1781
|
+
|
1782
|
+
|
1783
|
+
<p style="margin-top: 1em" valign="top">Pop back to where
|
1784
|
+
you previously invoked "M-.".</p></td>
|
1785
|
+
<td width="2%">
|
1786
|
+
</td>
|
1787
|
+
<tr valign="top" align="left">
|
1788
|
+
<td width="11%"></td>
|
1789
|
+
<td width="11%">
|
1790
|
+
|
1791
|
+
|
1792
|
+
<p style="margin-top: 1em" valign="top"><b>C-u M-.</b></p></td>
|
1793
|
+
<td width="4%"></td>
|
1794
|
+
<td width="72%">
|
1795
|
+
|
1796
|
+
|
1797
|
+
<p style="margin-top: 1em" valign="top">Find the next
|
1798
|
+
definition for the last tag.</p></td>
|
1799
|
+
<td width="2%">
|
1800
|
+
</td>
|
1801
|
+
</table>
|
1802
|
+
|
1803
|
+
<p style="margin-left:11%; margin-top: 1em">For more
|
1804
|
+
commands, see the <i>Tags</i> topic in the Emacs info
|
1805
|
+
document.</p>
|
1806
|
+
|
1807
|
+
<a name="HOW TO USE WITH NEDIT"></a>
|
1808
|
+
<h2>HOW TO USE WITH NEDIT</h2>
|
1809
|
+
|
1810
|
+
|
1811
|
+
<p style="margin-left:11%; margin-top: 1em">NEdit version
|
1812
|
+
5.1 and later can handle the new extended tag file format
|
1813
|
+
(see <b>−−format</b>). To make NEdit use the tag
|
1814
|
+
file, select "File−>Load Tags File". To
|
1815
|
+
jump to the definition for a tag, highlight the word, the
|
1816
|
+
press Ctrl-D. NEdit 5.1 can can read multiple tag files from
|
1817
|
+
different directories. Setting the X resource nedit.tagFile
|
1818
|
+
to the name of a tag file instructs NEdit to automatically
|
1819
|
+
load that tag file at startup time.</p>
|
1820
|
+
|
1821
|
+
<a name="CAVEATS"></a>
|
1822
|
+
<h2>CAVEATS</h2>
|
1823
|
+
|
1824
|
+
|
1825
|
+
<p style="margin-left:11%; margin-top: 1em">Because
|
1826
|
+
<b>ctags</b> is neither a preprocessor nor a compiler, use
|
1827
|
+
of preprocessor macros can fool <b>ctags</b> into either
|
1828
|
+
missing tags or improperly generating inappropriate tags.
|
1829
|
+
Although <b>ctags</b> has been designed to handle certain
|
1830
|
+
common cases, this is the single biggest cause of reported
|
1831
|
+
problems. In particular, the use of preprocessor constructs
|
1832
|
+
which alter the textual syntax of C can fool <b>ctags</b>.
|
1833
|
+
You can work around many such problems by using the
|
1834
|
+
<b>−I</b> option.</p>
|
1835
|
+
|
1836
|
+
<p style="margin-left:11%; margin-top: 1em">Note that since
|
1837
|
+
<b>ctags</b> generates patterns for locating tags (see the
|
1838
|
+
<b>−−excmd</b> option), it is entirely possible
|
1839
|
+
that the wrong line may be found by your editor if there
|
1840
|
+
exists another source line which is identical to the line
|
1841
|
+
containing the tag. The following example demonstrates this
|
1842
|
+
condition:</p>
|
1843
|
+
|
1844
|
+
<p style="margin-left:22%; margin-top: 1em">int
|
1845
|
+
variable;</p>
|
1846
|
+
|
1847
|
+
<p style="margin-left:22%; margin-top: 1em">/* ... */ <br>
|
1848
|
+
void foo(variable) <br>
|
1849
|
+
int variable; <br>
|
1850
|
+
{</p>
|
1851
|
+
|
1852
|
+
<p style="margin-left:28%;">/* ... */</p>
|
1853
|
+
|
1854
|
+
<p style="margin-left:22%;">}</p>
|
1855
|
+
|
1856
|
+
<p style="margin-left:11%; margin-top: 1em">Depending upon
|
1857
|
+
which editor you use and where in the code you happen to be,
|
1858
|
+
it is possible that the search pattern may locate the local
|
1859
|
+
parameter declaration in foo() before it finds the actual
|
1860
|
+
global variable definition, since the lines (and therefore
|
1861
|
+
their search patterns are identical). This can be avoided by
|
1862
|
+
use of the <b>−−excmd</b>=<i>n</i> option.</p>
|
1863
|
+
|
1864
|
+
<a name="BUGS"></a>
|
1865
|
+
<h2>BUGS</h2>
|
1866
|
+
|
1867
|
+
|
1868
|
+
<p style="margin-left:11%; margin-top: 1em"><b>Ctags</b>
|
1869
|
+
has more options than <b>ls</b>(1).</p>
|
1870
|
+
|
1871
|
+
<p style="margin-left:11%; margin-top: 1em">When parsing a
|
1872
|
+
C++ member function definition (e.g.
|
1873
|
+
"className::function"), <b>ctags</b> cannot
|
1874
|
+
determine whether the scope specifier is a class name or a
|
1875
|
+
namespace specifier and always lists it as a class name in
|
1876
|
+
the scope portion of the extension fields. Also, if a C++
|
1877
|
+
function is defined outside of the class declaration (the
|
1878
|
+
usual case), the access specification (i.e. public,
|
1879
|
+
protected, or private) and implementation information (e.g.
|
1880
|
+
virtual, pure virtual) contained in the function declaration
|
1881
|
+
are not known when the tag is generated for the function
|
1882
|
+
definition. It will, however be available for prototypes
|
1883
|
+
(e.g <b>−−c++−kinds</b>=<i>+p</i>).</p>
|
1884
|
+
|
1885
|
+
<p style="margin-left:11%; margin-top: 1em">No qualified
|
1886
|
+
tags are generated for language objects inherited into a
|
1887
|
+
class.</p>
|
1888
|
+
|
1889
|
+
<a name="ENVIRONMENT VARIABLES"></a>
|
1890
|
+
<h2>ENVIRONMENT VARIABLES</h2>
|
1891
|
+
|
1892
|
+
|
1893
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1894
|
+
cellspacing="0" cellpadding="0">
|
1895
|
+
<tr valign="top" align="left">
|
1896
|
+
<td width="11%"></td>
|
1897
|
+
<td width="9%">
|
1898
|
+
|
1899
|
+
|
1900
|
+
<p style="margin-top: 1em" valign="top"><b>CTAGS</b></p></td>
|
1901
|
+
<td width="3%"></td>
|
1902
|
+
<td width="77%">
|
1903
|
+
|
1904
|
+
|
1905
|
+
<p style="margin-top: 1em" valign="top">If this environment
|
1906
|
+
variable exists, it will be expected to contain a set of
|
1907
|
+
default options which are read when <b>ctags</b> starts,
|
1908
|
+
after the configuration files listed in <b>FILES</b>, below,
|
1909
|
+
are read, but before any command line options are read.
|
1910
|
+
Options appearing on the command line will override options
|
1911
|
+
specified in this variable. Only options will be read from
|
1912
|
+
this variable. Note that all white space in this variable is
|
1913
|
+
considered a separator, making it impossible to pass an
|
1914
|
+
option parameter containing an embedded space. If this is a
|
1915
|
+
problem, use a configuration file instead.</p></td>
|
1916
|
+
<tr valign="top" align="left">
|
1917
|
+
<td width="11%"></td>
|
1918
|
+
<td width="9%">
|
1919
|
+
|
1920
|
+
|
1921
|
+
<p><b>ETAGS</b></p></td>
|
1922
|
+
<td width="3%"></td>
|
1923
|
+
<td width="77%">
|
1924
|
+
|
1925
|
+
|
1926
|
+
<p>Similar to the <b>CTAGS</b> variable above, this
|
1927
|
+
variable, if found, will be read when <b>etags</b> starts.
|
1928
|
+
If this variable is not found, <b>etags</b> will try to use
|
1929
|
+
<b>CTAGS</b> instead.</p></td>
|
1930
|
+
<tr valign="top" align="left">
|
1931
|
+
<td width="11%"></td>
|
1932
|
+
<td width="9%">
|
1933
|
+
|
1934
|
+
|
1935
|
+
<p><b>TMPDIR</b></p></td>
|
1936
|
+
<td width="3%"></td>
|
1937
|
+
<td width="77%">
|
1938
|
+
|
1939
|
+
|
1940
|
+
<p>On Unix-like hosts where mkstemp() is available, the
|
1941
|
+
value of this variable specifies the directory in which to
|
1942
|
+
place temporary files. This can be useful if the size of a
|
1943
|
+
temporary file becomes too large to fit on the partition
|
1944
|
+
holding the default temporary directory defined at
|
1945
|
+
compilation time. <b>ctags</b> creates temporary files only
|
1946
|
+
if either (1) an emacs-style tag file is being generated,
|
1947
|
+
(2) the tag file is being sent to standard output, or (3)
|
1948
|
+
the program was compiled to use an internal sort algorithm
|
1949
|
+
to sort the tag files instead of the the sort utility of the
|
1950
|
+
operating system. If the sort utility of the operating
|
1951
|
+
system is being used, it will generally observe this
|
1952
|
+
variable also. Note that if <b>ctags</b> is setuid, the
|
1953
|
+
value of TMPDIR will be ignored.</p></td>
|
1954
|
+
</table>
|
1955
|
+
|
1956
|
+
<a name="FILES"></a>
|
1957
|
+
<h2>FILES</h2>
|
1958
|
+
|
1959
|
+
|
1960
|
+
<p style="margin-left:11%; margin-top: 1em"><i>/ctags.cnf
|
1961
|
+
(on MSDOS, MSWindows only) <br>
|
1962
|
+
/etc/ctags.conf <br>
|
1963
|
+
/usr/local/etc/ctags.conf <br>
|
1964
|
+
$HOME/.ctags <br>
|
1965
|
+
$HOME/ctags.cnf (on MSDOS, MSWindows only) <br>
|
1966
|
+
.ctags <br>
|
1967
|
+
ctags.cnf (on MSDOS, MSWindows only)</i></p>
|
1968
|
+
|
1969
|
+
<p style="margin-left:22%;">If any of these configuration
|
1970
|
+
files exist, each will be expected to contain a set of
|
1971
|
+
default options which are read in the order listed when
|
1972
|
+
<b>ctags</b> starts, but before the <b>CTAGS</b> environment
|
1973
|
+
variable is read or any command line options are read. This
|
1974
|
+
makes it possible to set up site-wide, personal or
|
1975
|
+
project-level defaults. It is possible to compile
|
1976
|
+
<b>ctags</b> to read an additional configuration file before
|
1977
|
+
any of those shown above, which will be indicated if the
|
1978
|
+
output produced by the <b>−−version</b> option
|
1979
|
+
lists the "custom-conf" feature. Options appearing
|
1980
|
+
in the <b>CTAGS</b> environment variable or on the command
|
1981
|
+
line will override options specified in these files. Only
|
1982
|
+
options will be read from these files. Note that the option
|
1983
|
+
files are read in line-oriented mode in which spaces are
|
1984
|
+
significant (since shell quoting is not possible). Each line
|
1985
|
+
of the file is read as one command line parameter (as if it
|
1986
|
+
were quoted with single quotes). Therefore, use new lines to
|
1987
|
+
indicate separate command-line arguments.</p>
|
1988
|
+
|
1989
|
+
<table width="100%" border=0 rules="none" frame="void"
|
1990
|
+
cellspacing="0" cellpadding="0">
|
1991
|
+
<tr valign="top" align="left">
|
1992
|
+
<td width="11%"></td>
|
1993
|
+
<td width="6%">
|
1994
|
+
|
1995
|
+
|
1996
|
+
<p style="margin-top: 1em" valign="top"><i>tags</i></p></td>
|
1997
|
+
<td width="5%"></td>
|
1998
|
+
<td width="58%">
|
1999
|
+
|
2000
|
+
|
2001
|
+
<p style="margin-top: 1em" valign="top">The default tag
|
2002
|
+
file created by <b>ctags</b>.</p></td>
|
2003
|
+
<td width="20%">
|
2004
|
+
</td>
|
2005
|
+
<tr valign="top" align="left">
|
2006
|
+
<td width="11%"></td>
|
2007
|
+
<td width="6%">
|
2008
|
+
|
2009
|
+
|
2010
|
+
<p style="margin-top: 1em" valign="top"><i>TAGS</i></p></td>
|
2011
|
+
<td width="5%"></td>
|
2012
|
+
<td width="58%">
|
2013
|
+
|
2014
|
+
|
2015
|
+
<p style="margin-top: 1em" valign="top">The default tag
|
2016
|
+
file created by <b>etags</b>.</p></td>
|
2017
|
+
<td width="20%">
|
2018
|
+
</td>
|
2019
|
+
</table>
|
2020
|
+
|
2021
|
+
<a name="SEE ALSO"></a>
|
2022
|
+
<h2>SEE ALSO</h2>
|
2023
|
+
|
2024
|
+
|
2025
|
+
<p style="margin-left:11%; margin-top: 1em">The official
|
2026
|
+
Exuberant Ctags web site at:</p>
|
2027
|
+
|
2028
|
+
|
2029
|
+
<p style="margin-left:22%; margin-top: 1em">http://ctags.sourceforge.net</p>
|
2030
|
+
|
2031
|
+
<p style="margin-left:11%; margin-top: 1em">Also
|
2032
|
+
<b>ex</b>(1), <b>vi</b>(1), <b>elvis</b>, or, better yet,
|
2033
|
+
<b>vim</b>, the official editor of <b>ctags</b>. For more
|
2034
|
+
information on <b>vim</b>, see the VIM Pages web site
|
2035
|
+
at:</p>
|
2036
|
+
|
2037
|
+
|
2038
|
+
<p style="margin-left:22%; margin-top: 1em">http://www.vim.org/</p>
|
2039
|
+
|
2040
|
+
<a name="AUTHOR"></a>
|
2041
|
+
<h2>AUTHOR</h2>
|
2042
|
+
|
2043
|
+
|
2044
|
+
<p style="margin-left:11%; margin-top: 1em">Darren Hiebert
|
2045
|
+
<dhiebert at users.sourceforge.net> <br>
|
2046
|
+
http://DarrenHiebert.com/</p>
|
2047
|
+
|
2048
|
+
<a name="MOTIVATION"></a>
|
2049
|
+
<h2>MOTIVATION</h2>
|
2050
|
+
|
2051
|
+
|
2052
|
+
<p style="margin-left:11%; margin-top: 1em">"Think ye
|
2053
|
+
at all times of rendering some service to every member of
|
2054
|
+
the human race."</p>
|
2055
|
+
|
2056
|
+
<p style="margin-left:11%; margin-top: 1em">"All
|
2057
|
+
effort and exertion put forth by man from the fullness of
|
2058
|
+
his heart is worship, if it is prompted by the highest
|
2059
|
+
motives and the will to do service to humanity."</p>
|
2060
|
+
|
2061
|
+
<p style="margin-left:22%; margin-top: 1em">−−
|
2062
|
+
From the Baha’i Writings</p>
|
2063
|
+
|
2064
|
+
<a name="CREDITS"></a>
|
2065
|
+
<h2>CREDITS</h2>
|
2066
|
+
|
2067
|
+
|
2068
|
+
<p style="margin-left:11%; margin-top: 1em">This version of
|
2069
|
+
<b>ctags</b> was originally derived from and inspired by the
|
2070
|
+
ctags program by Steve Kirkendall
|
2071
|
+
<kirkenda@cs.pdx.edu> that comes with the Elvis vi
|
2072
|
+
clone (though virtually none of the original code
|
2073
|
+
remains).</p>
|
2074
|
+
|
2075
|
+
<p style="margin-left:11%; margin-top: 1em">Credit is also
|
2076
|
+
due Bram Moolenaar <Bram@vim.org>, the author of
|
2077
|
+
<b>vim</b>, who has devoted so much of his time and energy
|
2078
|
+
both to developing the editor as a service to others, and to
|
2079
|
+
helping the orphans of Uganda.</p>
|
2080
|
+
|
2081
|
+
<p style="margin-left:11%; margin-top: 1em">The section
|
2082
|
+
entitled "HOW TO USE WITH GNU EMACS" was
|
2083
|
+
shamelessly stolen from the info page for GNU
|
2084
|
+
<b>etags</b>.</p>
|
2085
|
+
<hr>
|
2086
|
+
</body>
|
2087
|
+
</html>
|