• Stars
    star
    1,256
  • Rank 37,419 (Top 0.8 %)
  • Language
    Common Lisp
  • Created over 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sylvester the Cat's Common Lisp IDE

Build Status MELPA

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

SLY is Sylvester the Cat's Common Lisp IDE for Emacs:

SLY's highlights are:

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

Installation

Ensure that MELPA is setup as usual and ask M-x package-install to install the package sly.

That's it. sly-mode will automatically come up in every .lisp file. To fire up SLY, connect to a Lisp and get a friendly REPL, use M-x sly.

Even if you already have SLIME installed, SLY will ask you and temporarily disable it for the Emacs session.

Obligatory animated gif section

Flex completion

company-flex-completion

Backreferences

backreferences

Reverse i-search

reverse-isearch

Stickers

stickers-example

Install from git

Clone this repository, add this to your ~/.emacs file and fill in the appropriate 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 do make compile compile-contrib in the dir where you cloned SLY.

Running the server standalone

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 do sly-connect and give it the host and the 4008 port as a destination.

Faster startup

If the Lisp program doesn't start fast enough for you, look in the manual, for ways to make it faster.

Additional Contribs

Completion UIs

SLY works with most Emacs "completion UIs" out of the box, providing completion in 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 more Helm-based fanciness, you can use helm-sly.

License

SLY is free software. All files, unless explicitly stated otherwise, are public domain. ASCII artwork is copyright by Felix Lee, Joan G. Stark and Hayley Jane Wakenshaw.

Fork

SLIME is the work of Eric Marsden, Luke Gorrie, Helmut Eller, Tobias C. Rittweiler and many others. I forked SLIME because I used it daily, for work, had a long list of hacks developed for myself, and wanted to share them with others.

In 2013, SLIME development was stalling, patches and issues rotting. In early 2014, Luรญs Oliveira and myself moved SLIME to Github and set up its Travis CI system. I brought in the old bug reports from the Launchpad tracker, fixed long-standing problems and submitted many changes, particularly to the under-curated but popular "contrib" section.

Now, the changes that SLY brings to the table are too deep at the Elisp and Lisp level to be accepted to SLIME, given its current focus on stability (for the record, I find this perfectly reasonable). The new features, such as stickers or multiple inspectors, cannot be realized well using only the existing "contrib" system. Finally, SLY frees itself from the shackles of Emacs 23 and supports Emacs 24.3+ only, allowing for much cleaner code and liberal use of lexical binding.

The list of technical reasons is bigger than this though, and you can read up on them in the CONTRIBUTING.md file.

Contributing

Open an issue or a pull request, but at least have a quick look at the first part CONTRIBUTING.md file for instructions on how to contribute.

More Repositories

1

yasnippet

A template system for Emacs
Emacs Lisp
2,770
star
2

eglot

A client for Language Server Protocol servers
Emacs Lisp
2,256
star
3

autopair

Automagically pair braces and quotes in emacs like TextMate
Emacs Lisp
208
star
4

snooze

Common Lisp RESTful web development
Common Lisp
206
star
5

breadcrumb

Emacs headerline indication of where you are in a large project
Emacs Lisp
189
star
6

darkroom

Simple distraction-free editing
Emacs Lisp
147
star
7

hunchensocket

RFC6455 compliant WebSockets for Common Lisp
Common Lisp
109
star
8

beardbolt

Compiler Explorer clone
Emacs Lisp
86
star
9

fiasco

A test framework for Common Lisp
Common Lisp
55
star
10

snippet

A rewrite of Yasnippet's engine (incomplete, but many parts done)
Emacs Lisp
30
star
11

sly-quicklisp

Quicklisp support for SLY
Emacs Lisp
29
star
12

sly-macrostep

Expand CL macros inside source files
Emacs Lisp
28
star
13

sly-stepper

sly-slepper
TeX
27
star
14

yasmate

Convert textmate bundles to yasnippet format
Emacs Lisp
24
star
15

eslack

Slack client for Emacs
Emacs Lisp
12
star
16

sly-hello-world

A dummy template for writing SLY contribs
Emacs Lisp
9
star
17

sly-named-readtables

NAMED-READTABLES support for SLY
Emacs Lisp
9
star
18

zapp

Zebugger Adapter Protocol Plugin
Emacs Lisp
8
star
19

emacs-livereload

A livereload server running on Emacs
JavaScript
7
star
20

mac-key-mode

Provide mac-style key bindings on Carbon Emacs
Emacs Lisp
6
star
21

sinatra-thumbnails

Dynamic generation, serving and caching of thumbnail images for simple file-based CMS's written in Sinatra.
Ruby
6
star
22

efire

A campfire client for emacs
Emacs Lisp
5
star
23

nestor

A common-lisp clone of the nesta ruby cms
Common Lisp
5
star
24

cl-guard

A uniform interface to your file and event watching needs in common lisp.
Common Lisp
4
star
25

eel

Emacs interface to voidtools Everything file search
Emacs Lisp
4
star
26

ecco

ecco is a port of docco for emacs
Emacs Lisp
4
star
27

elisp-shorthand

Pretty dumb namespacing system
Emacs Lisp
3
star
28

hello-world-2000

Simplest possible C++ Hello World with CMake+Conan
CMake
3
star
29

tcpppl4

Exercise solutions for The C++ Programming Language 4th edition
C++
2
star
30

st

My fork of simple terminal
C
2
star
31

treeconf

C++ command-line parser for tree-like options
C++
2
star
32

blip

Automatically find and run tests in emacs
Emacs Lisp
2
star
33

lsplex

Experimental Language Server proxy/multiplexer
C++
2
star
34

whopper

A bare bones fork of http://common-lisp.net/project/bese/yaclml.html
Common Lisp
2
star
35

edice

Why would you want to roll dice in Emacs?
Emacs Lisp
2
star
36

vulkan-man-pages

Archlinux package for vulkan man pages
Shell
1
star
37

minns

a minimal name server, written as an exercise in C++
C++
1
star
38

revbufs

Reverts all out-of-date buffers safely
Emacs Lisp
1
star
39

raytracing-one-weekend

working through https://raytracing.github.io/books/RayTracingInOneWeekend.html
C++
1
star
40

nih

A shrubbery!!!
Emacs Lisp
1
star
41

blinky-template

A bare-bones Makefile-based template for ESP32 projects
C
1
star