Fix #2839: fix xref backend for lookup handlers

This commit is contained in:
Henrik Lissner 2020-04-08 15:16:50 -04:00
parent 73f89fd907
commit fbbc7535ea
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -166,23 +166,25 @@ This can be passed nil as its second argument to unset handlers for MODES. e.g.
;; ;;
;;; Lookup backends ;;; Lookup backends
(defun +lookup--xref-show (fn identifier) (defun +lookup--xref-show (fn identifier &optional show-fn)
(let ((xrefs (funcall fn (let ((xrefs (funcall fn
(xref-find-backend) (xref-find-backend)
identifier))) identifier)))
(when xrefs (when xrefs
(xref--show-xrefs xrefs nil) (funcall (or show-fn #'xref--show-defs)
(lambda () xrefs)
nil)
(if (cdr xrefs) (if (cdr xrefs)
'deferred 'deferred
t)))) t))))
(defun +lookup-xref-definitions-backend-fn (identifier) (defun +lookup-xref-definitions-backend-fn (identifier)
"Non-interactive wrapper for `xref-find-definitions'" "Non-interactive wrapper for `xref-find-definitions'"
(+lookup--xref-show 'xref-backend-definitions identifier)) (+lookup--xref-show 'xref-backend-definitions identifier #'xref--show-defs))
(defun +lookup-xref-references-backend-fn (identifier) (defun +lookup-xref-references-backend-fn (identifier)
"Non-interactive wrapper for `xref-find-references'" "Non-interactive wrapper for `xref-find-references'"
(+lookup--xref-show 'xref-backend-references identifier)) (+lookup--xref-show 'xref-backend-references identifier #'xref--show-xrefs))
(defun +lookup-dumb-jump-backend-fn (_identifier) (defun +lookup-dumb-jump-backend-fn (_identifier)
"Look up the symbol at point (or selection) with `dumb-jump', which conducts a "Look up the symbol at point (or selection) with `dumb-jump', which conducts a