syscfg/emacs/module/module-consult-projectile.el

43 lines
1.6 KiB
EmacsLisp

;;; module-consult-projectile.el --- consult/projectile integration
;;;
;;; Commentary:
;;;
;;; Integrate consult with projectile.
;;;
;;; Code:
(require 'module-pkg)
(require 'module-consult)
(require 'module-projectile)
(pkg/require 'consult-projectile)
(with-eval-after-load 'consult-projectile
(defun my-consult-projectile-find-file ()
"Use consult-projectile-find-file, consult-find-file outside of project."
(interactive)
(if (projectile-project-p)
(consult-projectile-find-file)
(consult-projectile)))
(pkg/with-eval-after-load
(consult projectile)
(advice-add 'projectile-find-file :override #'consult-projectile-find-file)
(advice-add 'projectile-find-dir :override #'consult-projectile-find-dir)
(advice-add 'projectile-switch-to-buffer :override #'consult-projectile-switch-to-buffer)
(advice-add 'projectile-switch-project :override #'consult-projectile-switch-project))
(global-set-key (kbd "C-x p") projectile-command-map)
(define-key projectile-command-map (kbd "f") #'consult-projectile-find-file)
(define-key projectile-command-map (kbd "d") #'consult-projectile-find-dir)
(define-key projectile-command-map (kbd "b") #'consult-projectile-switch-to-buffer)
(define-key projectile-command-map (kbd "s") #'consult-projectile-switch-project)
(define-key projectile-command-map (kbd "p") #'consult-projectile)
(define-key projectile-command-map (kbd "/") #'consult-ripgrep)
(define-key projectile-command-map (kbd "f") #'my-consult-projectile-find-file))
(provide 'module-consult-projectile)
;;; module-consult-projectile.el ends here.