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))))))