Function: which-key-add-major-mode-key-based-replacements
which-key-add-major-mode-key-based-replacements is an autoloaded and
byte-compiled function defined in which-key.el.gz.
Signature
(which-key-add-major-mode-key-based-replacements MODE KEY-SEQUENCE REPLACEMENT &rest MORE)
Documentation
Functions like which-key-add-key-based-replacements.
The difference is that MODE specifies the major-mode that must
be active for KEY-SEQUENCE and REPLACEMENT (MORE contains
addition KEY-SEQUENCE REPLACEMENT pairs) to apply.
Source Code
;; Defined in /usr/src/emacs/lisp/which-key.el.gz
;;;###autoload
(defun which-key-add-major-mode-key-based-replacements
(mode key-sequence replacement &rest more)
"Functions like `which-key-add-key-based-replacements'.
The difference is that MODE specifies the `major-mode' that must
be active for KEY-SEQUENCE and REPLACEMENT (MORE contains
addition KEY-SEQUENCE REPLACEMENT pairs) to apply."
(declare (indent defun))
;; TODO: Make interactive
(when (not (symbolp mode))
(error "`%S' should be a symbol corresponding to a value of major-mode" mode))
(let ((mode-alist
(or (cdr-safe (assq mode which-key-replacement-alist)) (list)))
(title-mode-alist
(or (cdr-safe (assq mode which-key--prefix-title-alist)) (list))))
(while key-sequence
;; normalize key sequences before adding
(let ((key-seq (key-description (kbd key-sequence)))
(replace (or (and (functionp replacement) replacement)
(car-safe replacement)
replacement)))
(push (cons (cons (concat "\\`" (regexp-quote key-seq) "\\'") nil)
(if (functionp replace) replace (cons nil replace)))
mode-alist)
(when (and (not (functionp replacement)) (consp replacement))
(push (cons key-seq (cdr-safe replacement))
title-mode-alist)))
(setq key-sequence (pop more) replacement (pop more)))
(if (assq mode which-key-replacement-alist)
(setcdr (assq mode which-key-replacement-alist) mode-alist)
(push (cons mode mode-alist) which-key-replacement-alist))
(if (assq mode which-key--prefix-title-alist)
(setcdr (assq mode which-key--prefix-title-alist) title-mode-alist)
(push (cons mode title-mode-alist) which-key--prefix-title-alist))))