This is a SLIME configuration that provides the following contribs:
- Lisp System Browser
- SLIME Doc Contribs
- Quicklisp Systems
- Quicksearch utility
- SLIME Breakpoints
- Quicklisp apropos
- SLIME Critic
- Use dedicated Emacs buffers for output streams.
- Interactive trace and print buffers.
- Inspect objects from their printed representation in output streams.
- Access to dpans3 based ANSICL spec in Emacs Info format.
It also adds some custom utilities and menus.
Clone this repository using –recursive option (this repo has git submodules):
git clone --recursive https://github.com/mmontone/slime-star.git
Install some dependencies from Quicklisp:
(ql:quickload '(:asdf :alexandria :anaphora :drakma :dexador :fiveam :closer-mop :iterate :do-urlencode :yason :html-entities :slite :montezuma :chipz :archive :string-case :lisp-critic :cl-debug-print))
In your .emacs
:
;; Setup load-path, autoloads and your lisp system (add-to-list 'load-path "~/dir/to/cloned/slime-star") ;; Add slime-star to slime-contribs: (setq slime-contribs '(slime-fancy slime-star))
From docker
directory run:
make build
make run
You’ll need to M-x customize-group slime-star
and
M-x customize-group slime-breakpoints
to enable some of the features
(experimental and opinionated features are disabled by default). And
then restart Emacs (not all changes are immediatly applied).
M-x lisp-system-browser
to start.M-x quit-system-browser
to quit.
M-x slime-critic-critique-buffer
M-x quicklisp-systems
command and family.
Use:
M-x slime-toggle-output-buffer
to send*standard-output*
to an Emacs buffer.M-x slime-toggle-error-buffer
to send*error-output*
to an Emacs buffer.M-x slime-toggle-trace-buffer
to send*trace-output*
to an Emacs buffer.
Toggle functions for tracing using C-c M-t
. After traced functions are
called an interactive Emacs buffer appears, from where it is possible to
inspect the traces, interactively.
Use commands M-x slime-debug-print-last-expression-in-buffer
and
M-x slime-debug-print-next-expression-in-buffer
for printing expression to
an Emacs buffer. Or manually insert a call to swank-print-buffer:prn
in what you
want to get printed for inspection. An Emacs buffer opens from where it
is possible to inspect the printed value.
EXPERIMENTAL
SLIME does not provide a way of inspecting objects printed to output
streams; say an object is printed to some stream:
#<PERSON {100587C0C3}>
, there’s no way to access and inspect the
object printed.
SLIME ⭐ comes with an extension for inspecting objects that are printed
to output streams. To enable, evaluate in Lisp:
(setf stream-inspector:*persistent-pointers* t)
. Then from emacs, move
the cursor to some printed object, and M-x slime-inspect-printed
.
SLIME ⭐ is free software. All files, unless explicitly stated otherwise, are public domain.