all of this started out with the following goal:
it should be _easy_ to ask a live lisp image what's in it, it should be _easy_ to access the associated doc strings and inspect associated "things" like the slots of a class or the symbols in a package. developers should have the option of telling users to inspect the various functions and symbols in a library instead of having to produce api documentation in another form (though that's never a bad idea).
the attached patch changes, rather radically, the inspector. the lisp side now deals with formatting and can create "buttons" (certain pieces of text which when clicked call a lambda). this is used to, among other things, implement a simple method deleter.
currently it has inspectors for: standard-class, standard-generic-function, standard-method, standard-slot-definiton, array, hash-table, package and cons cells (ciruclar lists, proper lists and "regular" cons cells),
features:
- access docstrings associated with classes, slots, generic functions, methods, functions and global variables/constants.
- makunbound, fmakunbound, remove-method from within inspector.
todo:
- lots of custom inspectors (strings, ).
- improve inspection of arrays (in particular it'd be nice to distinguish between strings, vectors, matrixes and other n-dimensional arrays).
- re-implement the list vieweing (don't inspect the entire list at once).
- invent some simple syntax for doc strings which will allow the developer to write "See Also" fields and have those "clikable."
- distinguish between classes, structs.
- types (deftype)
- figure out how to distinguish between a defvar/defparameter and defcontstant symbol.
- figure out how to access non portable system specific "extras"
- compiler-macros. how should this work?
- [not sure about this one] have slime-describe-function go to an inspector buffer, have slime-describe-variable inspect the symbol.