Age | Commit message (Collapse) | Author |
|
|
|
If visiting a .yrl or .xrl file in emacs with erlang-mode,
then the `erlang-compile' function (normally bound to C-c C-k),
now knows how to compile yecc and leex files, and then, if that
compilation succeeds, also compiles the resulting .erl files.
Also introduce a `erlang-compile-command-function-alist'
to make it possible to hook in other functions for computing
compilation commands/expressions, depending on file name.
|
|
The Erlang mode for Emacs inserts a newline after every "->", which
saves you one keystroke when writing a function, but that is
inappropriate when writing a type spec, as you'd normally keep the
spec on one line. This change inhibits the automatic insertion when
the current line starts with "-spec" or "-type".
|
|
|
|
Emacs has a facility for setting options on a per-file basis based on
comments in the source file. By default, all options are considered
"unsafe", and the user is queried before the variable is set. This
patch declares the variables erlang-indent-level, erlang-indent-guard
and erlang-argument-indent to be safe, if the value specified in the
source file is valid.
Such declarations usually look like this:
%% -*- erlang-indent-level: 2 -*-
and appear on the first line of the file.
|
|
A string whose last character is a dollar sign used to make the syntax
highlighter believe that the string never ends, breaking highlighting
of following code:
-vsn("$Revision: 42 $").
And the double quote as a character constant with a (superfluous)
backslash used to make the syntax highlighter believe that a new
string started:
foo() ->
$\".
This change fixes both problems by adding two regexps to
font-lock-syntactic-keywords in erlang-font-lock-init.
One case that is still broken is when a multi-line string ends with a
dollar sign:
bar() ->
"This multi-line string
ends with a $".
baz() ->
this_gets_incorrectly_highlighted.
|
|
An example that didn't work previously.
case Foo of
{ok, X} ->
ok;
_ ->
catch file:close(FD)
end.
|
|
Type highlighting reported by Jay Nelson
non_neg_integer() will highlight purple but pos_integer() does not.
Closing record indentation problem reported by Maxim Treskin:
-record(state, {
sequence_number = 1 :: integer()
}).
|
|
* mh/fix-record-indentation:
Fix indentation of records with line breaks inside lists
|
|
* mh/inferior-erlang-cmd-uniq:
inferior-erlang: specify command to run, uniquify buffer names
|
|
* mh/erlang-mode-imenu-arity:
Let imenu distinguish functions by arity
|
|
Create and assign the erlang-mode keymap to erlang-mode-map once
erlang.el is loaded, not the first time it is used. This way of doing
it follows the Emacs Lisp convention described at
http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips-for-Defining.html
and also makes it easier for users to customize the keymap.
Remove the now unneeded functions erlang-keymap-init and
erlang-mode-commands.
Also move the definition of inferior-erlang-use-cmm, so it is
available when defining erlang-mode-map.
|
|
Make the function names used by M-x imenu contain the function arity
as well as the name. This makes it possible to jump to all functions
of the same name, as opposed to only the one that is defined first.
For example, in the following module there is now a way to jump
directly to foo/1:
-module(foo).
foo() ->
ok.
bar() ->
error.
foo(A) ->
{ok, A}.
|
|
Trying to indent this piece of code by hitting TAB on each line:
foo() ->
[#foo{
foo = foo}].
used to cause an error. Fix by ignoring errors when trying to skip
backwards from a record.
Also add this test case to test.erl.orig and test.erl.indented.
|
|
Add a new feature to the command inferior-erlang: when called with a
prefix argument, prompt for the command to execute to start the Erlang
shell. When possible (i.e., in Emacs 23 and later), allow tab
completion as in a normal shell.
Also create the shell buffer in such a way that, if
uniquify-buffer-name-style is not nil and several Erlang shell buffers
are started in different directories, the names of those buffers
reflect their working directories instead of being *erlang*,
*erlang*<2>, etc.
|
|
i.e. in emacs-21
|
|
|
|
|
|
* dgud/emacs-mode:
Added the old style skeletons, and a variable to change.
Move code skeletons to a separate file.
OTP-8446 dgud/emacs-mode
|
|
|
|
Use the updated skeletons from the Erlware Mode.
|
|
Used in records or tuple creation:
-record(record3, {a = 8#42423 bor
8#4234,
b = 8#5432
bor 2#1010101
c = 123 +
234,
d}).
and in functions calls
call(2#42423 bor
#4234,
2#5432,
other_arg),
|
|
|
|
|
|
In the following code
case X of foo -> 25
end,
Automatically indent the line you stand on (end,) before
adding newline and indent again.
That way 'end' will be indented correctly after the comma is written.
|
|
|