summaryrefslogtreecommitdiff
path: root/lisp/servall-results.el
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2022-09-13 12:29:36 +1000
committerYuchen Pei <hi@ypei.me>2022-09-13 12:29:36 +1000
commit3fb5ca12a4c454887f3310c386c3dcbf9a4f3f9c (patch)
tree1503a11dffd4dd264d815de3e9016ef73e20594e /lisp/servall-results.el
parent0badf7a7160e297b04bf198d23e890bce2629a57 (diff)
Separating out results and ytdl to their own files
Diffstat (limited to 'lisp/servall-results.el')
-rw-r--r--lisp/servall-results.el35
1 files changed, 35 insertions, 0 deletions
diff --git a/lisp/servall-results.el b/lisp/servall-results.el
new file mode 100644
index 0000000..33a1461
--- /dev/null
+++ b/lisp/servall-results.el
@@ -0,0 +1,35 @@
+;; -*- lexical-binding: t; -*-
+(defvar servall-results-mode-map
+ (let ((map (make-sparse-keymap)))
+ (setq map (copy-keymap special-mode-map))
+ (define-key map "n" 'org-next-visible-heading)
+ (define-key map "g" 'servall-results-update)
+ (define-key map "\r" 'servall-results-open)
+ (define-key map "p" 'org-previous-visible-heading)
+ (define-key map "s" 'servall-results-re-search)
+ map))
+(defvar servall-results-buffer "*servall-results*")
+
+(define-derived-mode servall-results-mode org-mode "servall-results"
+ "Mode for showing and selecting results"
+ (setq-local buffer-read-only t
+ servall-results-update-function nil
+ servall-results-re-search-function nil
+ servall-results-open-function nil))
+
+(defun servall-results-update (&optional cb)
+ (interactive)
+ ;; assuming the update function takes a cb iff cb is nonnil.
+ (if cb
+ (funcall servall-results-update-function cb)
+ (funcall servall-results-update-function)))
+
+(defun servall-results-re-search ()
+ (interactive)
+ (call-interactively servall-results-re-search-function))
+
+(defun servall-results-open ()
+ (interactive)
+ (funcall servall-results-open-function))
+
+(provide 'servall-results)