NonGNU ELPA - sly

sly

Description
Sylvester the Cat's Common Lisp IDE
Latest
sly-1.0.43.tar (.sig), 2024-Mar-31, 3.71 MiB
Maintainer
Atom feed
sly.xml
Website
https://github.com/joaotavora/sly
Browse ELPA's repository
CGit or Gitweb
Badge
Manual
sly

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

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

Old versions

sly-1.0.42.tar.lz2020-Dec-181.54 MiB
sly-1.0.0beta3.tar.lz2020-Nov-211.53 MiB

News

Upcoming version

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. (https://github.com/joaotavora/sly/issues/303)

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

The "Copy call to REPL" funcionality in the Trace Dialog and SLY-DB buffers now understands that symbols and numbers can be printed directly in the reconstructed function call, which eases reading.

The .swankrc and .swank.lisp are not loaded by default

A problem encountered by Zach Beane.

Window management with M-. has been fixed

When finding the definition of a generic function with M-., an xref ... ...