Index: slime/ChangeLog
diff -u slime/ChangeLog:1.1145 slime/ChangeLog:1.1153
--- slime/ChangeLog:1.1145 Wed Aug 22 17:41:00 2007
+++ slime/ChangeLog Thu Aug 23 18:50:57 2007
@@ -1,9 +1,179 @@
+2007-08-23 Matthias Koeppe <mkoeppe(a)mail.math.uni-magdeburg.de>
+
+ Repair inspection of presentations.
+
+ * swank.lisp (inspect-presentation): New slimefun.
+ * slime.el (slime-inspect-presentation-at-mouse): Use it here.
+
+2007-08-23 Helmut Eller <heller(a)common-lisp.net>
+
+ Move Marco Baringer's inspector to contrib.
+
+ * swank.lisp (*default-inspector*): New variable. Set this
+ variable dispatch to different inspectors.
+ (inspect-object): Use it.
+
+ * swank-loader.lisp (*contribs*): Add 'swank-fancy-inspector.
+
+ * swank-backend.lisp (backend-inspector): New class. Introduce a
+ named class to give as another way to dispatch to backend methods.
+
+ * swank-cmucl.lisp: Use backend-inspector class.
+ * swank-sbcl.lisp: Use backend-inspector class.
+ * swank-clisp.lisp: Use backend-inspector class.
+ * swank-lispworks.lisp: Use backend-inspector class.
+ * swank-allegro.lisp: Use backend-inspector class.
+ * swank-openmcl.lisp: Use backend-inspector class.
+ * swank-abcl.lisp: Use backend-inspector class.
+ * swank-corman.lisp: Use backend-inspector class.
+ * swank-scl.lisp: Use backend-inspector class.
+
+2007-08-23 Tobias C. Rittweiler <tcr(a)freebits.de>
+
+ Added arglist display for declaration specifiers and type
+ specifiers.
+
+ Examples:
+
+ `(declare (type' will display
+
+ (declare (type type-specifier &rest vars))
+
+ `(declare (type (float' will display
+
+ [Typespec] (float &optional lower-limit upper-limit)
+
+ `(declare (optimize' will display
+
+ (declare (optimize &any (safety 1) (space 1) (speed 1) ...))
+
+ &ANY is a new lambda keyword that is introduced for arglist
+ description purpose, and is very similiar to &KEY, but isn't based
+ upon plists; they're more based upon *FEATURES* lists. (See the
+ comment near the ARGLIST defstruct in `swank.lisp'.)
+
+ * slime.el:
+ (slime-to-feature-keyword): Renamed to `slime-keywordify'.
+ (slime-eval-feature-conditional): Adapted to use `slime-keywordify'.
+ (slime-ensure-list): New utility.
+ (slime-sexp-at-point): Now takes an argument that specify how many
+ sexps at point should be returned.
+ (slime-enclosing-operator-names): Renamed to
+ `slime-enclosing-form-specs'.
+ (slime-enclosing-form-specs): Returns a list of ``raw form specs''
+ instead of what was called ``extended operator names'' before, see
+ `swank::parse-form-spec' for more information. This is a
+ simplified superset. Additionally as tertiary return value return
+ a list of points to let the caller see where each form spec is
+ located. Adapted callers accordingly. Extended docstring.
+ (slime-parse-extended-operator-name): Adapted to changes in
+ `slime-enclosing-form-specs'. Now gets more context, and is such
+ more powerful. This was needed to allow parsing DECLARE forms.
+ (slime-make-extended-operator-parser/look-ahead): Because the
+ protocol for arglist display was simplified, it was possible to
+ replace the plethora of parsing function just by this one.
+ (slime-extended-operator-name-parser-alist): Use it. Also add
+ parser for DECLARE forms.
+ (slime-parse-extended-operator/declare): Responsible for parsing
+ DECLARE forms.
+ (%slime-in-mid-of-typespec-p): Helper function for
+ `slime-parse-extended-operator/declare'.
+ (slime-incomplete-form-at-point): New. Return the ``raw form
+ spec'' near point.
+ (slime-complete-form): Use `slime-incomplete-form-at-point'.
+
+ * swank.lisp: New Helper functions.
+ (length=, ensure-list, recursively-empty-p): New.
+ (maybecall, exactly-one-p): New.
+
+ * swank.lisp (arglist-for-echo-area): Adapted to take ``raw form
+ specs'' from Slime.
+ (parse-form-spec): New. Takes a ``raw form spec'' and returns a
+ ``form spec'' for further processing in Swank. Docstring documents
+ these two terms.
+ (split-form-spec): New. Return relevant information from a form spec.
+ (parse-first-valid-form-spec): Replaces `find-valid-operator-name'.
+ (find-valid-operator-name): Removed.
+ (operator-designator-to-form): Removed. Obsoleted by `parse-form-spec'.
+
+ (defstruct arglist): Add `any-p' and `any-args' slots to contain
+ arguments belonging to the &ANY lambda keyword.
+ (print-arglist): Adapted to also print &ANY args.
+ (print-decoded-arglist-as-template): Likewise.
+ (decode-arglist): Adapted to also decode &ANY args.
+ (remove-actual-args): Adapted to also remove &ANY args.
+ (remove-&key-args): Split out from `remove-actual-args'.
+ (remove-&any-args): New. Removes already provided &ANY args.
+ (arglist-from-form-spec): New. Added detailed docstring.
+ (arglist-dispatch): Dispatching generic function for
+ `arglist-from-form-spec' that does all the work. Renamed from
+ prior `form-completion'.
+ (arglist-dispatch) Added methods for dealing with declaration and
+ type-specifiers.
+ (complete-form): Adapted to take ``raw form specs'' from Slime.
+ (completions-for-keyword): Likewise.
+ (format-arglist-for-echo-area): Removed. Not needed anymore.
+
+ * swank-backend.lisp (declaration-arglist): New generic
+ function. Returns the arglist for a given declaration
+ identifier. (Backends are supposed to specialize it if they can
+ provide additional information.)
+ (type-specifier-arglist): New generic function. Returns the
+ arglist for a given type-specifier operator. (Backends are
+ supposed to specialize it if they can provide additional
+ information.)
+ (*type-specifier-arglists*): New variable. Contains the arglists
+ for the type specifiers in Common Lisp.
+
+ * swank-sbcl.lisp: Now depends upon sb-cltl2.
+ (declaration-arglist 'optimize): Specialize the `optimize'
+ declaration identifier to pass it to
+ sb-cltl2:declaration-information.
+
+
+2007-08-23 Helmut Eller <heller(a)common-lisp.net>
+
+ Some inspector cleanups.
+
+ * slime.el (slime-inspect): Remove dwim stuff and drop keyword
+ args.
+ (slime-read-object): Killed.
+ (slime-open-inspector): Drop keyword args. Update callers
+ accodordingly, expect presentation related code. Presentations no
+ longer work in the inspector.
+
+ * swank.lisp (*inspector-dwim-lookup-hooks*)
+ (default-dwim-inspector-lookup-hook): Deleted.
+ (init-inspector): Sanitize arglist.
+ (inspect-object): Don't return an :id for *inspectee-parts*.
+
+ * swank-backend (type-for-emacs): Removed. No backend implemented
+ it.
+
+2007-08-23 Helmut Eller <heller(a)common-lisp.net>
+
+ * slime.el (slime-fuzzy-upgrade-notice): New function. Bound to
+ the key where slime-fuzzy-complete-symbol used to be.
+
2007-08-22 Tobias C. Rittweiler <tcr(a)freebits.de>
* slime.el (slime-close-all-parens-in-sexp): Fix interplay with
`slime-close-parens-limit'. This should also affect
`slime-complete-form' (C-c C-s) in a positive way.
+2007-08-19 Helmut Eller <heller(a)common-lisp.net>
+
+ * contrib: New directory. Move fuzzy completion code to that
+ directory.
+
+ * swank.lisp (swank-require): New function to load contrib code.
+ (*find-module*, module-filename, *load-path*, merged-directory)
+ (find-module, module-canditates): New. Pathname acrobatics for
+ swank-require.
+
+ * swank-loader.lisp: Compile (but don't load) contribs.
+ (*contribs*, contrib-source-files): New.
+
2007-08-16 Tobias C. Rittweiler <tcr(a)freebits.de>
* slime.el (slime-process-available-input): Correct yesterday's
@@ -15,7 +185,7 @@
to send a `:debug-return' message before the acknowledgement
message for `sldb-quit' is sent. So the acknowledgement is
received in a context where the sldb-buffer is closed already.
-
+
2007-08-15 Tobias C. Rittweiler <tcr(a)freebits.de>
* slime.el (slime-process-available-input): Make sure that the
@@ -24,7 +194,7 @@
Previously, the clauses of `slime-rex' were processed in the
internal *cl-connection* buffer. And as a result the continuations
passed to `slime-eval' and `slime-eval-async' ditto.
-
+
2007-08-15 Tobias C. Rittweiler <tcr(a)freebits.de>
Make `M-.' work on definitions outside the current restriction.