aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools
diff options
context:
space:
mode:
authorMagnus Henoch <[email protected]>2011-04-14 15:49:32 +0000
committerHenrik Nord <[email protected]>2011-04-15 09:48:31 +0200
commitc0c600a58532b132b0b85d7a835ac485edb9a477 (patch)
treefce918026d559e7acabc040875501dd2c740a76a /lib/tools
parent27fc85fe624441a9c5754288aeac510c20a80695 (diff)
downloadotp-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".
Diffstat (limited to 'lib/tools')
-rw-r--r--lib/tools/emacs/erlang.el13
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.