Provided by: erlang-manpages_16.b.3-dfsg-1ubuntu2.2_all bug

NAME

       erl_tidy  -  Tidies  and  pretty-prints  Erlang source code, removing unused functions, updating obsolete
       constructs and function calls, etc.

DESCRIPTION

       Tidies and pretty-prints Erlang source code, removing unused functions, updating obsolete constructs  and
       function calls, etc.

       Caveats:  It  is  possible  that  in  some intricate uses of macros, the automatic addition or removal of
       parentheses around uses or arguments could cause the resulting program to be rejected  by  the  compiler;
       however, we have found no such case in existing code. Programs defining strange macros can usually not be
       read by this program, and in those cases, no changes will be made.

       If you really, really want to, you may call it "Inga".

       Disclaimer: The author accepts no responsibility for errors introduced in code that has been processed by
       the  program.  It has been reasonably well tested, but the possibility of errors remains. Keep backups of
       your original code safely stored, until you feel confident that the new, modified code can be trusted.

EXPORTS

       dir() -> ok

              Equivalent to dir("").

       dir(Dir) -> ok

              Equivalent to dir(Dir, []).

       dir(Directory::filename(), Options::[term()]) -> ok

              Types:

                 filename() (see module file)

              Tidies Erlang source files in a directory and its subdirectories.

              Available options:

                {follow_links, boolean()}:
                  If the value is true, symbolic directory links will be followed. The default value is false.

                {recursive, boolean()}:
                  If the value is true, subdirectories will be visited recursively. The default value is true.

                {regexp, string()}:
                  The value denotes a regular expression (see module re). Tidying will only be applied to  those
                  regular  files whose names match this pattern. The default value is ".*\\.erl$", which matches
                  normal Erlang source file names.

                {test, boolean()}:
                  If the value is true, no files will be modified. The default value is false.

                {verbose, boolean()}:
                  If the value is true, progress messages will be output while the program  is  running,  unless
                  the quiet option is true. The default value when calling dir/2 is true.

              See the function file/2 for further options.

              See also: re(3erl), file/2.

       file(Name) -> ok

              Equivalent to file(Name, []).

       file(Name::filename(), Options::[term()]) -> ok

              Tidies an Erlang source code file.

              Available options are:

                {backup_suffix, string()}:
                  Specifies  the file name suffix to be used when a backup file is created; the default value is
                  ".bak" (cf. the backups option).

                {backups, boolean()}:
                  If the value is true, existing files will be renamed before new files are opened for  writing.
                  The  new  names  are  formed  by appending the string given by the backup_suffix option to the
                  original name. The default value is true.

                {dir, filename()}:
                  Specifies the name of the directory in which the output file is to be written. By default, the
                  current directory is used. If the value is an empty string, the current directory is used.

                {outfile, filename()}:
                  Specifies the name of the file (without suffix) to which the resulting source code  is  to  be
                  written. If this option is not specified, the Name argument is used.

                {printer, Function}:

                  * Function = (syntaxTree()) -> string()

                  Specifies  a  function for prettyprinting Erlang syntax trees. This is used for outputting the
                  resulting module definition. The function is assumed to return formatted text  for  the  given
                  syntax tree, and should raise an exception if an error occurs. The default formatting function
                  calls erl_prettypr:format/2.

                {test, boolean()}:
                  If  the value is true, no files will be modified; this is typically most useful if the verbose
                  flag is enabled, to generate reports about the  program  files  without  affecting  them.  The
                  default value is false.

              See the function module/2 for further options.

              See also: module/2, erl_prettypr:format/2.

       module(Forms) -> syntaxTree()

              Equivalent to module(Forms, []).

       module(Forms, Options::[term()]) -> syntaxTree()

              Types:

                 Forms = syntaxTree() | [syntaxTree()]
                 syntaxTree() (see module erl_syntax)

              Tidies a syntax tree representation of a module definition. The given Forms may be either a single
              syntax  tree  of type form_list, or a list of syntax trees representing "program forms". In either
              case, Forms must represent a single complete module definition. The returned syntax tree has  type
              form_list and represents a tidied-up version of the same source code.

              Available options are:

                {auto_export_vars, boolean()}:
                  If  the  value  is  true,  all matches "{V1, ..., Vn} = E" where E is a case-, if- or receive-
                  expression whose branches all  return  n-tuples  (or  explicitly  throw  exceptions)  will  be
                  rewritten to bind and export the variables V1, ..., Vn directly. The default value is false.

                  For example:

                                 {X, Y} = case ... of
                                              ... -> {17, foo()};
                                              ... -> {42, bar()}
                                          end

                  will be rewritten to:

                                 case ... of
                                     ... -> X = 17, Y = foo(), {X, Y};
                                     ... -> X = 42, Y = bar(), {X, Y}
                                 end

                {auto_list_comp, boolean()}:
                  If  the  value  is  true, calls to lists:map/2 and lists:filter/2 will be rewritten using list
                  comprehensions. The default value is true.

                {file, string()}:
                  Specifies the name of the file from which the source code was taken. This  is  only  used  for
                  generation of error reports. The default value is the empty string.

                {idem, boolean()}:
                  If  the  value  is  true,  all  options  that  affect  how the code is modified are set to "no
                  changes". For example, to  only  update  guard  tests,  and  nothing  else,  use  the  options
                  [new_guard_tests,  idem]. (Recall that options closer to the beginning of the list have higher
                  precedence.)

                {keep_unused, boolean()}:
                  If the value is true, unused functions will not be removed from the code. The default value is
                  false.

                {new_guard_tests, boolean()}:
                  If the value is true, guard tests will be updated to use the new names,  e.g.  "is_integer(X)"
                  instead of "integer(X)". The default value is true. See also old_guard_tests.

                {no_imports, boolean()}:
                  If  the  value  is true, all import statements will be removed and calls to imported functions
                  will be expanded to explicit remote calls. The default value is false.

                {old_guard_tests, boolean()}:
                  If the value is true, guard tests will be changed to use the old  names  instead  of  the  new
                  ones,  e.g.  "integer(X)"  instead of "is_integer(X)". The default value is false. This option
                  overrides the new_guard_tests option.

                {quiet, boolean()}:
                  If the value is true, all information messages and warning messages will  be  suppressed.  The
                  default value is false.

                {rename, [{{atom(), atom(), integer()}, {atom(), atom()}}]}:
                  The value is a list of pairs, associating tuples {Module, Name, Arity} with tuples {NewModule,
                  NewName},  specifying  renamings  of  calls  to remote functions. By default, the value is the
                  empty list.

                  The renaming affects only remote calls (also when disguised  by  import  declarations);  local
                  calls  within  a  module  are not affected, and no function definitions are renamed. Since the
                  arity cannot change, the new name is represented by  {NewModule,  NewName}  only.  Only  calls
                  matching  the specified arity will match; multiple entries are necessary for renaming calls to
                  functions that have the same module and function name, but different arities.

                  This option can also be used to override the default renaming  of  calls  which  use  obsolete
                  function names.

                {verbose, boolean()}:
                  If  the  value  is true, progress messages will be output while the program is running, unless
                  the quiet option is true. The default value is false.

AUTHORS

       Richard Carlsson <carlsson.richard@gmail.com>

                                               syntax_tools 1.6.12                                erl_tidy(3erl)