]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't sort xref's by default
authorJoão Távora <joaotavora@gmail.com>
Mon, 11 Feb 2019 21:33:49 +0000 (21:33 +0000)
committerJoão Távora <joaotavora@gmail.com>
Mon, 11 Feb 2019 21:33:49 +0000 (21:33 +0000)
But use a eglot-xref-lessp-function in case someone wants to tweak
this.

* eglot.el (eglot-xref-lessp-function): New variable.
(eglot--handling-xrefs): Use it.

GitHub-reference: fix https://github.com/joaotavora/eglot/issues/220

lisp/progmodes/eglot.el

index 79e414646b328ff07383ec74f8429e257ee243a1..4fdd5c4e5be42875b612926fdce8d1979162ab17 100644 (file)
@@ -1678,13 +1678,13 @@ DUMMY is ignored."
 (defvar eglot--temp-location-buffers (make-hash-table :test #'equal)
   "Helper variable for `eglot--handling-xrefs'.")
 
+(defvar eglot-xref-lessp-function #'ignore
+  "Compare two `xref-item' objects for sorting.")
+
 (defmacro eglot--handling-xrefs (&rest body)
   "Properly sort and handle xrefs produced and returned by BODY."
   `(unwind-protect
-       (sort (progn ,@body)
-             (lambda (a b)
-               (< (xref-location-line (xref-item-location a))
-                  (xref-location-line (xref-item-location b)))))
+       (sort (progn ,@body) eglot-xref-sort-function)
      (maphash (lambda (_uri buf) (kill-buffer buf)) eglot--temp-location-buffers)
      (clrhash eglot--temp-location-buffers)))