aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools/emacs/erlang.el
AgeCommit message (Collapse)Author
2012-08-31Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: lib/diameter/autoconf/vxworks/sed.general xcomp/README.md
2012-08-31Update copyright yearsBjörn-Egil Dahlberg
2012-08-13Merge branch 'maint'Fredrik Gustafsson
2012-08-07Fix highlighting of atoms ending with a dollar signMagnus Henoch
Like this: 'atom$'. In that example, the last single quote should be recognised as ending the atom. This needs a font-lock workaround similar to the one for strings.
2012-08-01Merge branch 'mh/remove-compilation-error-regexp'Henrik Nord
* mh/remove-compilation-error-regexp: Remove Erlang-specific compilation error regexp OTP-10168
2012-06-12Fix indentation of record fields in EmacsTomas Abrahamsson
In some situations, the indentation of record fields in Emacs was strange. This example below shows how Emacs previously would indent two similar pieces of code very differently: some_function_with_a_very_long_name() -> #'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{ field1=a, field2=b}. x() -> #some_record_name{ field1=a, field2=b}. This changes the indentation to be like below for both cases: some_function() -> #some_record{ field1=a, field2=b}.
2012-06-08Remove Erlang-specific compilation error regexpMagnus Henoch
The purpose of this regexp is to ensure that, when invoking the Erlang compiler inside Emacs through M-x compile, any error messages be turned into links jumping to the right line in the right source file. However, it seems like this works out of the box in modern Emacsen, and furthermore, using a non-standard regexp inhibits jumping to a certain column when this is provided by the compiler.
2011-09-15Fix misspelling of compatibilityTuncer Ayaz
2011-08-30Teach the emacs mode to compile yecc and leex filesTomas Abrahamsson
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.
2011-04-15Inhibit electric newline after "->" when inside a type specMagnus Henoch
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".
2011-03-11Update copyright yearsBjörn-Egil Dahlberg
2011-03-09Declare indentation options as "safe" in erlang-mode for EmacsMagnus Henoch
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.
2010-09-30Emacs erlang-mode: fix syntax highlighting of $ in two casesMagnus Henoch
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.
2010-06-01Improved indentation of old catch.Dan Gudmundsson
An example that didn't work previously. case Foo of {ok, X} -> ok; _ -> catch file:close(FD) end.
2010-06-01Added more type highlighting and fixed record indentation with types.Dan Gudmundsson
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() }).
2010-05-26Merge branch 'mh/fix-record-indentation' into devErlang/OTP
* mh/fix-record-indentation: Fix indentation of records with line breaks inside lists
2010-05-26Merge branch 'mh/inferior-erlang-cmd-uniq' into devErlang/OTP
* mh/inferior-erlang-cmd-uniq: inferior-erlang: specify command to run, uniquify buffer names
2010-05-26Merge branch 'mh/erlang-mode-imenu-arity' into devErlang/OTP
* mh/erlang-mode-imenu-arity: Let imenu distinguish functions by arity
2010-05-24Set erlang-mode-map when loading erlang.elMagnus Henoch
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.
2010-05-20Let imenu distinguish functions by arityMagnus Henoch
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}.
2010-05-18Fix indentation of records with line breaks inside listsMagnus Henoch
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.
2010-05-18inferior-erlang: specify command to run, uniquify buffer namesMagnus Henoch
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.
2010-05-03Remove usage of 'font-lock-preprocessor-face' if not availableDan Gudmundsson
i.e. in emacs-21
2010-03-15Fix another -spec() problemDan Gudmundsson
2010-03-15Fix electric semi-colon and tuples inside listsDan Gudmundsson
2010-02-15Merge branch 'dgud/emacs-mode' into ccase/r13b04_devErlang/OTP
* 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
2010-01-29Added the old style skeletons, and a variable to change.Dan Gudmundsson
2010-01-29Move code skeletons to a separate file.Dave Peticolas
Use the updated skeletons from the Erlware Mode.
2009-12-18Emacs: Added indentation inside parenthesisDan Gudmundsson
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),
2009-12-17More -spec indentation fixes.Dan Gudmundsson
2009-12-15Fixed indentation of -spec() -> Var :: type();Dan Gudmundsson
2009-12-15Added a indentation when using electric-comma.Dan Gudmundsson
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.
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP