Attached is a patch that provides dual key bindings for the Who-xref commands (e.g. - it now allows either "C-c C-w c" or "C-c C-w C-c" for the "Who calls ..." command). This is in keeping with the Documentation key binding change.
- Bill
Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.345 diff -u -r1.345 slime.el --- slime.el 29 Jun 2004 17:39:01 -0000 1.345 +++ slime.el 29 Jun 2004 19:41:51 -0000 @@ -483,11 +483,6 @@ ("~" slime-sync-package-and-default-directory :prefixed t :inferior t) ("\M-p" slime-repl-set-package :prefixed t :inferior t) ;; Cross reference - ("\C-wc" slime-who-calls :prefixed t :inferior t :sldb t) - ("\C-wr" slime-who-references :prefixed t :inferior t :sldb t) - ("\C-wb" slime-who-binds :prefixed t :inferior t :sldb t) - ("\C-ws" slime-who-sets :prefixed t :inferior t :sldb t) - ("\C-wm" slime-who-macroexpands :prefixed t :inferior t :sldb t) ("<" slime-list-callers :prefixed t :inferior t :sldb t) (">" slime-list-callees :prefixed t :inferior t :sldb t) ;; "Other" @@ -516,6 +511,16 @@ (?h slime-hyperspec-lookup) (?~ common-lisp-hyperspec-format)))
+(defvar slime-who-map (make-sparse-keymap) + "Keymap for who-xref commands. Bound to a prefix key.") + +(defvar slime-who-bindings + '((?c slime-who-calls) + (?r slime-who-references) + (?b slime-who-binds) + (?s slime-who-sets) + (?m slime-who-macroexpands))) + ;; Maybe a good idea, maybe not.. (defvar slime-prefix-key "\C-c" "The prefix key to use in SLIME keybinding sequences.") @@ -551,7 +556,17 @@ (let ((modified (slime-control-modified-char key))) (define-key slime-doc-map (string modified) command))))) ;; C-c C-d is the prefix for the doc map. - (slime-define-key "\C-d" slime-doc-map :prefixed t :inferior t)) + (slime-define-key "\C-d" slime-doc-map :prefixed t :inferior t) + ;; Who-xref + (setq slime-who-map (make-sparse-keymap)) + (loop for (key command) in slime-who-bindings + do (progn + ;; We bind both unmodified and with control. + (define-key slime-who-map (string key) command) + (let ((modified (slime-control-modified-char key))) + (define-key slime-who-map (string modified) command)))) + ;; C-c C-w is the prefix for the who-xref map. + (slime-define-key "\C-w" slime-who-map :prefixed t :inferior t))
(defun slime-control-modified-char (char) "Return the control-modified version of CHAR."