summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ravi-init-completion.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/lisp/ravi-init-completion.el b/lisp/ravi-init-completion.el
index a722ad4..6adf270 100644
--- a/lisp/ravi-init-completion.el
+++ b/lisp/ravi-init-completion.el
@@ -400,5 +400,30 @@ INITIAL will be used as the initial input, if given."
(user-error "No symbol at point or documentation not found")))
)
+(use-package consult-dir
+ :commands (consult-dir)
+ :after (:any selectrum vertico)
+ :init
+ (ravi/bind-key-selection-system-map "C-x C-d" #'consult-dir)
+ (ravi/bind-key-selection-system-map "C-x C-j" #'consult-dir-jump-file)
+ :bind (("C-x C-d" . consult-dir))
+ :config
+ (setq consult-dir-project-list-function #'consult-dir-projectile-dirs)
+
+ ;; Since we use fasd, use it as a directory source too
+ (when-let ((fasd (executable-find "fasd")))
+ (defun consult-dir--fasd-dirs ()
+ "Return list of fasd dirs."
+ (split-string (shell-command-to-string (concat fasd " -ld")) "\n" t))
+ (defvar consult-dir--source-fasd
+ `(:name "Fasd dirs"
+ :narrow ?f
+ :category file
+ :face consult-file
+ :history file-name-history
+ :items ,#'consult-dir--fasd-dirs)
+ "Fasd directory source for `consult-dir'.")
+ (add-to-list 'consult-dir-sources 'consult-dir--source-fasd t)))
+
(provide 'ravi-init-completion)
;;; ravi-init-completion.el ends here