diff options
author | Magnus Henoch <[email protected]> | 2010-05-20 22:05:40 +0100 |
---|---|---|
committer | Magnus Henoch <[email protected]> | 2010-05-20 22:05:40 +0100 |
commit | 85d5b7345e10720d10ea63d79bca282bcd44cdf7 (patch) | |
tree | 9fe067808dc4506d0e830b4e9d8427fb9c43bb62 | |
parent | c0895d14994c5e98b1171b0174c70a0244d52f86 (diff) | |
download | otp-85d5b7345e10720d10ea63d79bca282bcd44cdf7.tar.gz otp-85d5b7345e10720d10ea63d79bca282bcd44cdf7.tar.bz2 otp-85d5b7345e10720d10ea63d79bca282bcd44cdf7.zip |
Let imenu distinguish functions by arity
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}.
-rw-r--r-- | lib/tools/emacs/erlang.el | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el index 0132587d28..8c3afd7f66 100644 --- a/lib/tools/emacs/erlang.el +++ b/lib/tools/emacs/erlang.el @@ -1402,7 +1402,7 @@ Other commands: (set (make-local-variable 'imenu-prev-index-position-function) 'erlang-beginning-of-function) (set (make-local-variable 'imenu-extract-index-name-function) - 'erlang-get-function-name) + 'erlang-get-function-name-and-arity) (set (make-local-variable 'tempo-match-finder) "[^-a-zA-Z0-9_]\\([-a-zA-Z0-9_]*\\)\\=") (set (make-local-variable 'beginning-of-defun-function) @@ -3505,6 +3505,13 @@ Normally used in conjunction with `erlang-beginning-of-clause', e.g.: res) (error nil))))) +(defun erlang-get-function-name-and-arity () + "Return the name and arity of the function at point, or nil. +The return value is a string of the form \"foo/1\"." + (let ((name (erlang-get-function-name)) + (arity (erlang-get-function-arity))) + (and name arity (format "%s/%d" name arity)))) + (defun erlang-get-function-arguments () "Return arguments of current function, or nil." (if (not (looking-at (eval-when-compile |