Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
erl_tidy(3)		   Erlang Module Definition		   erl_tidy(3)

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.

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  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(3), 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()) -_ 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()]
		 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 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 1.6.18		   erl_tidy(3)

NAME | DESCRIPTION | EXPORTS | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=erl_tidy&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help