branch: master
commit aa41ff2cfe5b10494814a2a5fc8f25a086a23d05
Author: Lukas Fürmetz <[email protected]>
Commit: Lukas Fürmetz <[email protected]>

    counsel-mark-ring: sort by location
---
 counsel.el | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/counsel.el b/counsel.el
index 59bbd07..d2dd1a7 100644
--- a/counsel.el
+++ b/counsel.el
@@ -2413,15 +2413,17 @@ The face can be customized through 
`counsel-org-goto-face-style'."
            (let ((padding (length (format "%s: " (line-number-at-pos 
(eobp))))))
              (save-mark-and-excursion
               (goto-char (point-min))
-              (mapcar (lambda (mark)
-                        (let* ((position (marker-position mark))
-                               (line-number (line-number-at-pos position))
-                               (line-marker (counsel--pad (format "%s:" 
line-number) padding))
-                               (bol (point-at-bol line-number))
-                               (eol (point-at-eol line-number))
-                               (line (buffer-substring bol eol)))
-                          (cons (format "%s%s" line-marker line) position)))
-                      (cl-remove-duplicates mark-ring :test #'equal)))))))
+              (sort (mapcar (lambda (mark)
+                              (let* ((position (marker-position mark))
+                                     (line-number (line-number-at-pos 
position))
+                                     (line-marker (counsel--pad (format "%s:" 
line-number) padding))
+                                     (bol (point-at-bol line-number))
+                                     (eol (point-at-eol line-number))
+                                     (line (buffer-substring bol eol)))
+                                (cons (format "%s%s" line-marker line) 
position)))
+                            (cl-remove-duplicates mark-ring :test #'equal))
+                    (lambda (m1 m2)
+                      (< (cdr m1) (cdr m2)))))))))
     (ivy-read "Marks: " candidates
               :action (lambda (elem)
                         (goto-char (cdr elem))))))

Reply via email to