- Notifications
You must be signed in to change notification settings - Fork145
Sylvester the Cat's Common Lisp IDE
joaotavora/sly
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
_____ __ __ __/ ___/// \ \// |\ _,,,---,,_ \__ \// \/ /,`.-'`'-.;-;;,_ ___/// /___// |,4- ) )-,_..;\ ( `'-' /____/ /_____/ /_/'---''(_/--'`-'\_)
SLY is Sylvester the Cat's Common Lisp IDE for Emacs:
- 🤔 Reada short illustrated guide
- 📽️ Scroll down this README for somepretty gifs
- 📣 Read theNEWS file
- 📚 Read themanual
SLY's highlights are:
- Afull-featured REPL based on Emacs's
comint.el
. Everything can becopied to the REPL; - Stickers, or live code annotations that record values as codetraverses them.
- Flex-style completion out-of-the-box, usingEmacs's completion API. Company, Helm, and othersupportednatively, no plugin required;
- An interactiveTrace Dialog;
- Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
- Multiple inspectors and multiple REPLs;
- "Presentations" replaced byinteractive backreferences whichhighlight the object and remain stable throughout the REPL session;
- Support forNAMED-READTABLES,macrostep.el andquicklisp
- Aportable, annotation-based stepper inearly but functionalprototype stage.
SLY is a fork ofSLIME. We tracks its bugfixes, particularly to theimplementation backends. All SLIME's familar features (debugger, inspector,xref, etc...) are still available, with improved overall UX.
Ensure thatMELPA is setup as usual and askM-x package-install
toinstall the packagesly
.
That's it.sly-mode
will automatically come up in every.lisp
file. Tofire up SLY, connect to a Lisp and get a friendly REPL, useM-x sly
.
Even if you already have SLIME installed, SLY will ask you and temporarilydisable it for the Emacs session.
Clone this repository, add this to your~/.emacs
file and fill in theappropriate file names:
(add-to-list'load-path"~/dir/to/cloned/sly")(require'sly-autoloads)(setq inferior-lisp-program"/opt/sbcl/bin/sbcl")
If you wish to byte-compile SLY yourself (not needed generally) you can domake compile compile-contrib
in the dir where you cloned SLY.
This also works
$ sbcl...* (push #p"~/dir/to/sly" asdf:*central-registry*)* (asdf:load-system :slynk)* (slynk:create-server :port 4008)
Now in Emacs you can dosly-connect
and give it the host and the 4008 port asa destination.
If the Lisp program doesn't start fast enough for you, look inthemanual, for ways to make it faster.
- https://github.com/joaotavora/sly-quicklisp
- https://github.com/joaotavora/sly-named-readtables
- https://github.com/joaotavora/sly-macrostep
- https://github.com/joaotavora/sly-stepper
- https://github.com/mmgeorge/sly-asdf
- https://github.com/40ants/sly-package-inferred
SLY works with most Emacs "completion UIs" out of the box, providing completionin source files and inputting Common Lisp symbol names from the minibuffer.Company, Emacs 27's Fido-mode, and Helm are well-supported, as is"vanilla" completion. For consistency, SLY defaults to its own UI,sly-symbol-completion-mode
, useful if you don't have or like any of those.You can turn it off. Also, if you use Helm and wish to have even moreHelm-based fanciness, you can usehelm-sly.
SLY is free software. All files, unless explicitly stated otherwise, are publicdomain. ASCII artwork is copyright by Felix Lee, Joan G. Stark and Hayley JaneWakenshaw.
SLIME is the work of Eric Marsden, Luke Gorrie, Helmut Eller, TobiasC. Rittweiler andmany others. I forked SLIME because I used it daily,for work, had a long list of hacks developed for myself, and wanted to sharethem with others.
In 2013, SLIME development was stalling, patches and issues rotting. In early2014, Luís Oliveira and myself moved SLIME to Github and set up its Travis CIsystem. I brought in the old bug reports from the Launchpad tracker, fixedlong-standing problems and submitted many changes, particularly to theunder-curated but popular "contrib" section.
Now, the changes that SLY brings to the table are too deep at the Elisp and Lisplevel to be accepted to SLIME, given its current focus on stability (for therecord, I find this perfectly reasonable). The new features, such as stickers ormultiple inspectors, cannot be realized well using only the existing "contrib"system. Finally, SLY frees itself from the shackles of Emacs 23 and supportsEmacs 24.3+ only, allowing for much cleaner code and liberal use of lexicalbinding.
The list of technical reasons is bigger than this though, and you can read up onthem in theCONTRIBUTING.md file.
Open an issue or a pull request, but at least have a quick look at thefirst partCONTRIBUTING.md file for instructions on how to contribute.
About
Sylvester the Cat's Common Lisp IDE