branch: elpa/tablist commit 9c0c56dc7022401021323ca57fc1abdb702e9c61 Author: Andreas Politz <poli...@hochschule-trier.de> Commit: Andreas Politz <poli...@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