cp-mode: use native projectile keymaps
This commit is contained in:
parent
a091875789
commit
b1484297c3
2 changed files with 54 additions and 30 deletions
|
|
@ -1361,28 +1361,27 @@ If not inside a project, call `counsel-projectile-switch-project'."
|
|||
|
||||
;;;; counsel-projectile-mode
|
||||
|
||||
(defvar counsel-projectile-command-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map projectile-command-map)
|
||||
(define-key map (kbd "s r") 'counsel-projectile-rg)
|
||||
(define-key map (kbd "O c") 'counsel-projectile-org-capture)
|
||||
(define-key map (kbd "O a") 'counsel-projectile-org-agenda)
|
||||
(define-key map (kbd "SPC") 'counsel-projectile)
|
||||
map)
|
||||
"Keymap for Counesl-Projectile commands after `projectile-keymap-prefix'.")
|
||||
(fset 'counsel-projectile-command-map counsel-projectile-command-map)
|
||||
(defcustom counsel-projectile-key-bindings
|
||||
'((projectile-find-file . counsel-projectile-find-file)
|
||||
(projectile-find-dir . counsel-projectile-find-dir)
|
||||
(projectile-switch-to-buffer . counsel-projectile-switch-to-buffer)
|
||||
(projectile-grep . counsel-projectile-grep)
|
||||
(projectile-ag . counsel-projectile-ag)
|
||||
(projectile-switch-project . counsel-projectile-switch-project)
|
||||
(" " . counsel-projectile)
|
||||
("sr" . counsel-projectile-rg)
|
||||
("Oc" . counsel-projectile-org-capture)
|
||||
("Oa" . counsel-projectile-org-agenda))
|
||||
"Alist of counsel-projectile key bindings.
|
||||
|
||||
(defvar counsel-projectile-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map projectile-keymap-prefix 'counsel-projectile-command-map)
|
||||
(define-key map [remap projectile-find-file] 'counsel-projectile-find-file)
|
||||
(define-key map [remap projectile-find-dir] 'counsel-projectile-find-dir)
|
||||
(define-key map [remap projectile-switch-to-buffer] 'counsel-projectile-switch-to-buffer)
|
||||
(define-key map [remap projectile-grep] 'counsel-projectile-grep)
|
||||
(define-key map [remap projectile-ag] 'counsel-projectile-ag)
|
||||
(define-key map [remap projectile-switch-project] 'counsel-projectile-switch-project)
|
||||
map)
|
||||
"Keymap for Counsel-Projectile mode.")
|
||||
Each element is of the form \(KEY . DEF\) where KEY is either a
|
||||
key sequence to bind in `projectile-command-map' or a projectile
|
||||
command to remap in `projectile-mode-map', and DEF is the
|
||||
counsel-projectile command to which KEY is remapped or bound."
|
||||
:type '(alist :key-type (choice (function :tag "Projectile command")
|
||||
key-sequence)
|
||||
:value-type (function :tag "Counsel-projectile command"))
|
||||
:group 'counsel-projectile)
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode counsel-projectile-mode
|
||||
|
|
@ -1392,19 +1391,30 @@ With a prefix argument ARG, enable the mode if ARG is positive,
|
|||
and disable it otherwise. If called from Lisp, enable the mode
|
||||
if ARG is omitted or nil, and toggle it if ARG is `toggle'.
|
||||
|
||||
Counsel-Projectile mode triggers Projectile mode, remaps
|
||||
Projectile commands that have counsel replacements, and adds key
|
||||
bindings for Counsel-Projectile commands that have no Projectile
|
||||
counterpart.
|
||||
Counsel-Projectile mode turns on Projectile mode, thus enabling
|
||||
all projectile key bindings, and adds the counsel-projectile key
|
||||
bindings on top of them.
|
||||
|
||||
\\{counsel-projectile-mode-map}"
|
||||
The counsel-projectile key bindings either remap existing
|
||||
projectile commands to their counsel-projectile replacements or
|
||||
bind keys to counsel-projectile commands that have no projectile
|
||||
counterparts."
|
||||
:group 'counsel-projectile
|
||||
:require 'counsel-projectile
|
||||
:keymap counsel-projectile-mode-map
|
||||
:global t
|
||||
(if counsel-projectile-mode
|
||||
(projectile-mode)
|
||||
(projectile-mode -1)))
|
||||
(cond
|
||||
(counsel-projectile-mode
|
||||
(projectile-mode)
|
||||
(dolist (binding counsel-projectile-key-bindings)
|
||||
(if (functionp (car binding))
|
||||
(define-key projectile-mode-map `[remap ,(car binding)] (cdr binding))
|
||||
(define-key projectile-command-map (car binding) (cdr binding)))))
|
||||
(t
|
||||
(dolist (binding counsel-projectile-key-bindings)
|
||||
(if (functionp (car binding))
|
||||
(define-key projectile-mode-map `[remap ,(car binding)] nil)
|
||||
(define-key projectile-command-map (car binding) nil)))
|
||||
(projectile-mode -1))))
|
||||
|
||||
;;;; provide
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue