[slime-devel] My personal Slime Feature wishlist

Thomas Schilling tjs_ng at yahoo.de
Sat Jul 24 14:58:27 UTC 2004


I just put together a list of features I'd like to have in SLIME. I think 
it's better to post it here than letting it get dusty in my home-dir. 
Consider it as a base of discussion or a possible roadmap for, say, SLIME 
2.0 than as a list of must-haves. It's all in the spirit of making 
SLIME+Lisp the superior tool to accomplish everything :) Of course, I'm 
willing to contribute, too.

They are ordered in terms of (by me) estimated efford.

* Nicer Homepage

   How about this?: 
http://www.inf.tu-dresden.de/~s3815210/slime-hp-suggestion/

* Class Browser

   Open a window where the class under the point is shown with all its
   direct superclasses and its direct subclasses or all of both.

   - `s' shows/hides the class' direct slots
   - `m' shows/hides all methods specializing on the class

* Source Outline Mode

   Provide an outline mode for lisp source. That is the user can
   collapse/expand single lisp expressions.

   - The keybindings should be the same as in the text outline mode.
   - What do we show of collapsed expressions? Should a `defun' include
     the argument list? Should it be specific to the expression being
     collapsed? Should every expression be collapsible?
   - A block of comments may be considered
     a) as a single sexp
     b) as belonging to the next sexp (if it's on a separate line) or
        to the provious sexp (if it's on the same line)
     I favour b) since it would make a full-collapsed file more concise.

* Refactoring Aids

   Provide commands for refactoring operations. Examples for useful
   Lisp-refactorings are:
   - extract/inline function/method
   - move slot to super-/subclass
   - inline temp/replace temp with query
   - rename function/class/slot/variable/...
   - ...

   - We have to work out which refactorings from [1] are applicable to
     Lisp (and make sence) and which additional refactorings would be
     useful for Lisp.
   - Some refactorings are really hard to implement. Namely all that
     require a code walker
   - Note that refactorings are considered save modifications on
     _working_ code in order to ease implementation of new features. It
     might still be worth considering how much refactoring is possible
     without assuming that the code is already compiled and DTRT.

* Program Slicing

   Display (only) all the code that can effect a specified object. For
   example if invoked on a slot name display all expressions that may
   change this slot's value _and_ show all expressions that effect
   these former statements.

   - How much effort would it take to implement this?
   - Is it really useful for lisp? (Since lisp does indeed have
     side-effects, I think it would be of a certain use. So maybe the
     question should be: How much useful can it be for lisp?)
   - Can we cover all cases?
   - What additional information would be needed?

Footnotes:
[1] "Refactoring - Improving the Design of Existing Code" by Martin
     Fowler et. al., Addison Wesley, 2000

Regards,

-ts
-- 
      ,,
     \../   /  <<< The LISP Effect
    |_\\ _==__
__ | |bb|   | _________________________________________________





More information about the slime-devel mailing list