about summary refs log tree commit diff
path: root/users/wpcarro/emacs/.emacs.d/wpc
diff options
context:
space:
mode:
Diffstat (limited to 'users/wpcarro/emacs/.emacs.d/wpc')
-rw-r--r--users/wpcarro/emacs/.emacs.d/wpc/bookmark.el27
-rw-r--r--users/wpcarro/emacs/.emacs.d/wpc/keybindings.el6
2 files changed, 18 insertions, 15 deletions
diff --git a/users/wpcarro/emacs/.emacs.d/wpc/bookmark.el b/users/wpcarro/emacs/.emacs.d/wpc/bookmark.el
index 26c20399e2d4..c5e3bf3ac965 100644
--- a/users/wpcarro/emacs/.emacs.d/wpc/bookmark.el
+++ b/users/wpcarro/emacs/.emacs.d/wpc/bookmark.el
@@ -21,7 +21,7 @@
 
 (require 'f)
 (require 'buffer)
-(require 'list)
+(require 'dash)
 (require 'string)
 (require 'set)
 (require 'constants)
@@ -66,21 +66,24 @@
      ((f-file? path)
       (funcall bookmark-handle-file path)))))
 
+(defun bookmark-install-kbd (b)
+  "Define two functions to explore B and assign them to keybindings."
+  (eval `(defun ,(intern (format "bookmark-visit-%s" (bookmark-label b))) ()
+           (interactive)
+           (find-file ,(bookmark-path b))))
+  (eval `(defun ,(intern (format "bookmark-browse-%s" (bookmark-label b))) ()
+           (interactive)
+           (bookmark-open ,b)))
+  (general-define-key
+   :prefix "<SPC>"
+   :states '(motion)
+   (format "J%s" (bookmark-kbd b)) `,(intern (format "bookmark-visit-%s" (bookmark-label b)))
+   (format "j%s" (bookmark-kbd b)) `,(intern (format "bookmark-browse-%s" (bookmark-label b)))))
 
 (defun bookmark-install-kbds ()
   "Install the keybindings defined herein."
   (->> bookmark-whitelist
-       (list-map
-        (lambda (b)
-          (general-define-key
-           :prefix "<SPC>"
-           :states '(normal)
-           (format "J%s" (bookmark-kbd b))
-           (lambda () (interactive) (find-file (bookmark-path b)))
-           (format "j%s" (bookmark-kbd b))
-           ;; TODO: Consider `cl-labels' so `which-key' minibuffer is more
-           ;; helpful.
-           (lambda () (interactive) (bookmark-open b)))))))
+       (-map #'bookmark-install-kbd)))
 
 (provide 'bookmark)
 ;;; bookmark.el ends here
diff --git a/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el b/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el
index 25c026c09e43..a90da9af5975 100644
--- a/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el
+++ b/users/wpcarro/emacs/.emacs.d/wpc/keybindings.el
@@ -53,9 +53,6 @@
 ;; General Keybindings
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-;; Install KBDs like <SPC>jb to search through my monorepo.
-(bookmark-install-kbds)
-
 ;; Ensure that evil's command mode behaves with readline bindings.
 (general-define-key
  :keymaps 'evil-ex-completion-map
@@ -383,5 +380,8 @@
  "<SPC>" #'buffer-show-previous
  "k" #'kill-buffer)
 
+;; Install KBDs like <SPC>jb to search through my monorepo.
+(bookmark-install-kbds)
+
 (provide 'keybindings)
 ;;; keybindings.el ends here