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

FreeBSD Manual Pages

  
 
  

home | help
erlang.el(3)		   Erlang Module Definition		  erlang.el(3)

NAME
       erlang.el - Erlang mode for Emacs

DESCRIPTION
       Possibly	 the most important feature of an editor designed for program-
       mers is the ability to indent a line of code  in	 accordance  with  the
       structure of the	programming language. The Erlang mode does, of course,
       provide this feature. The layout	used is	based on the common use	of the
       language.  The  mode also provides things as syntax highlighting, elec-
       tric commands, module  name  verification,  comment  support  including
       paragraph filling, skeletons, tags support etc.

       In  the	following descriptions the use of the word Point means:	"Point
       can be seen as the position of the cursor. More precisely, the point is
       the  position between two characters while the cursor is	drawn over the
       character following the point".

INDENT
       The following command are directly available for	indentation.

	 * TAB (erlang-indent-command) - Indents the current line of code.

	 * M-C-\ (indent-region) - Indents all lines in	the region.

	 * M-l (indent-for-comment) - Insert a comment character to the	 right
	   of the code on the line (if any).

       Lines containing	comment	are indented differently depending on the num-
       ber of %-characters used:

	 * Lines with one %-character is indented to the right	of  the	 code.
	   The	column is specified by the variable comment-column, by default
	   column 48 is	used.

	 * Lines with two %-characters will be indented	to the same  depth  as
	   code	would have been	in the same situation.

	 * Lines with three of more %-characters are indented to the left mar-
	   gin.

	 * C-c C-q (erlang-indent-function) - Indents the current Erlang func-
	   tion.

	 * M-x erlang-indent-clause RET
	    -Indent the	current	Erlang clause.

	 * M-x erlang-indent-current-buffer RET	- Indent the entire buffer.

EDIT - FILL COMMENT
       When  editing  normal  text in text mode	you can	let Emacs reformat the
       text by the fill-paragraph command. This	command	will not work for com-
       ments since it will treat the comment characters	as words.

       The  Erlang editing mode	provides a command that	knows about the	Erlang
       comment structure and can be used to fill text paragraphs in  comments.
       Ex:

	     %%	This is	  just a very simple test to show
	     %%	how the	Erlang fill
	     %%	paragraph   command works.

       Clearly,	 the text is badly formatted. Instead of formatting this para-
       graph line by line, let's try erlang-fill-paragraph  by	pressing  M-q.
       The result is:

	     %%	This is	just a very simple test	to show	how the	Erlang fill
	     %%	paragraph command works.

EDIT - COMMENT/UNCOMMENT REGION
       C-c  C-c	will put comment characters at the beginning of	all lines in a
       marked region. If you want to have two comment  characters  instead  of
       one you can do C-u 2 C-c	C-c

       C-c C-u will undo a comment-region command.

EDIT - MOVING THE MARKER
	 * C-a M-a  (erlang-beginning-of-function) - Move the point to the be-
	   ginning of the current or preceding Erlang function.	 With  an  nu-
	   meric argument (ex C-u 2 C-a	M-a) the function skips	backwards over
	   this	many Erlang functions. Should the  argument  be	 negative  the
	   point  is  moved  to	 the beginning of a function below the current
	   function.

	 * M-C-a  (erlang-beginning-of-clause) - As above but  move  point  to
	   the beginning of the	current	or preceding Erlang clause.

	 * C-a	M-e  (erlang-end-of-function) -	Move to	the end	of the current
	   or following	Erlang function. With an numeric argument (ex C-u 2 C-
	   a  M-e)  the	 function  skips backwards over	this many Erlang func-
	   tions. Should the argument be negative the point is	moved  to  the
	   end of a function below the current function.

	 * M-C-e   (erlang-end-of-clause) - As above but move point to the end
	   of the current or following Erlang clause.

EDIT - MARKING
	 * C-c M-h (erlang-mark-function) - Put	the region around the  current
	   Erlang  function. The point is placed in the	beginning and the mark
	   at the end of the function.

	 * M-C-h  (erlang-mark-clause) Put the region around the  current  Er-
	   lang	 clause.  The point is placed in the beginning and the mark at
	   the end of the function.

EDIT - FUNCTION	HEADER COMMANDS
	 * C-c C-j (erlang-generate-new-clause)	- Create a new clause  in  the
	   current  Erlang function. The point is placed between the parenthe-
	   ses of the argument list.

	 * C-c C-y (erlang-clone-arguments) - Copy the function	 arguments  of
	   the preceding Erlang	clause.	This command is	useful when defining a
	   new clause with almost the same argument as the preceding.

EDIT - ARROWS
	 * C-c C-a (erlang-align-arrows) - aligns arrows after clauses	inside
	   a region.

		 Example:

		 sum(L)	-> sum(L, 0).
		 sum([H|T], Sum) -> sum(T, Sum + H);
		 sum([], Sum) -> Sum.

		 becomes:

		 sum(L)		 -> sum(L, 0).
		 sum([H|T], Sum) -> sum(T, Sum + H);
		 sum([], Sum)	 -> Sum.

