emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/tablist 9c0c56d 22/60: * lisp/pdf-occur.el: New and improv


From: Philip Kaludercic
Subject: [nongnu] elpa/tablist 9c0c56d 22/60: * lisp/pdf-occur.el: New and improved asynchronous, multiple file occur.
Date: Sun, 1 Aug 2021 18:19:28 -0400 (EDT)

branch: elpa/tablist
commit 9c0c56dc7022401021323ca57fc1abdb702e9c61
Author: Andreas Politz <politza@hochschule-trier.de>
Commit: Andreas Politz <politza@hochschule-trier.de>

    * lisp/pdf-occur.el: New and improved asynchronous, multiple file occur.
    * lisp/pdf-isearch.el:(pdf-isearch-occur): New command.
    
    * lisp/tablist.el (tablist-generate-sorter): New macro
    
    * lisp/pdf-tools.el (pdf-tools-modes, pdf-tools-enabled-modes): Added
    occur global mode.
---
 tablist.el | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/tablist.el b/tablist.el
index b168c66..77e731c 100644
--- a/tablist.el
+++ b/tablist.el
@@ -1926,5 +1926,28 @@ AWINDOW is deleted."
     (tablist-window-attach newwin window)
     newwin))
 
+(defmacro tablist-generate-sorter (column compare-fn &optional read-fn)
+  "Generate a sort function for `tabulated-list' entries.
+
+Example:
+
+     \(tablist-generate-sorter 0 '< 'string-to-number\)
+
+would create a sort function sorting `tabulated-list-entries' on
+the 0-th column as numbers by the less-than relation."
+
+  (let ((column-sym (make-symbol "column"))
+        (compare-fn-sym (make-symbol "compare-fn"))
+        (read-fn-sym (make-symbol "read-fn")))
+    `(let ((,column-sym ,column)
+           (,compare-fn-sym ,compare-fn)
+           (,read-fn-sym (or ,read-fn 'identity)))
+       (lambda (e1 e2)
+         (funcall ,compare-fn-sym
+                  (funcall ,read-fn-sym
+                           (aref (cadr e1) ,column-sym))
+                  (funcall ,read-fn-sym
+                           (aref (cadr e2) ,column-sym)))))))
+
 (provide 'tablist)
 ;;; tablist.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]