bionic (3) erl_tidy.3erl.gz

Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_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.

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 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(), [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_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.

                {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 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 2.1.4                                 erl_tidy(3erl)