Sylvester the Cat's Common Lisp IDE
sly- (.sig), 2023-Dec-13, 3.72 MiB
Browse ELPA's repository
CGit or Gitweb

To install this package from Emacs, use package-install or list-packages.

Full description

       _____    __   __  __
      / ___/   / /   \ \/ /               |\      _,,,---,,_
      \__ \   / /     \  /                /,`.-'`'    -.  ;-;;,_
     ___/ /  / /___   / /                |,4-  ) )-,_..;\ (  `'-'
    /____/  /_____/  /_/                '---''(_/--'  `-'\_)

SLY is Sylvester the Cat's Common Lisp IDE.

SLY is a direct fork of SLIME, and contains the following
improvements over it:

* A full-featured REPL based on Emacs's `comint.el`;
* Live code annotations via a new `sly-stickers` contrib;
* Consistent button interface. Every Lisp object can be copied to the REPL;
* flex-style completion out-of-the-box, using  Emacs's completion API.
  Company, Helm, and others supported natively, no plugin required;
* Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
* Multiple inspectors and multiple REPLs;
* An interactive trace dialog with interactive objects.  Copies function calls
  to the REPL;
* "Presentations" replaced by interactive backreferences which
  highlight the object and remain stable throughout the REPL session;

SLY is a fork of SLIME. We track its bugfixes, particularly to the
implementation backends.  All SLIME's familar features (debugger,
inspector, xref, etc...) are still available, with improved overall

See the file (should be sitting alongside this file) for
more information

Old versions

sly- MiB
sly- MiB
sly- MiB
sly- MiB
sly- MiB
sly- MiB
sly- MiB
sly- MiB
sly-1.0.0beta3.0.20201210.163918.tar.lz2020-Dec-111.55 MiB
sly-1.0.0beta3.0.20201125.190701.tar.lz2020-Nov-261.53 MiB


Upcoming version

New M-x sly-remove-method

A very practical way to remove methods from generic functions.

Remove sly-completing-read

SLY no longer bypasses completing-read-function to provide basic ido completion. This used to make sense when fewer fancy well-behaved completion packages existed. That's no longer the case so we shouldn't override the user's preference.

SLY 1.0.42 (December 2020)

Much improved company completion

If you haven't yet, just M-x package-install RET company-mode, to enable company. It should start working in every SLY buffer.

Moreover, a new "lazy" way to SLY collect completions from the Lisp backend means that user input is not blocked if this takes a long time. The result is a much more responsive on-the-fly completion experience.

If you don't like company, you can still use the normal on-request TAB completion, which also features an improved UI.

Fixed Helm conflicts

Helm users should now get access to the full capabilities of SLY's completion function without needing to install any extra packages. Just need to M-x sly-symbol-completion-mode to turn off SLY's default completion UI. (

Redesigned completion backend

A redesigned completion backend replaces the legacy contribs sly-fuzzy and sly-c-p-c. The new "flex" backend considers package designators in the search string so you can complete other package's symbols even when outside a package.

Here's an example:

CL-USER> (quiloa) -> (ql:quickload) CL-USER> (scan) -> (ppcre:scan) CL-USER> (setf locadirs) -> (setf ql:*local-project-directories*) CL-USER> (mvbind) -> (multiple-value-bind)

Flex completion is on by default, but that can be changed via sly-complete-symbol-function. The documentation has more information.

Package-local nicknames are also considered (provided your implementation supports them).

Completely rewritten manual

Manual has been reviewed from top to bottom. It should be much easier to navigate and nicer read in general, thouch it still needs quite some proofreading

A new chapter for existing SLIME users figures prominently in the top-level.

Presently no major omissions (except maybe for multiple inspectors). Reorganized nodes into a new structure not so focused on core vs contribs. Deleted stale sections. REPL section heavily rewritten to explain output types and backreferences.

New command M-x sly-import-symbol-at-point bound to C-c i by default

This is a counterpart to the existing M-x sly-export-symbol-at-point, bound to C-c e. It strips the symbol under point of its package designator, and adds it under the :import-from subclause of the current package's defpackage form. An improvement suggested and implemented by Alexander Artemenko (github #147).

Improved SLY Stickers UI

The UI for SLY Stickers, particularly for M-x sly-stickers-replay has been cleanup up. Upon entering the replay mode, SLY may ask user if she wants to delete the previous recordings, a commonly forgotten but useful pre-step (an idea by Javier Olaechea, github #91). Also, window management is less random.

Stale buffers are killed on connection close

Inspector, debugger, and other buffers pertaining to a connection are automatically killed when the connection is closed. The types of buffers that are exempt from this is configurable in a new sly-keep-buffers-on-connection-close defcustom, which lists REPL buffers by default.

Autodoc function args available in minibuffer prompts

In minibuffer prompts like the one of M-x sly-inspect, autodoc information is available and displayed temporarily in the mode-line.

C-c C-o and C-c M-o bound in the REPL

These clear recent output and the whole REPL, respectively.

Easy to parse copied calls to REPL

... ...