(defvar slime-who-bindings
'((?c slime-who-calls)
(?w slime-calls-who)
(?r slime-who-references)
(?b slime-who-binds)
(?s slime-who-sets)
(?m slime-who-macroexpands)
(?a slime-who-specializes)))
(defvar slime-doc-bindings
'((?a slime-apropos)
(?z slime-apropos-all)
(?p slime-apropos-package)
(?d slime-describe-symbol)
(?f slime-describe-function)
(?h slime-hyperspec-lookup)
(?~ common-lisp-hyperspec-format)))
(defvar slime-keys
'(;; Compiler notes
("\M-p" slime-previous-note)
("\M-n" slime-next-note)
("\M-c" slime-remove-notes :prefixed t)
("\C-k" slime-compile-and-load-file :prefixed t)
("\M-k" slime-compile-file :prefixed t)
("\C-c" slime-compile-defun :prefixed t)
("\C-l" slime-load-file :prefixed t)
;; Editing/navigating
("\M-\C-i" slime-complete-symbol :inferior t)
("\C-i" slime-complete-symbol :prefixed t :inferior t)
("\M-i" slime-fuzzy-complete-symbol :prefixed t :inferior t)
("\M-." slime-edit-definition :inferior t :sldb t)
("\C-x4." slime-edit-definition-other-window :inferior t :sldb t)
("\C-x5." slime-edit-definition-other-frame :inferior t :sldb t)
("\M-," slime-pop-find-definition-stack :inferior t :sldb t)
("\M-*" slime-pop-find-definition-stack :inferior t :sldb t)
("\C-q" slime-close-parens-at-point :prefixed t :inferior t)
("\C-c\M-q" slime-reindent-defun :inferior t)
;; Evaluating
("\C-x\C-e" slime-eval-last-expression :inferior t)
("\C-x\M-e" slime-eval-last-expression-display-output :inferior t)
("\C-p" slime-pprint-eval-last-expression :prefixed t :inferior t)
("\C-r" slime-eval-region :prefixed t :inferior t)
("\C-\M-x" slime-eval-defun)
(":" slime-interactive-eval :prefixed t :sldb t)
("\C-e" slime-interactive-eval :prefixed t :sldb t :inferior t)
("E" slime-edit-value :prefixed t :sldb t :inferior t)
("\C-z" slime-switch-to-output-buffer :prefixed t :sldb t)
("\C-b" slime-interrupt :prefixed t :inferior t :sldb t)
("\M-g" slime-quit :prefixed t :inferior t :sldb t)
;; Documentation
(" " slime-space :inferior t)
("\C-s" slime-complete-form :prefixed t :inferior t)
("\C-f" slime-describe-function :prefixed t :inferior t :sldb t)
("\M-d" slime-disassemble-symbol :prefixed t :inferior t :sldb t)
("\C-t" slime-toggle-trace-fdefinition :prefixed t :sldb t)
("\C-u" slime-undefine-function :prefixed t)
("\C-m" slime-macroexpand-1 :prefixed t :inferior t)
("\M-m" slime-macroexpand-all :prefixed t :inferior t)
("\M-0" slime-restore-window-configuration :prefixed t :inferior t)
([(control meta ?\.)] slime-next-location :inferior t)
;; Emacs20 on LinuxPPC signals a
;; "Invalid character: 400000040, 2147479172, 0xffffffd8"
;; for "\C- ".
;; ("\C- " slime-next-location :prefixed t :inferior t)
("~" slime-sync-package-and-default-directory :prefixed t :inferior t)
("\M-p" slime-repl-set-package :prefixed t :inferior t)
;; Cross reference
("<" slime-list-callers :prefixed t :inferior t :sldb t)
(">" slime-list-callees :prefixed t :inferior t :sldb t)
;; "Other"
("\I" slime-inspect :prefixed t :inferior t :sldb t)
("\C-]" slime-close-all-sexp :prefixed t :inferior t :sldb t)
("\C-xt" slime-list-threads :prefixed t :inferior t :sldb t)
("\C-xc" slime-list-connections :prefixed t :inferior t :sldb t)
;; Shadow unwanted bindings from inf-lisp
("\C-a" slime-nop :prefixed t :inferior t :sldb t)
("\C-v" slime-nop :prefixed t :inferior t :sldb t)))
(defvar slime-easy-menu
(let ((C '(slime-connected-p)))
`("SLIME"
[ "Edit Definition..." slime-edit-definition ,C ]
[ "Return From Definition" slime-pop-find-definition-stack ,C ]
[ "Complete Symbol" slime-complete-symbol ,C ]
[ "Fuzzy Complete Symbol" slime-fuzzy-complete-symbol ,C ]
[ "Complete Form" slime-complete-form ,C ]
[ "Show REPL" slime-switch-to-output-buffer ,C ]
"--"
("Evaluation"
[ "Eval Defun" slime-eval-defun ,C ]
[ "Eval Last Expression" slime-eval-last-expression ,C ]
[ "Eval And Pretty-Print" slime-pprint-eval-last-expression ,C ]
[ "Eval Region" slime-eval-region ,C ]
[ "Scratch Buffer" slime-scratch ,C ]
[ "Interactive Eval..." slime-interactive-eval ,C ]
[ "Edit Lisp Value..." slime-edit-value ,C ])
("Debugging"
[ "Macroexpand Once..." slime-macroexpand-1 ,C ]
[ "Macroexpand All..." slime-macroexpand-all ,C ]
[ "Toggle Trace..." slime-toggle-trace-fdefinition ,C ]
[ "Disassemble..." slime-disassemble-symbol ,C ]
[ "Inspect..." slime-inspect ,C ])
("Compilation"
[ "Compile Defun" slime-compile-defun ,C ]
[ "Compile/Load File" slime-compile-and-load-file ,C ]
[ "Compile File" slime-compile-file ,C ]
[ "Compile Region" slime-compile-region ,C ]
[ "Compile System" slime-load-system ,C ]
"--"
[ "Next Note" slime-next-note t ]
[ "Previous Note" slime-previous-note t ]
[ "Remove Notes" slime-remove-notes t ]
[ "List Notes" slime-list-compiler-notes ,C ])
("Cross Reference"
[ "Who Calls..." slime-who-calls ,C ]
[ "Who References... " slime-who-references ,C ]
[ "Who Sets..." slime-who-sets ,C ]
[ "Who Binds..." slime-who-binds ,C ]
[ "Who Macroexpands..." slime-who-macroexpands ,C ]
[ "Who Specializes..." slime-who-specializes ,C ]
[ "List Callers..." slime-list-callers ,C ]
[ "List Callees..." slime-list-callees ,C ]
[ "Next Location" slime-next-location t ])
("Editing"
[ "Close All Parens" slime-close-all-sexp t]
[ "Check Parens" check-parens t]
[ "Update Indentation" slime-update-indentation ,C]
[ "Select Buffer" slime-selector t])
("Profiling"
[ "Toggle Profiling..." slime-toggle-profile-fdefinition ,C ]
[ "Profile Package" slime-profile-package ,C]
[ "Unprofile All" slime-unprofile-all ,C ]
[ "Show Profiled" slime-profiled-functions ,C ]
"--"
[ "Report" slime-profile-report ,C ]
[ "Reset Counters" slime-profile-reset ,C ])
("Documentation"
[ "Describe Symbol..." slime-describe-symbol ,C ]
[ "Apropos..." slime-apropos ,C ]
[ "Apropos all..." slime-apropos-all ,C ]
[ "Apropos Package..." slime-apropos-package ,C ]
[ "Hyperspec..." slime-hyperspec-lookup t ])
"--"
[ "Interrupt Command" slime-interrupt ,C ]
[ "Abort Async. Command" slime-quit ,C ]
[ "Sync Package & Directory" slime-sync-package-and-default-directory ,C]
[ "Set Package in REPL" slime-repl-set-package ,C]
)))
(defvar slime-repl-easy-menu
(let ((C '(slime-connected-p)))
`("REPL"
[ "Send Input" slime-repl-return ,C ]
[ "Close and Send Input " slime-repl-closing-return ,C ]
[ "Interrupt Lisp process" slime-interrupt ,C ]
"--"
[ "Previous Input" slime-repl-previous-input t ]
[ "Next Input" slime-repl-next-input t ]
[ "Goto Previous Prompt " slime-repl-previous-prompt t ]
[ "Goto Next Prompt " slime-repl-next-prompt t ]
[ "Clear Last Output" slime-repl-clear-output t ]
[ "Clear Buffer " slime-repl-clear-buffer t ])))
(defvar slime-sldb-easy-menu
(let ((C '(slime-connected-p)))
`("SLDB"
[ "Next Frame" sldb-down t ]
[ "Previous Frame" sldb-up t ]
[ "Toggle Frame Details" sldb-toggle-details t ]
[ "List Locals" sldb-list-locals ,C ]
[ "Next Frame (Details)" sldb-details-down t ]
[ "Previous Frame (Details)" sldb-details-up t ]
"--"
[ "Eval Expression..." slime-interactive-eval ,C ]
[ "Eval in Frame..." sldb-eval-in-frame ,C ]
[ "Eval in Frame (pretty print)..." sldb-pprint-eval-in-frame ,C ]
[ "Inspect In Frame..." sldb-inspect-in-frame ,C ]
[ "Inspect Condition Object" sldb-inspect-condition ,C ]
[ "Print Condition to REPL" sldb-print-condition t ]
"--"
[ "Restart Frame" sldb-restart-frame ,C ]
[ "Return from Frame..." sldb-return-from-frame ,C ]
("Invoke Restart"
[ "Continue" sldb-continue ,C ]
[ "Abort" sldb-abort ,C ]
[ "Step" sldb-step ,C ])
"--"
[ "Quit (throw)" sldb-quit ,C ]
[ "Break With Default Debugger" sldb-break-with-default-debugger ,C ])))
(slime-define-keys slime-repl-mode-map
("\C-m" 'slime-repl-return)
("\C-j" 'slime-repl-newline-and-indent)
("\C-\M-m" 'slime-repl-closing-return)
([(control return)] 'slime-repl-closing-return)
("\C-a" 'slime-repl-bol)
([home] 'slime-repl-bol)
("\C-e" 'slime-repl-eol)
("\M-p" 'slime-repl-previous-input)
((kbd "C-") 'slime-repl-previous-input)
("\M-n" 'slime-repl-next-input)
((kbd "C-") 'slime-repl-next-input)
("\M-r" 'slime-repl-previous-matching-input)
("\M-s" 'slime-repl-next-matching-input)
("\C-c\C-c" 'slime-interrupt)
("\C-c\C-b" 'slime-interrupt)
("\C-c:" 'slime-interactive-eval)
("\C-c\C-e" 'slime-interactive-eval)
("\C-cE" 'slime-edit-value)
;("\t" 'slime-complete-symbol)
("\t" 'slime-indent-and-complete-symbol)
(" " 'slime-space)
("\C-c\C-d" slime-doc-map)
("\C-c\C-w" slime-who-map)
("\C-\M-x" 'slime-eval-defun)
("\C-c\C-o" 'slime-repl-clear-output)
("\C-c\C-t" 'slime-repl-clear-buffer)
("\C-c\C-n" 'slime-repl-next-prompt)
("\C-c\C-p" 'slime-repl-previous-prompt)
("\M-\C-a" 'slime-repl-beginning-of-defun)
("\M-\C-e" 'slime-repl-end-of-defun)
("\C-c\C-l" 'slime-load-file)
("\C-c\C-k" 'slime-compile-and-load-file)
("\C-c\C-z" 'slime-nop))
(defvar slime-fuzzy-completions-map
(let* ((map (make-sparse-keymap)))
(define-key map "q" 'slime-fuzzy-abort)
(define-key map "\r" 'slime-fuzzy-select)
(define-key map "n" 'slime-fuzzy-next)
(define-key map "\M-n" 'slime-fuzzy-next)
(define-key map "p" 'slime-fuzzy-prev)
(define-key map "\M-p" 'slime-fuzzy-prev)
(define-key map "\d" 'scroll-down)
(define-key map " " 'scroll-up)
(define-key map [mouse-2] 'slime-fuzzy-select/mouse)
map)
"Keymap for slime-fuzzy-completions-mode.")
(defun sldb-help-summary ()
"Show summary of important sldb commands"
(interactive)
(message
(mapconcat
#'(lambda (list)
(destructuring-bind (cmd letter name name-with-letter) list
(let ((where-is (where-is-internal cmd sldb-mode-map)))
(if (or (member (vector (intern letter)) where-is)
(member (vector (string-to-char letter)) where-is))
name-with-letter
(substitute-command-keys
(format "\\\\[%s] %s" cmd name))))))
'((sldb-down "n" "next" "n-ext")
(sldb-up "p" "prev" "p-rev")
(sldb-toggle-details "t" "toggle details" "t-oggle details")
(sldb-eval-in-frame "e" "eval" "e-val")
(sldb-continue "c" "continue" "c-ontinue")
(sldb-abort "a" "abort" "a-bort")
(sldb-show-source "v" "view source" "v-iew source")
(describe-mode "h" "help" "h-elp"))
", ")))
(slime-define-keys sldb-mode-map
("?" 'sldb-help-summary)
("h" 'describe-mode)
("v" 'sldb-show-source)
((kbd "RET") 'sldb-default-action)
("\C-m" 'sldb-default-action)
([mouse-2] 'sldb-default-action/mouse)
("e" 'sldb-eval-in-frame)
("d" 'sldb-pprint-eval-in-frame)
("D" 'sldb-disassemble)
("i" 'sldb-inspect-in-frame)
("n" 'sldb-down)
("p" 'sldb-up)
("\M-n" 'sldb-details-down)
("\M-p" 'sldb-details-up)
("<" 'sldb-beginning-of-backtrace)
(">" 'sldb-end-of-backtrace)
("l" 'sldb-list-locals)
("t" 'sldb-toggle-details)
("r" 'sldb-restart-frame)
("R" 'sldb-return-from-frame)
("c" 'sldb-continue)
("s" 'sldb-step)
("b" 'sldb-break-on-return)
("a" 'sldb-abort)
("q" 'sldb-quit)
("B" 'sldb-break-with-default-debugger)
("P" 'sldb-print-condition)
("C" 'sldb-inspect-condition)
(":" 'slime-interactive-eval)
("\C-c\C-d" slime-doc-map))
(slime-define-keys slime-thread-control-mode-map
("a" 'slime-thread-attach)
("d" 'slime-thread-debug)
("g" 'slime-list-threads)
("k" 'slime-thread-kill)
("q" 'slime-thread-quit))
(slime-define-keys slime-connection-list-mode-map
((kbd "RET") 'slime-goto-connection)
("d" 'slime-connection-list-make-default)
("g" 'slime-update-connection-list)
((kbd "C-k") 'slime-quit-connection-at-point))
(slime-define-keys slime-inspector-mode-map
([return] 'slime-inspector-operate-on-point)
([(meta return)] 'slime-inspector-copy-down)
("\C-m" 'slime-inspector-operate-on-point)
([mouse-2] 'slime-inspector-operate-on-click)
("l" 'slime-inspector-pop)
("n" 'slime-inspector-next)
(" " 'slime-inspector-next)
("d" 'slime-inspector-describe)
("q" 'slime-inspector-quit)
("g" 'slime-inspector-reinspect)
("\C-i" 'slime-inspector-next-inspectable-object)
([(shift tab)] 'slime-inspector-previous-inspectable-object)
("\M-." 'slime-edit-definition))
This page is presently
Uncategorized: please add appropriate
category markers? and remove this text.