From 15867bb63d1d4109780652c5b3580870857b27b9 Mon Sep 17 00:00:00 2001
From: Johan Claesson <johanclaesson@bredband.net>
Date: Tue, 5 Sep 2017 22:06:38 +0200
Subject: Emacs: Guess type of tag definition in Emacs 24

This concerns tag finding commands in Emacs 24.  If the word at point
is preceded by a hash suggest as default a jump to a record
definition.  If it is a question mark suggest a macro.  Otherwise
assume it is a function.  If it is not a qualified call assume it is a
local function.
---
 lib/tools/emacs/erlang.el | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

(limited to 'lib/tools')

diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el
index 012de479d3..f3c3a6bae1 100644
--- a/lib/tools/emacs/erlang.el
+++ b/lib/tools/emacs/erlang.el
@@ -2083,12 +2083,6 @@ This function is aware of imported functions."
            (when funcname
              (erlang-man-find-function (current-buffer) funcname))))))
 
-(defun erlang-default-function-or-module ()
-  (let ((id (erlang-get-identifier-at-point)))
-    (if (eq (erlang-id-kind id) 'qualified-function)
-        (format "%s:%s" (erlang-id-module id) (erlang-id-name id))
-      (erlang-id-name id))))
-
 
 ;; Should the defadvice be at the top level, the package `advice' would
 ;; be required.  Now it is only required when this functionality
@@ -3792,6 +3786,21 @@ of arguments could be found, otherwise nil."
   (nth 3 (erlang-id-to-list id)))
 
 
+(defun erlang-default-function-or-module ()
+  (erlang-with-id (kind module name) (erlang-get-identifier-at-point)
+    (let ((x (cond ((eq kind 'module)
+                    (format "%s:" name))
+                   ((eq kind 'record)
+                    (format "-record(%s" name))
+                   ((eq kind 'macro)
+                    (format "-define(%s" name))
+                   (t
+                    name))))
+      (if module
+          (format "%s:%s" module x)
+        x))))
+
+
 ;; TODO: Escape single quotes inside the string without
 ;; replace-regexp-in-string.
 (defun erlang-add-quotes-if-needed (str)
-- 
cgit v1.2.3