dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

README.md (7429B)


      1 [![Build Status](https://travis-ci.org/joaotavora/sly.png?branch=master)](https://travis-ci.org/joaotavora/sly)
      2 [![MELPA](http://melpa.org/packages/sly-badge.svg)](http://melpa.org/#/sly)
      3 
      4 ```lisp
      5           _____    __   __  __        
      6          / ___/   / /   \ \/ /               |\      _,,,---,,_
      7          \__ \   / /     \  /                /,`.-'`'    -.  ;-;;,_
      8         ___/ /  / /___   / /                |,4-  ) )-,_..;\ (  `'-'
      9        /____/  /_____/  /_/                '---''(_/--'  `-'\_)
     10 
     11 ```
     12 
     13 SLY is Sylvester the Cat's Common Lisp IDE for Emacs:
     14 
     15 * 🤔 Read [a short illustrated guide][tutorial]
     16 * 📽️ Scroll down this README for some [pretty gifs](#animated_gifs)
     17 * 📣 Read the [NEWS][6] file
     18 * 📚 Read the [manual][documentation]
     19 
     20 SLY's highlights are:
     21 
     22 * A [full-featured REPL](#repl) based on Emacs's `comint.el`.  Everything can be
     23   copied to the REPL;
     24 * [Stickers](#stickers), or live code annotations that record values as code
     25   traverses them.
     26 * [Flex-style completion](#company-flex-completion) out-of-the-box, using
     27   Emacs's completion API.  Company, Helm, and other [supported
     28   natively](#completion), no plugin required;
     29 * An interactive [Trace Dialog][trace-dialog];
     30 * Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
     31 * Multiple inspectors and multiple REPLs;
     32 * "Presentations" replaced by [interactive backreferences](#repl) which
     33   highlight the object and remain stable throughout the REPL session;
     34 * Support for [NAMED-READTABLES][11], [macrostep.el][12] and [quicklisp][13]
     35 * A [portable, annotation-based stepper][16] in [early][17] but functional
     36   prototype stage.
     37 
     38 SLY is a fork of [SLIME][1]. We tracks its bugfixes, particularly to the
     39 implementation backends.  All SLIME's familar features (debugger, inspector,
     40 xref, etc...) are still available, with improved overall UX.
     41 
     42 Installation
     43 ------------
     44 
     45 Ensure that [MELPA][10] is setup as usual and ask `M-x package-install` to
     46 install the package `sly`.
     47 
     48 *That's it*. `sly-mode` will automatically come up in every `.lisp` file. To
     49 fire up SLY, connect to a Lisp and get a friendly REPL, use `M-x sly`.
     50 
     51 Even if you already have SLIME installed, SLY will ask you and temporarily
     52 disable it for the Emacs session.
     53 
     54 <a name="animated_gifs"></a>
     55 _Obligatory animated gif section_
     56 -----------------------------------
     57 
     58 <a name="company-flex-completion"></a>
     59 [Flex completion](http://joaotavora.github.io/sly/#Completion)
     60 
     61 ![company-flex-completion](./doc/animations/company-flex-completion.gif)
     62 
     63 <a name="repl"></a>
     64 [Backreferences](http://joaotavora.github.io/sly/#REPL-backreferences)
     65 
     66 ![backreferences](./doc/animations/backreferences.gif)
     67 
     68 [Reverse i-search](http://joaotavora.github.io/sly/#REPL-commands)
     69 
     70 ![reverse-isearch](./doc/animations/reverse-isearch.gif)
     71 
     72 <a name="stickers"></a>
     73 [Stickers](http://joaotavora.github.io/sly/#Stickers)
     74 
     75 ![stickers-example](./doc/animations/stickers-example.gif)
     76 
     77 Install from git
     78 -------------------
     79 
     80 Clone this repository, add this to your `~/.emacs` file and fill in the
     81 appropriate file names:
     82 
     83 ```el
     84 (add-to-list 'load-path "~/dir/to/cloned/sly")
     85 (require 'sly-autoloads)
     86 (setq inferior-lisp-program "/opt/sbcl/bin/sbcl")
     87 ```
     88 
     89 If you wish to byte-compile SLY yourself (not needed generally) you can do `make
     90 compile compile-contrib` in the dir where you cloned SLY.
     91 
     92 Running the server standalone
     93 -----------------------------
     94 
     95 This also works
     96 ```
     97 $ sbcl
     98 ...
     99 * (push #p"~/dir/to/sly" asdf:*central-registry*)
    100 * (asdf:load-system :slynk)
    101 * (slynk:create-server :port 4008)
    102 ```
    103 
    104 Now in Emacs you can do `sly-connect` and give it the host and the 4008 port as
    105 a destination.
    106 
    107 Faster startup
    108 --------------
    109 
    110 If the Lisp program doesn't start fast enough for you, look in [the
    111 manual][instasly], for ways to make it faster.
    112 
    113 Additional Contribs
    114 -------------------
    115 
    116 * https://github.com/joaotavora/sly-quicklisp
    117 * https://github.com/joaotavora/sly-named-readtables
    118 * https://github.com/joaotavora/sly-macrostep
    119 * https://github.com/joaotavora/sly-stepper
    120 * https://github.com/mmgeorge/sly-asdf
    121 * https://github.com/40ants/sly-package-inferred
    122 
    123 <a name="completion"></a>
    124 Completion UIs
    125 --------------
    126 
    127 SLY works with most Emacs "completion UIs" out of the box, providing completion
    128 in source files and inputting Common Lisp symbol names from the minibuffer.
    129 [Company][14], Emacs 27's Fido-mode, and Helm are well-supported, as is
    130 "vanilla" completion.  For consistency, SLY defaults to its own UI,
    131 `sly-symbol-completion-mode`, useful if you don't have or like any of those.
    132 You can turn it off.  Also, if you use Helm and wish to have even more
    133 Helm-based fanciness, you can use [helm-sly][15].
    134 
    135 License
    136 -------
    137 
    138 SLY is free software. All files, unless explicitly stated otherwise, are public
    139 domain.  ASCII artwork is copyright by Felix Lee, Joan G. Stark and Hayley Jane
    140 Wakenshaw.
    141 
    142 Fork
    143 ----
    144 
    145 SLIME is the work of Eric Marsden, Luke Gorrie, Helmut Eller, Tobias
    146 C. Rittweiler and [many others][8]. I forked SLIME because I used it daily,
    147 for work, had a long list of hacks developed for myself, and wanted to share
    148 them with others.
    149 
    150 In 2013, SLIME development was stalling, patches and issues rotting. In early 
    151 2014,  Luís Oliveira and myself moved SLIME to Github and set up its Travis CI 
    152 system. I brought in the old bug reports from the Launchpad tracker, fixed 
    153 long-standing problems and submitted many changes, particularly to the 
    154 under-curated but popular "contrib" section.
    155 
    156 Now, the changes that SLY brings to the table are too deep at the Elisp and Lisp
    157 level to be accepted to SLIME, given its current focus on stability (for the
    158 record, I find this perfectly reasonable). The new features, such as stickers or
    159 multiple inspectors, cannot be realized well using only the existing "contrib"
    160 system.  Finally, SLY frees itself from the shackles of Emacs 23 and supports
    161 Emacs 24.3+ only, allowing for much cleaner code and liberal use of lexical
    162 binding.
    163 
    164 The list of technical reasons is bigger than this though, and you can read up on
    165 them in the [CONTRIBUTING.md][9] file.
    166 
    167 Contributing
    168 ------------
    169 
    170 [Open an issue or a pull request][4], but at least have a quick look at the
    171 first part [CONTRIBUTING.md][5] file for instructions on how to contribute.
    172 
    173 [1]: http://www.common-lisp.net/project/slime/
    174 [2]: https://github.com/joaotavora/sly/blob/master/README.md#fork
    175 [4]: https://github.com/joaotavora/sly/issues
    176 [5]: https://github.com/joaotavora/sly/blob/master/CONTRIBUTING.md
    177 [6]: https://github.com/joaotavora/sly/blob/master/NEWS.md
    178 [7]: https://www.youtube.com/watch?v=xqWkVvubnSI
    179 [8]: http://common-lisp.net/project/slime/doc/html/Credits.html#Credits
    180 [9]: https://github.com/joaotavora/sly/blob/master/CONTRIBUTING.md#architecture
    181 [10]: https://github.com/milkypostman/melpa
    182 [11]: https://github.com/joaotavora/sly-named-readtables
    183 [12]: https://github.com/joaotavora/sly-macrostep
    184 [13]: https://github.com/joaotavora/sly-quicklisp
    185 [14]: https://github.com/company-mode/company-mode
    186 [15]: https://github.com/emacs-helm/helm-sly
    187 [16]: https://zenodo.org/record/3742759
    188 [17]: https://github.com/joaotavora/sly-stepper
    189 [documentation]: http://joaotavora.github.io/sly
    190 [instasly]: http://joaotavora.github.io/sly/#Loading-Slynk-faster
    191 [trace-dialog]: http://joaotavora.github.io/sly/#Trace-Dialog
    192 [tutorial]: http://joaotavora.github.io/sly/#A-SLY-tour-for-SLIME-users
    193 
    194 <!-- Local Variables: -->
    195 <!-- fill-column: 80 -->
    196 <!-- End: -->