erl_tidy(3)



erl_tidy(3erl)             Erlang Module Definition             erl_tidy(3erl)

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 au-
       tomatic addition or removal of parentheses  around  uses  or  arguments
       could  cause the resulting program to be rejected by the compiler; how-
       ever, 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.

DATA TYPES
         filename() = file:filename():

         syntaxTree() = erl_syntax:syntaxTree():

           An abstract syntax tree. See the erl_syntax module for details.

EXPORTS
       dir() -> ok

              Equivalent to dir("").

       dir(Dir) -> ok

              Equivalent to dir(Dir, []).

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

              Tidies Erlang source files in a directory  and  its  subdirecto-
              ries.

              Available options:

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

                {recursive, boolean()}:
                  If the value is true, subdirectories will be visited  recur-
                  sively. 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 op-
                  tion).

                {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(), [term()]) -> 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_pret-
                  typr: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.

                {stdout, boolean()}:
                  If  the  value is true, instead of the file being written to
                  disk it will be printed to  stdout.  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()]

              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 di-
                  rectly. 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:fil-
                  ter/2  will  be rewritten using list comprehensions. The de-
                  fault 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 re-
                  ports. 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 {NewMod-
                  ule, 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 renam-
                  ing 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 2.3                 erl_tidy(3erl)

Man(1) output converted with man2html
list of all man pages