aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes
diff options
context:
space:
mode:
authorjave2015-01-05 14:12:26 +0100
committerjave2015-01-05 14:12:26 +0100
commit5a0d5b71d55c73573c331e1e1a1dde9f206966e1 (patch)
treeabe791ef1dd1838121b43ab63aea630bd439a842 /lisp/progmodes
parent9681f300de4dddb250770d18dc417ec0027beb94 (diff)
parentc477f2073018ed4deb3810059c1032c1709164fa (diff)
downloademacs-5a0d5b71d55c73573c331e1e1a1dde9f206966e1.tar.gz
emacs-5a0d5b71d55c73573c331e1e1a1dde9f206966e1.zip
Merge branch 'master' into xwidget
Diffstat (limited to 'lisp/progmodes')
-rw-r--r--lisp/progmodes/xref.el19
1 files changed, 18 insertions, 1 deletions
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 7bc6500a8de..41b70c7eff2 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -405,6 +405,21 @@ WINDOW controls how the buffer is displayed:
405(defconst xref-buffer-name "*xref*" 405(defconst xref-buffer-name "*xref*"
406 "The name of the buffer to show xrefs.") 406 "The name of the buffer to show xrefs.")
407 407
408(defvar xref--button-map
409 (let ((map (make-sparse-keymap)))
410 (define-key map [(control ?m)] #'xref-goto-xref)
411 (define-key map [mouse-1] #'xref-goto-xref)
412 (define-key map [mouse-2] #'xref--mouse-2)
413 map))
414
415(defun xref--mouse-2 (event)
416 "Move point to the button and show the xref definition."
417 (interactive "e")
418 (mouse-set-point event)
419 (forward-line 0)
420 (xref--search-property 'xref-location)
421 (xref-show-location-at-point))
422
408(defun xref--insert-xrefs (xref-alist) 423(defun xref--insert-xrefs (xref-alist)
409 "Insert XREF-ALIST in the current-buffer. 424 "Insert XREF-ALIST in the current-buffer.
410XREF-ALIST is of the form ((GROUP . (XREF ...)) ...). Where 425XREF-ALIST is of the form ((GROUP . (XREF ...)) ...). Where
@@ -417,7 +432,9 @@ GROUP is a string for decoration purposes and XREF is an
417 (with-slots (description location) xref 432 (with-slots (description location) xref
418 (xref--insert-propertized 433 (xref--insert-propertized
419 (list 'xref-location location 434 (list 'xref-location location
420 'face 'font-lock-keyword-face) 435 'face 'font-lock-keyword-face
436 'mouse-face 'highlight
437 'keymap xref--button-map)
421 description)) 438 description))
422 (when (or more1 more2) 439 (when (or more1 more2)
423 (insert "\n"))))) 440 (insert "\n")))))