Skip to content

SLIME configuration with some extensions pre-installed.

Notifications You must be signed in to change notification settings

mmontone/slime-star

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

sbcl --load install.lisp --quit

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.

Extra commands

  • M-x slime-system-dependency-graph Visualize a dependencies graph for ASDF SYSTEM. Requires asdf-dependency-graph library installed.
  • M-x sldb-show-all-frames-details Show details of all frames in debugger.
  • M-x sldb-kill-all-buffers Kill all SLDB (debugger) buffers.
  • M-x slime-scratch Open the equivalent of an Emacs scratch buffer, for Common Lisp/SLIME.
  • M-x slime-room Show Common Lisp ROOM information in an Emacs buffer.

EXPERIMENTAL

Output stream inspector

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.

About

SLIME configuration with some extensions pre-installed.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published