https://github.com/mmontone/slime-star
SLIME configuration with some extensions pre-installed.
https://github.com/mmontone/slime-star
common-lisp emacs ide lisp slime tools
Last synced: 11 days ago
JSON representation
SLIME configuration with some extensions pre-installed.
- Host: GitHub
- URL: https://github.com/mmontone/slime-star
- Owner: mmontone
- Created: 2022-03-24T17:52:45.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2025-01-17T15:40:27.000Z (3 months ago)
- Last Synced: 2025-03-27T02:21:45.484Z (28 days ago)
- Topics: common-lisp, emacs, ide, lisp, slime, tools
- Language: Emacs Lisp
- Homepage:
- Size: 1.24 MB
- Stars: 42
- Watchers: 6
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
* SLIME ⭐
:PROPERTIES:
:CUSTOM_ID: slime
:END:** Overview
:PROPERTIES:
:CUSTOM_ID: overview
:END:This is a [[https://slime.common-lisp.dev/][SLIME]] configuration that
provides the following contribs:- [[https://github.com/mmontone/lisp-system-browser][Lisp System Browser]]
- [[https://github.com/mmontone/slime-doc-contribs][SLIME Doc Contribs]]
- [[https://github.com/mmontone/quicklisp-systems][Quicklisp Systems]]
- [[https://github.com/tkych/quicksearch][Quicksearch utility]]
- [[https://github.com/mmontone/slime-breakpoints][SLIME Breakpoints]]
- [[https://github.com/mmontone/quicklisp-apropos][Quicklisp apropos]]
- [[https://github.com/mmontone/slime-critic][SLIME Critic]]
- Use [[#dedicated-emacs-buffers-for-output-streams][dedicated Emacs buffers]] for output streams.
- Interactive [[#interactive-trace-and-print-buffers][trace and print buffers]].
- Inspect objects from their printed representation in
[[#output-stream-inspector][output streams]].
- [[#improved-documentation-mode][Access to dpans3 based ANSICL spec]]
in Emacs Info format.It also adds some custom utilities and menus.
** Install
:PROPERTIES:
:CUSTOM_ID: install
:END:⚠️ *This is ALPHA software*
Clone this repository using --recursive option (this repo has git
submodules):#+BEGIN_EXAMPLE
git clone --recursive https://github.com/mmontone/slime-star.git
#+END_EXAMPLEInstall some dependencies from Quicklisp:
#+BEGIN_SRC lisp
sbcl --load install.lisp --quit
#+END_SRCIn your =.emacs=:
#+BEGIN_EXAMPLE
;; Setup load-path, autoloads and your lisp system
(add-to-list 'load-path "~/dir/to/cloned/slime-star");; Add slime-star to slime-contribs:
(setq slime-contribs '(slime-fancy slime-star))
#+END_EXAMPLE*** Try via Docker
:PROPERTIES:
:CUSTOM_ID: try-via-docker
:END:From =docker= directory run:
- =make build=
- =make run=** Configuration
:PROPERTIES:
:CUSTOM_ID: configuration
:END:You'll need to =M-x customize-group slime-star= and
=M-x customize-group slime-breakpoints= to enable some of the features
(experimental and opinionated features are disabled by default). And
then restart Emacs (not all changes are immediatly applied).** Screenshots
:PROPERTIES:
:CUSTOM_ID: screenshots
:END:*** System browser
:PROPERTIES:
:CUSTOM_ID: system-browser
:END:#+CAPTION: system-browser
[[https://github.com/mmontone/lisp-system-browser/raw/master/lisp-system-browser.png]]- =M-x lisp-system-browser= to start.
- =M-x quit-system-browser= to quit.*** Quickload with completion
:PROPERTIES:
:CUSTOM_ID: quickload-with-completion
:END:#+CAPTION: quickload completion
[[https://github.com/mmontone/quicklisp-systems/raw/master/completion.gif]]*** Breakpoints, stepping, toolbars, evaluation and locals navigation
:PROPERTIES:
:CUSTOM_ID: breakpoints-stepping-toolbars-evaluation-and-locals-navigation
:END:[[file:screenshots/toolbars.png]]
[[https://github.com/mmontone/slime-breakpoints/raw/master/sldb-source-eval.png]]
[[https://github.com/mmontone/slime-breakpoints/blob/master/sldb-show-frame-local.gif]]*** Improved documentation mode
:PROPERTIES:
:CUSTOM_ID: improved-documentation-mode
:END:[[https://github.com/mmontone/slime-doc-contribs/raw/master/slime-help.png]]
[[file:screenshots/ansicl-info.png]]*** Critic
:PROPERTIES:
:CUSTOM_ID: critic
:END:#+CAPTION: slime-critic
[[https://github.com/mmontone/slime-critic/raw/master/screenshot.png]]- =M-x slime-critic-critique-buffer=
*** Quicklisp system browsing
:PROPERTIES:
:CUSTOM_ID: quicklisp-system-browsing
:END:#+CAPTION: quicklisp-systems
[[https://github.com/mmontone/quicklisp-systems/raw/master/screenshot.png]]=M-x quicklisp-systems= command and family.
*** Dedicated Emacs buffers for output streams
:PROPERTIES:
:CUSTOM_ID: dedicated-emacs-buffers-for-output-streams
:END:Use:
- =M-x slime-toggle-output-buffer= to send =*standard-output*= to an
Emacs buffer.
- =M-x slime-toggle-error-buffer= to send =*error-output*= to an Emacs
buffer.
- =M-x slime-toggle-trace-buffer= to send =*trace-output*= to an Emacs
buffer.*** Interactive TRACE and PRINT buffers
:PROPERTIES:
:CUSTOM_ID: interactive-trace-and-print-buffers
:END:**** Trace buffer
:PROPERTIES:
:CUSTOM_ID: trace-buffer
:END:Toggle functions for tracing using =C-c M-t=. After traced functions are
called an interactive Emacs buffer appears, from where it is possible to
inspect the traces, interactively.#+CAPTION: trace-and-print-buffers
[[file:screenshots/trace-and-print-buffers.png]]**** Print buffer
:PROPERTIES:
:CUSTOM_ID: print-buffer
:END:Use commands =M-x slime-debug-print-last-expression-in-buffer= and
=M-x slime-debug-print-next-expression-in-buffer= for printing expression to
an Emacs buffer. Or manually insert a call to =swank-print-buffer:prn= in what you
want to get printed for inspection. An Emacs buffer opens from where it
is possible to inspect the printed value.** Extra commands
- =M-x slime-system-dependency-graph= Visualize a dependencies graph for ASDF SYSTEM. Requires asdf-dependency-graph library installed.
- =M-x sldb-show-all-frames-details= Show details of all frames in debugger.
- =M-x sldb-kill-all-buffers= Kill all SLDB (debugger) buffers.
- =M-x slime-scratch= Open the equivalent of an Emacs *scratch* buffer, for Common Lisp/SLIME.
- =M-x slime-room= Show Common Lisp ROOM information in an Emacs buffer.
** *EXPERIMENTAL**** Output stream inspector
:PROPERTIES:
:CUSTOM_ID: output-stream-inspector
:END:SLIME does not provide a way of inspecting objects printed to output
streams; say an object is printed to some stream:
=#=, there's no way to access and inspect the
object printed.SLIME ⭐ comes with an extension for inspecting objects that are printed
to output streams. To enable, evaluate in Lisp:
=(setf stream-inspector:*persistent-pointers* t)=. Then from emacs, move
the cursor to some printed object, and =M-x slime-inspect-printed=.** License
:PROPERTIES:
:CUSTOM_ID: license
:END:SLIME :star: is free software. All files, unless explicitly stated
otherwise, are public domain.