aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools/emacs
diff options
context:
space:
mode:
authorDan Gudmundsson <[email protected]>2017-09-12 09:58:28 +0200
committerDan Gudmundsson <[email protected]>2017-09-12 09:58:28 +0200
commit39c3d2ed3f6f7c15e7f726f0cb444d2b79775146 (patch)
tree1921809b11e18a0dbdb2b151efdc5fb4cfc4e0cc /lib/tools/emacs
parent04541e8aca196dc76ecc585244ee168c37ddeec5 (diff)
parent54d87b64ba447371fb51f1ad7e773317e684843f (diff)
downloadotp-39c3d2ed3f6f7c15e7f726f0cb444d2b79775146.tar.gz
otp-39c3d2ed3f6f7c15e7f726f0cb444d2b79775146.tar.bz2
otp-39c3d2ed3f6f7c15e7f726f0cb444d2b79775146.zip
Merge branch 'maint'
* maint: Emacs: Update erlang-xref-find-definitions-module for Emacs 26 Emacs: Guess type of tag definition in Emacs 24
Diffstat (limited to 'lib/tools/emacs')
-rw-r--r--lib/tools/emacs/erlang.el28
1 files changed, 21 insertions, 7 deletions
diff --git a/lib/tools/emacs/erlang.el b/lib/tools/emacs/erlang.el
index 46256daca9..0cb6c3028f 100644
--- a/lib/tools/emacs/erlang.el
+++ b/lib/tools/emacs/erlang.el
@@ -2089,12 +2089,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
@@ -3798,6 +3792,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)
@@ -5005,9 +5014,10 @@ considered first when it is time to jump to the definition.")
(and (fboundp 'xref-make)
(fboundp 'xref-make-file-location)
(let* ((first-time t)
+ (cbuf (current-buffer))
xrefs matching-files)
(save-excursion
- (while (visit-tags-table-buffer (not first-time))
+ (while (erlang-visit-tags-table-buffer (not first-time) cbuf)
(setq first-time nil)
(let ((files (tags-table-files)))
(while files
@@ -5023,6 +5033,10 @@ considered first when it is time to jump to the definition.")
(setq files (cdr files))))))
(nreverse xrefs))))
+(defun erlang-visit-tags-table-buffer (cont cbuf)
+ (if (< emacs-major-version 26)
+ (visit-tags-table-buffer cont)
+ (visit-tags-table-buffer cont cbuf)))
(defun erlang-xref-find-definitions-module-tag (module
tag