]> git.eshelyaron.com Git - emacs.git/commitdiff
Add xref-file-name-display
authorStephen Leake <stephen_leake@stephe-leake.org>
Wed, 17 Jul 2019 16:17:36 +0000 (09:17 -0700)
committerStephen Leake <stephen_leake@stephe-leake.org>
Wed, 17 Jul 2019 16:17:36 +0000 (09:17 -0700)
* lisp/progmodes/xref.el (xref-file-name-display): New user variable.
(xref-location-group): Use it.

* etc/NEWS: Mention it.

etc/NEWS
lisp/progmodes/xref.el

index 76ea1df8213e2dba121aba1ff6412fea7e0e6ca3..afdcf56b6c0233e7659afed1e20d39256c029343 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -397,6 +397,9 @@ mode they are described in the manual "(emacs) Display".
 +++
 ** 'progress-reporter-update' accepts a suffix string to display.
 
+---
+** New variable 'xref-file-name-display' controls the display of file
+names in xref buffers.
 
 \f
 * Editing Changes in Emacs 27.1
index 44934d44ebdf6637c66badf8f2141188017e0359..8dc4f3c4714ef3184a3c75a6033a2506a85f27a2 100644 (file)
@@ -98,6 +98,12 @@ This is typically the filename.")
 
 ;;;; Commonly needed location classes are defined here:
 
+(defcustom xref-file-name-display 'abs
+  "Style of file name display in *xref* buffers."
+  :type '(choice (const :tag "absolute file name" abs)
+                 (const :tag "nondirectory file name" nondirectory))
+  :version "27.1")
+
 ;; FIXME: might be useful to have an optional "hint" i.e. a string to
 ;; search for in case the line number is slightly out of date.
 (defclass xref-file-location (xref-location)
@@ -126,7 +132,9 @@ Line numbers start from 1 and columns from 0.")
           (point-marker))))))
 
 (cl-defmethod xref-location-group ((l xref-file-location))
-  (oref l file))
+  (cl-ecase xref-file-name-display
+    (abs (oref l file))
+    (nondirectory (file-name-nondirectory (oref l file)))))
 
 (defclass xref-buffer-location (xref-location)
   ((buffer :type buffer :initarg :buffer)