SYNTAX HIGHLIGHTING
       The  syntax  highlighting  can be activated from	the Erlang menu. There
       are four	different alternatives:

	 * Off:	Normal black and white display.

	 * Level 1:  Function  headers,	 reserved  words,  comments,  strings,
	   quoted atoms, and character constants will be colored.

	 * Level  2: The above,	attributes, Erlang bif:s, guards, and words in
	   comments enclosed in	single quotes will be colored.

	 * Level 3: The	above, variables, records, and macros will be colored.
	   (This level is also known as	the Christmas tree level.)

TAGS
       For  the	tag commands to	work it	requires that you have generated a tag
       file. See Erlang	mode users guide

	 * M-.	(find-tag) - Find a function definition. The default value  is
	   the function	name under the point.

	 * Find	 Tag  (erlang-find-tag)	 - Like	the Elisp-function `find-tag'.
	   Capable of retrieving Erlang	modules. Tags  can  be	given  on  the
	   forms `tag',	`module:', `module:tag'.

	 * M-+ (erlang-find-next-tag) -	Find the next occurrence of tag.

	 * M-TAB (erlang-complete-tag) - Perform completion on the tag entered
	   in a	tag search. Completes to the set of names listed in  the  cur-
	   rent	tags table.

	 * Tags	aprops (tags-apropos) -	Display	list of	all tags in tags table
	   REGEXP matches.

	 * C-x t s (tags-search) - Search through all files listed in tags ta-
	   ble for match for REGEXP. Stops when	a match	is found.

SKELETONS
       A skeleton is a piece of	pre-written code that can be inserted into the
       buffer. Erlang mode comes with  a  set  of  predefined  skeletons.  The
       skeletons  can be accessed either from the Erlang menu of from commands
       named tempo-template-erlang-*, as the skeletons is  defined  using  the
       standard	Emacs package "tempo". Here follows a brief description	of the
       available skeletons:

	 * Simple skeletons: If, Case, Receive,	Receive	After, Receive Loop  -
	   Basic code constructs.

	 * Header  elements:  Module,  Author -	These commands insert lines on
	   the form -module(xxx).  and -author('my@home').. They can  be  used
	   directly,  but  are also used as part of the	full headers described
	   below.

	 * Full	Headers: Small (minimum	requirement), Medium (with fields  for
	   basic  information  about  the  module),  and  Large	Header (medium
	   header with some extra layout structure).

	 * Small Server	- skeleton for a simple	server not using OTP.

	 * Application - skeletons for the OTP application behavior

	 * Supervisor -	skeleton for the OTP supervisor	behavior

	 * Supervisor Bridge - skeleton	for the	OTP supervisor bridge behavior

	 * gen_server -	skeleton for the OTP gen_server	behavior

	 * gen_event - skeleton	for the	OTP gen_event behavior

	 * gen_fsm - skeleton for the OTP gen_fsm behavior

	 *
	    gen_statem (StateName/3) - skeleton	for the	OTP gen_statem	behav-
	   ior using state name	functions

	 *
	    gen_statem	(handle_event/4) - skeleton for	the OTP	gen_statem be-
	   havior using	one state function

	 * Library module - skeleton for a module that does  not  implement  a
	   process.

	 * Corba callback - skeleton for a Corba callback module.

	 * Erlang  test	 suite - skeleton for a	callback module	for the	erlang
	   test	server.

SHELL
	 * New shell (erlang-shell) - Starts a new Erlang shell.

	 * C-c C-z, (erlang-shell-display ) - Displays	an  Erlang  shell,  or
	   starts a new	one if there is	no shell started.

COMPILE
	 * C-c	C-k, (erlang-compile) -	Compiles the Erlang module in the cur-
	   rent	buffer.	You can	also use C-u C-c C-k to	debug compile the mod-
	   ule with the	debug options debug_info and export_all.

	 * C-c C-l, (erlang-compile-display) - Display compilation output.

	 * C-u C-x` Start parsing the compiler output from the beginning. This
	   command will	place the point	on the line where the first error  was
	   found.

	 * C-x`	(erlang-next-error) - Move the point on	to the next error. The
	   buffer displaying the compilation errors will be  updated  so  that
	   the current error will be visible.

MAN
       On  unix	 you  can view the manual pages	in emacs. In order to find the
       manual pages, the variable `erlang-root-dir' should  be	bound  to  the
       name  of	 the  directory	 containing  the Erlang	installation. The name
       should not include the final slash. Practically,	you should add a  line
       on the following	form to	your ~/.emacs,

	     (setq erlang-root-dir "/the/erlang/root/dir/goes/here")

STARTING IMENU
	 * M-x	imenu-add-to-menubar  RET - This command will create the IMenu
	   menu	containing all the functions in	the current buffer.The command
	   will	 ask  you  for	a suitable name	for the	menu. Not supported by
	   Xemacs.

VERSION
	 * M-x erlang-version RET - This command displays the  version	number
	   of  the  Erlang editing mode. Remember to always supply the version
	   number when asking questions	about the Erlang mode.

Ericsson AB			   tools 3.1			  erlang.el(3)

NAME | DESCRIPTION | INDENT | EDIT - FILL COMMENT | EDIT - COMMENT/UNCOMMENT REGION | EDIT - MOVING THE MARKER | EDIT - MARKING | EDIT - FUNCTION HEADER COMMANDS | EDIT - ARROWS | SYNTAX HIGHLIGHTING | TAGS | SKELETONS | SHELL | COMPILE | MAN | STARTING IMENU | VERSION

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

home | help