about summary refs log tree commit diff
path: root/configs/shared/.emacs.d/wpc/ivy-helpers.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/.emacs.d/wpc/ivy-helpers.el')
-rw-r--r--configs/shared/.emacs.d/wpc/ivy-helpers.el31
1 files changed, 31 insertions, 0 deletions
diff --git a/configs/shared/.emacs.d/wpc/ivy-helpers.el b/configs/shared/.emacs.d/wpc/ivy-helpers.el
new file mode 100644
index 000000000000..c71a907a20c1
--- /dev/null
+++ b/configs/shared/.emacs.d/wpc/ivy-helpers.el
@@ -0,0 +1,31 @@
+;;; ivy-helpers.el --- More interfaces to ivy -*- lexical-binding: t -*-
+;; Author: William Carroll <wpcarro@gmail.com>
+
+;;; Commentary:
+;; Hopefully to improve my workflows.
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Dependencies
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'alist)
+(require 'tuple)
+(require 'string)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Library
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(cl-defun ivy-helpers/kv (prompt kv f)
+  "PROMPT users with the keys in KV and return its corresponding value.  Calls F
+with the key and value from KV."
+  (ivy-read
+   prompt
+   kv
+   :require-match t
+   :action (lambda (entry)
+             (funcall f (car entry) (cdr entry)))))
+
+;;; Code:
+(provide 'ivy-helpers)
+;;; ivy-helpers.el ends here