Skip to content

Latest commit

 

History

History
206 lines (157 loc) · 5.87 KB

README.org

File metadata and controls

206 lines (157 loc) · 5.87 KB

SLIME ⭐

Overview

This is a SLIME configuration that provides the following contribs:

It also adds some custom utilities and menus.

Install

⚠️ This is ALPHA software

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))

Try via Docker

From docker directory run:

  • make build
  • make run

Configuration

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).

Screenshots

System browser

https://github.com/mmontone/lisp-system-browser/raw/master/lisp-system-browser.png

  • M-x lisp-system-browser to start.
  • M-x quit-system-browser to quit.

Quickload with completion

https://github.com/mmontone/quicklisp-systems/raw/master/completion.gif

Breakpoints, stepping, toolbars, evaluation and locals navigation

screenshots/toolbars.png https://github.com/mmontone/slime-breakpoints/raw/master/sldb-source-eval.png https://github.com/mmontone/slime-breakpoints/blob/master/sldb-show-frame-local.gif

Improved documentation mode

https://github.com/mmontone/slime-doc-contribs/raw/master/slime-help.png screenshots/ansicl-info.png

Critic

https://github.com/mmontone/slime-critic/raw/master/screenshot.png

  • M-x slime-critic-critique-buffer

Quicklisp system browsing

https://github.com/mmontone/quicklisp-systems/raw/master/screenshot.png

M-x quicklisp-systems command and family.

Dedicated Emacs buffers for output streams

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.

Interactive TRACE and PRINT buffers

Trace 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.

screenshots/trace-and-print-buffers.png

Print buffer

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.

Output stream inspector

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.

License

SLIME ⭐ is free software. All files, unless explicitly stated otherwise, are public domain.