diff options
author | Magnus Henoch <[email protected]> | 2011-04-14 15:49:32 +0000 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2011-04-15 09:48:31 +0200 |
commit | c0c600a58532b132b0b85d7a835ac485edb9a477 (patch) | |
tree | fce918026d559e7acabc040875501dd2c740a76a | |
parent | 27fc85fe624441a9c5754288aeac510c20a80695 (diff) | |
download | otp-c0c600a58532b132b0b85d7a835ac485edb9a477.tar.gz otp-c0c600a58532b132b0b85d7a835ac485edb9a477.tar.bz2 otp-c0c600a58532b132b0b85d7a835ac485edb9a477.zip |
Inhibit electric newline after "->" when inside a type spec
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".
-rw-r--r-- | lib/tools/emacs/erlang.el | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el index e1c0d31371..6728bef2a4 100644 --- a/lib/tools/emacs/erlang.el +++ b/lib/tools/emacs/erlang.el @@ -386,7 +386,8 @@ then no prototype is inserted. The test is performed by the function `erlang-test-criteria-list'.") (defvar erlang-electric-arrow-criteria - '(erlang-next-lines-empty-p + '(erlang-stop-when-in-type-spec + erlang-next-lines-empty-p erlang-at-end-of-function-p) "*List of functions controlling the arrow aspect of `erlang-electric-gt'. The functions in this list are called, in order, whenever a `>' @@ -4045,6 +4046,16 @@ This function is designed to be a member of a criteria list." nil))) +(defun erlang-stop-when-in-type-spec () + "Return `stop' when in a type spec line. + +This function is designed to be a member of a criteria list." + (save-excursion + (beginning-of-line) + (when (save-match-data (looking-at "-\\(spec\\|type\\)")) + 'stop))) + + (defun erlang-next-lines-empty-p () "Return non-nil if next lines are empty. |