selime

Superior Elisp mode for Emacs
git clone https://git.jamzattack.xyz/selime
Log | Files | Refs | LICENSE

README.org (2398B)


      1 #+title: selime.el -- SLIME emulation for Emacs Lisp
      2 #+author: Jamie Beardslee
      3 #+email: jdb@jamzattack.xyz
      4 
      5 This package is my attempt at recreating some features of [[https://github.com/slime/slime][SLIME]] for
      6 Elisp.
      7 
      8 * Installation
      9 ** package.el
     10 
     11 Download selime.el, and use =M-x package-install-file RET
     12 path/to/selime.el=.
     13 
     14 ** straight.el
     15 
     16 Evaluate the following:
     17 
     18 #+begin_src emacs-lisp
     19   (straight-use-package
     20    '(selime :type git
     21 	    :flavor melpa
     22 	    :repo "git://jamzattack.xyz/selime"))
     23 #+end_src
     24 
     25 ** Manual installation
     26 
     27 1. Download selime.el
     28 2. Stick it in [[help:load-path][load-path]]
     29 3. Update autoloads
     30 4. (optionally) byte-compile it
     31 
     32 * Features
     33 
     34 ** Compilation
     35 
     36 Selime adds the following keybindings for byte-compilation:
     37 
     38 | C-c C-c | Compile top-level form                        |
     39 | C-c C-e | Compile last s-expression                     |
     40 | C-c M-k | Compile the buffer's file, without loading it |
     41 | C-c C-k | Compile and load the current buffer           |
     42 
     43 ** Documentation
     44 
     45 Selime binds the following keys for documentation:
     46 
     47 Note: If the package [[https://github.com/Wilfred/helpful][helpful]] is installed, selime uses helpful's
     48 variants of these functions.
     49 
     50 | C-c C-d C-d | Describe symbol   |
     51 | C-c C-d d   | Describe symbol   |
     52 | C-c C-d C-f | Describe function |
     53 | C-c C-d f   | Describe function |
     54 | C-c C-d C-v | Describe variable |
     55 | C-c C-d v   | Describe variable |
     56 
     57 ** IELM
     58 
     59 Selime defines a function, [[help:selime-ielm][selime-ielm]], which acts more like
     60 [[help:slime-switch-to-output-buffer][slime-switch-to-output-buffer]].  With a prefix argument (C-u), you can
     61 select the name for the IELM buffer.
     62 
     63 | C-c C-z | Switch to IELM in other window |
     64 
     65 ** Disassembly
     66 
     67 If point is on a function, disassemble it.  Otherwise, prompt for a
     68 function name.
     69 
     70 | C-c M-d | Disassemble function at point |
     71 
     72 ** Tracing
     73 
     74 Like SLIME, =C-c C-t= toggles tracing of a function.  The function
     75 name is read from the minibuffer, with the symbol at point being the
     76 default input.
     77 
     78 | C-c C-t | Toggle trace |
     79 
     80 ** Macroexpand
     81 
     82 Selime implements a very minimal (i.e. crap) form of macro expansion.
     83 The command [[help:selime-macroexpand][selime-macroexpand]] will open a new buffer containing the
     84 expansion of the s-expression around point.
     85 
     86 | C-c RET | Macroexpand sexp around point |
     87 
     88 *** TODO Integrate with [[https://github.com/joddie/macrostep][macrostep]]
     89 
     90 * License
     91 
     92 GPL3+