<?xml version="1.0" encoding="latin1" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>1998</year>
      <year>2007</year>
      <holder>Ericsson AB, All Rights Reserved</holder>
    </copyright>
    <legalnotice>
  The contents of this file are subject to the Erlang Public License,
  Version 1.1, (the "License"); you may not use this file except in
  compliance with the License. You should have received a copy of the
  Erlang Public License along with this software. If not, it can be
  retrieved online at http://www.erlang.org/.

  Software distributed under the License is distributed on an "AS IS"
  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  the License for the specific language governing rights and limitations
  under the License.

  The Initial Developer of the Original Code is Ericsson AB.
    </legalnotice>

    <title>tags</title>
    <prepared>Anders Lindgren</prepared>
    <responsible></responsible>
    <docno>1</docno>
    <date>98-03-11</date>
    <rev>A</rev>
    <file>tags.sgml</file>
  </header>
  <module>tags</module>
  <modulesummary>Generate Emacs TAGS file from Erlang source files</modulesummary>
  <description>
    <p>A <c>TAGS</c> file is used by Emacs to find function and variable
      definitions in any source file in large projects.  This module can
      generate a <c>TAGS</c> file from Erlang source files.  It recognises
      functions, records, and macro definitions.</p>
  </description>
  <funcs>
    <func>
      <name>file(File [, Options])</name>
      <fsummary>Create a <c>TAGS</c>file for the file <c>File</c>.</fsummary>
      <desc>
        <p>Create a <c>TAGS</c> file for the file <c>File</c>.</p>
      </desc>
    </func>
    <func>
      <name>files(FileList [, Options])</name>
      <fsummary>Create a TAGS file for the files in the list<c>FileList</c>.</fsummary>
      <desc>
        <p>Create a TAGS file for the files in the list
          <c>FileList</c>.</p>
      </desc>
    </func>
    <func>
      <name>dir(Dir [, Options])</name>
      <fsummary>Create a TAGS file for all files in directory<c>Dir</c>.</fsummary>
      <desc>
        <p>Create a TAGS file for all files in directory
          <c>Dir</c>.</p>
      </desc>
    </func>
    <func>
      <name>dirs(DirList [, Options])</name>
      <fsummary>Create a TAGS file for all files in any directory in<c>DirList</c>.</fsummary>
      <desc>
        <p>Create a TAGS file for all files in any directory in
          <c>DirList</c>.</p>
      </desc>
    </func>
    <func>
      <name>subdir(Dir [, Options])</name>
      <fsummary>Descend recursively down the directory <c>Dir</c>and create a <c>TAGS</c>file based on all files found.</fsummary>
      <desc>
        <p>Descend recursively down the directory <c>Dir</c> and
          create a <c>TAGS</c> file based on all files found.</p>
      </desc>
    </func>
    <func>
      <name>subdirs(DirList [, Options])</name>
      <fsummary>Descend recursively down all the directories in<c>DirList</c>and create a <c>TAGS</c>file based on all files found.</fsummary>
      <desc>
        <p>Descend recursively down all the directories in
          <c>DirList</c> and create a <c>TAGS</c> file based on all
          files found.</p>
      </desc>
    </func>
    <func>
      <name>root([Options])</name>
      <fsummary>Create a <c>TAGS</c>file covering all files in the Erlang distribution.</fsummary>
      <desc>
        <p>Create a <c>TAGS</c> file covering all files in
          the Erlang distribution.</p>
      </desc>
    </func>
  </funcs>

  <section>
    <title>OPTIONS</title>
    <p>The functions above have an optional argument, <c>Options</c>.  It is a
      list which can contain the following elements:</p>
    <list type="bulleted">
      <item><c>{outfile, NameOfTAGSFile}</c> Create a <c>TAGS</c> file named
      <c>NameOfTAGSFile</c>.
      </item>
      <item><c>{outdir, NameOfDirectory}</c> Create a file named
      <c>TAGS</c> in the directory <c>NameOfDirectory</c>.</item>
    </list>
    <p>The default behaviour is to create a file named <c>TAGS</c> in the current
      directory.</p>
  </section>

  <section>
    <title>Examples</title>
    <list type="bulleted">
      <item>
        <p><c>tags:root([{outfile, "root.TAGS"}]).</c>          <br></br>
</p>
        <p>This command will create a file named <c>root.TAGS</c> in the current
          directory.  The file will contain references to all Erlang source
          files in the Erlang distribution.</p>
      </item>
      <item>
        <p><c>tags:files(["foo.erl", "bar.erl", "baz.erl"], [{outdir, "../projectdir"}]). </c>          <br></br>
</p>
        <p>Here we create file named <c>TAGS</c> placed it in the directory
          <c>../projectdir</c>.  The file contains information about the
          functions, records, and macro definitions of the three files.</p>
      </item>
    </list>
  </section>

  <section>
    <title>SEE ALSO</title>
    <list type="bulleted">
      <item>Richard M. Stallman.  GNU Emacs Manual, chapter "Editing Programs",
       section "Tag Tables".  Free Software Foundation, 1995.
      </item>
      <item>Anders Lindgren.  The Erlang editing mode for Emacs. Ericsson,
       1998.</item>
    </list>
  </section>
</erlref>

