Next: , Previous: Documentation, Up: SLIME mode


3.7 Cross-reference commands

SLIME's cross-reference commands are based on the support provided by the Lisp system, which varies widely between Lisps. For systems with no built-in XREF support SLIME queries a portable XREF package, which is taken from the CMU AI Repository and bundled with SLIME.

Each command operates on the symbol at point, or prompts if there is none. With a prefix argument they always prompt. You can either enter the key bindings as shown here or with the control modified on the last key, See Key bindings.

C-c C-w c
M-x slime-who-calls
Show function callers.
C-c C-w w
M-x slime-calls-who
Show all known callees.
C-c C-w r
M-x slime-who-references
Show references to global variable.
C-c C-w b
M-x slime-who-binds
Show bindings of a global variable.
C-c C-w s
M-x slime-who-sets
Show assignments to a global variable.
C-c C-w m
M-x slime-who-macroexpands
Show expansions of a macro.
M-x slime-who-specializes
Show all known methods specialized on a class.

There are also “List callers/callees” commands. These operate by rummaging through function objects on the heap at a low-level to discover the call graph. They are only available with some Lisp systems, and are most useful as a fallback when precise XREF information is unavailable.

C-c <
M-x slime-list-callers
List callers of a function.
C-c >
M-x slime-list-callees
List callees of a function.