Index: slime/ChangeLog
diff -u slime/ChangeLog:1.611 slime/ChangeLog:1.612
--- slime/ChangeLog:1.611 Fri Feb 18 17:08:07 2005
+++ slime/ChangeLog Sun Feb 20 21:29:56 2005
@@ -1,3 +1,49 @@
+2005-02-20 Matthias Koeppe <mkoeppe(a)mail.math.uni-magdeburg.de>
+
+ Supersede the command slime-insert-arglist with the new command
+ slime-complete-form and bind it to C-c C-s. The command completes
+ an incomplete form with a template for the missing arguments.
+ There is special code for discovering extra keywords of generic
+ functions and for handling make-instance. Examples:
+
+ (subseq "abc" <C-c C-s>
+ --inserts--> start [end])
+ (find 17 <C-c C-s>
+ --inserts--> sequence :from-end from-end :test test
+ :test-not test-not :start start :end end :key key)
+ (find 17 '(17 18 19) :test #'= <C-c C-s>
+ --inserts--> :from-end from-end
+ :test-not test-not :start start :end end :key key)
+ (defclass foo () ((bar :initarg :bar)))
+ (defmethod initialize-instance :after ((object foo) &key blub))
+ (make-instance 'foo <C-c C-s>
+ --inserts--> :bar bar :blub blub initargs...)
+
+ * swank.lisp (arglist): New struct for storing decoded arglists.
+ (decode-arglist): New function.
+ (arglist-keywords, methods-keywords, generic-function-keywords,
+ applicable-methods-keywords): New functions.
+ (decoded-arglist-to-template-string,
+ print-decoded-arglist-as-template): New functions.
+ (arglist-to-template-string): Rewrite using above functions.
+ (remove-actual-args): New function.
+ (complete-form): New slimefun.
+
+ * swank.lisp (extra-keywords): New generic function.
+
+ * swank-backend.lisp (:swank-mop package):
+ Export compute-applicable-methods-using-classes.
+
+ * swank.lisp (arglist-for-insertion): Use extra-keywords to
+ enrich the list of keywords.
+
+ * swank.lisp (valid-operator-symbol-p): New function.
+ (valid-operator-name-p): Use valid-operator-symbol-p.
+
+ * slime.el (slime-complete-form): New command.
+ (slime-keys): Bind C-c C-s to slime-complete-form rather than
+ slime-insert-arglist.
+
2005-02-18 Antonio Menezes Leitao <aml(a)gia.ist.utl.pt>
Improve the trace mechanism (on lisps that support it). SLIME is
@@ -122,7 +168,7 @@
make return values inspectable in the debugger.
(signal-breakpoint): Initialize the new slot.
-2005-01-19 Matthias Koeppe <mkoeppe+slime(a)merkur.math.uni-magdeburg.de>
+2005-01-19 Matthias Koeppe <mkoeppe(a)merkur.math.uni-magdeburg.de>
* slime.el (slime-insert-arglist): Inserts a template for a
function call instead of the plain arglist; this makes a
@@ -205,7 +251,7 @@
* slime.el (slime-conservative-indentation): The default is now
nil. Suggested by Travis Cross.
-2005-01-10 Matthias Koeppe <mkoeppe+slime(a)merkur.math.uni-magdeburg.de>
+2005-01-10 Matthias Koeppe <mkoeppe(a)merkur.math.uni-magdeburg.de>
* slime.el (slime-inspector-next-inspectable-object): Accept a
prefix argument and make wrapping around more reliable. The code
@@ -224,7 +270,7 @@
comint-completion-addsuffix so unambiguous or exact completion
closes the string automatically.
-2004-12-16 Matthias Koeppe <mkoeppe+slime(a)merkur.math.uni-magdeburg.de>
+2004-12-16 Matthias Koeppe <mkoeppe(a)merkur.math.uni-magdeburg.de>
* slime.el (slime-keys): Bind M-* to
slime-pop-find-definition-stack for compatibility with standard
@@ -243,7 +289,7 @@
* swank.lisp (frame-for-emacs): Print the frame number a little
nicer with ~2D.
-2004-12-15 Matthias Koeppe <mkoeppe+slime(a)merkur.math.uni-magdeburg.de>
+2004-12-15 Matthias Koeppe <mkoeppe(a)merkur.math.uni-magdeburg.de>
* slime.el (slime-lisp-modes): New variable to make C-c C-k
customizable and usable in scheme-mode.
@@ -1375,207 +1421,7 @@
slime-background-message. This displays multi-line arglists.
(sldb-mode-map): Bind 'C' to sldb-inspect-condition.
-2004-08-14 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * slime.el (slime-find-buffer-package): Use "%s", not "%S", to
- avoid ugly escape characters, if the package name contains dots.
-
-2004-08-13 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (sldb-eval-in-frame): Print result to the REPL when a
- prefix argument is given.
- Added pull-down menus for SLDB and the REPL.
-
- * swank-source-path-parser.lisp: Removed caching of readtables and
- the source-map hashtable. Fresh creation is ultra-cheap (<1ms).
- The caching didn't handle modifications to readtables and
- generally made me feel uneasy while tracking down an obscure bug
- in a reader macro.
- The cached source-map hashtable also wasn't thread-safe (ho hum).
-
-2004-08-13 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * slime.el (slime-merge-notes, slime-tree-for-note): Use the short
- note message for annotation in the source buffer and the long
- message in the tree widget. Used to be the other way around.
- (sldb-insert-frames): Set the `start-open' property for XEmacs.
- Without `start-open', the `point-entered' property is inherited
- when we insert something before the "--more--" marker. Reported
- by Sundar Narasimhan.
-
- * swank.lisp (variable-desc-for-echo-area): Bind some printer
- variables to limit the length of the output.
-
-2004-08-05 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (slime-setup): Added typeout-frame keyword argument.
- (slime-thread-attach): Fixed misnamed function call.
-
-2004-08-04 Luke Gorrie <luke(a)bluetail.com>
-
- * swank-allegro.lisp (find-fspec-location): Fixed to work for more
- types of definition than just functions. So M-. now works for e.g.
- classes in Allegro. From Matthew Danish.
- (find-fspec-location): Include the type of the definition in the
- designator sent to Emacs. From Matthew Danish.
-
-2004-08-04 Martin Simmons <martin(a)xanalys.com>
-
- * swank-lispworks.lisp (frame-actual-args): Correct syntax for
- handler-case.
-
-2004-08-04 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * slime.el: (slime-mode-map, slime-repl-mode-map)
- (slime-repl-read-mode-map): Remove the binding for C-c C-g. C-c
- C-b is now the default interrupt key.
- (slime-list-repl-short-cuts): Don't trash the shortcut-table: copy
- it before sorting. (Thanks to Mark Simpson.)
-
-2004-08-02 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (slime-connect): Shorten the welcome message by leaving
- out the port number (which is displayed in the REPL anyway). This
- avoids line-wrapping some messages of encouragement.
-
- * swank.lisp (with-buffer-syntax): Don't bind *readtable* to
- *buffer-readtable* if they are already EQ. When we shadow this
- binding the user can't assign *readtable* from the REPL so it's
- best avoided when possible.
-
- * swank-allegro.lisp: Removed fwrapper-based code for inheriting
- "swankiness" to newly spawned threads. This was fighting the
- system and not the right thing.
-
- * slime.el (slime-choose-overlay-region): Tweaked the
- multiline-annotation-avoidance code to work with forms not
- starting with an open-paren, e.g. `(..) or #'(..).
- (slime-update-modeline-package): New configurable. Non-nil (the
- default) means update the Lisp package in the modeline using an
- idle timer.
- (slime-repl-send-input): Make the `slime-repl-old-input' property
- cover the whole input (including newline) so that pressing RET on
- the end of an input line works.
- Use a unique integer as the value of this property to distinguish
- adjacent inputs.
- (slime-current-package): Deal with narrowing.
-
-2004-08-01 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * swank-allegro.lisp (swank-compile-string): Use a temporary file
- and set excl::*source-pathname* manually. This way we can find
- the source buffer of functions compiled with C-c C-c.
- (call-with-temp-file, compile-from-temp-file): New functions.
- (list-callers, function-callers, in-constants-p)
- (map-function-constants): Implements list callers by groveling
- through the constants pools of named functions.
-
- * swank-lispworks.lisp: Minor refactoring.
-
-2004-07-30 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * slime.el (slime-connection): Say "No default connection
- selected" if there are open connections but no default connection.
- (slime-tree-indent-item): Point wasn't updated correctly if the
- last line was empty. Use insert-before-markers instead of insert
- to do it properly.
- (slime-draw-connection-list): Don't break if there is no default
- connection.
-
- * swank-cmucl.lisp (call-with-debugging-environment): Only handle
- DI::UNHANDLED-CONDITION not all DI:DEBUG-CONDITIONs.
-
- * swank-backend.lisp (sldb-condition): Show the original condition
- in the message.
-
-2004-07-28 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * slime.el (slime-eval-feature-conditional): Treat uppercase
- operators NOT, AND, OR correctly.
- (sldb-find-buffer): Remove killed buffers.
- (sldb-quit): Raise an error if the RPC returns.
- (slime-expected-failures): Delete unused function.
- (complete-symbol): Test completion of
- swank::compile-file. LispWorks has extra completions for
- cl::compile-file.
- (arglist): Test arglist of method cl:class-name. Add enough
- regexpery to pass the test in most implementations.
-
- * swank-sbcl.lisp (list-callers, list-callees): Implemented.
-
-2004-07-26 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (slime-first-change-hook): Add `save-match-data' to
- avoid breaking e.g. query-replace. Also added `save-excursion'
- just to be safe.
-
- * README: s/setup-slime/slime-setup/ in the .emacs snippet.
-
-2004-07-23 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (slime-set-state): Show the message in the modeline in
- the case where we aren't connected. Otherwise the "not connected"
- status is ignored.
- (slime-net-sentinel): Close the connection before changing the
- status message. The old behaviour of this combined with the old
- behaviour of `slime-set-state' could generally cause spurious
- errors after a connection was closed.
-
-2004-07-22 Luke Gorrie <luke(a)bluetail.com>
-
- * swank.lisp (carefully-find-package): Return *BUFFER-PACKAGE* if
- no other package can be found. This is reverting a previous change
- that broke completion in buffers with no known package.
-
- * slime.el (slime-maybe-start-lisp): Check that *inferior-lisp*
- exists /and/ has a running process. Fixes a startup problem if
- your inferior-lisp has died and you want to restart SLIME.
-
-2004-07-21 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (slime-sync-package-and-default-directory): Sync
- `default-directory' in the REPL buffer too.
- (slime-set-state): Convenience function for setting a connection's
- state-name and updating the modeline if appropriate. This function
- is called in the right places.
- (slime-to-lisp-filename): Use `expand-file-name'.
-
-2004-07-20 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (slime-repl-update-banner): Restore old behaviour of
- using an asynchronous evaluation to setup the REPL. This works
- around a problem I'd reintroduced where the first REPL command
- uses the wrong keymap.
-
-2004-07-20 Andreas Fuchs <asf(a)boinkor.net>
-
- * swank-sbcl.lisp (call-with-compilation-hooks): Trap and report
- errors that cause compilation to fail, e.g. read errors.
-
-2004-07-19 Luke Gorrie <luke(a)bluetail.com>
-
- * HACKING: Updated. Some notes about Emacs features.
-
- * slime.el: More major refactoring.
- Restructured and documented the networking and protocol code.
- (slime-rex-continuations): Now connection-local.
-
-2004-07-18 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el: Major refactoring.
- Mostly resectioning and reordering definitions to try and improve
- readability.
- (slime-get-temp-buffer-create): New utility function to popup a
- temporary buffer that automatically has a binding on `q' to
- intelligently restore window configuration. Handy, but currently
- not applicable to all of our temporary buffers.
- (slime-with-chosen-connection): Removed this macro. Consequently
- the compilation commands no longer prompt for which connection to
- use when given a prefix argument. `slime-switch-to-output-buffer'
- still works like that, but for other cases I think the
- connection-list buffer is sufficient.
- (slime-eval-async): New arglist: (form &optional cont pkg). If the
- continuation is unspecified then the evaluation result is ignored,
+2004-08-14 Helmut Eller <e
and if the package is unspecified then (slime-buffer-package) is
used.
(slime-eval): Package arg now defaults to (slime-buffer-package).
@@ -3339,109 +3185,7 @@
(describe-symbol-for-emacs, describe-definition): Distinguish
between ordinary and generic functions.
(call-with-debugging-environment): Unwind a few frames. Looks
- better and avoids the problems with the real topframe.
- (interesting-frame-p): Use Lispworks dbg:*print-xxx* variables to
- decide which frames are interesting.
- (frame-actual-args): New function.
- (print-frame): Use it.
-
- * swank.lisp (open-streams, make-output-function): Capture the
- connection not only the socket. This way the streams can be used
- from unrelated threads. Reported by Alain Picard.
- (create-connection): Factorized. Initialize the streams after the
- connection is created.
- (initialize-streams-for-connection, spawn-threads-for-connection):
- New functions.
- (with-connection): Fix quoting bug and move upwards before first
- use.
- (guess-package-from-string): Add kludge for SBCL !-package names.
- (apropos-list-for-emacs): Lispworks apparently returns duplicates;
- remove them.
- (inspect-object): Princ the label to allow strings and symbols.
- (send-output-to-emacs): Deleted.
- (defslimefun-unimplemented): Deleted. Was unused.
-
- * slime.el (slime-easy-menu): Add some more commands.
- (slime-changelog-date): New variable. Initialized with the value
- returned by the function of the same name. This detects
- incompatible versions if Emacs has not been restarted after an
- upgrade.
- (slime-check-protocol-version, slime-init-output-buffer): Use it.
- (slime-events-buffer, slime-log-event): Use fundamental mode
- instead of lisp-mode to avoid excessive font-locking for messages
- with lots of strings.
-
-2004-03-22 Luke Gorrie <luke(a)bluetail.com>
-
- * doc/slime.texi: New user manual.
-
- * swank.lisp (*communication-style*): New name for
- *swank-in-background*.
- Exported configuration variables: *communication-style*,
- *log-events*, *use-dedicated-output-stream*.
-
-2004-03-20 Julian Stecklina <der_julian(a)web.de>
-
- * swank-sbcl.lisp (+o_async+, +f_setown+, +f_setfl+): Add correct
- constants for FreeBSD.
-
-2004-03-19 Alan Shutko <ats(a)acm.org>
-
- * swank.lisp, swank-loader.lisp: Take into account
- `pathname-device' when deriving paths. A fix for Windows.
-
-2004-03-19 Luke Gorrie <luke(a)bluetail.com>
-
- * slime.el (slime-connected-hook): New hook called each time SLIME
- successfully connects to Lisp. This is handy for calling
- `slime-ensure-typeout-frame', if you want to use that feature.
- (sldb-print-condition): New command to print the SLDB condition
- description into the REPL, for reference after SLDB exits. Can be
- called from `sldb-hook' if you want the condition to always be
- printed. Bound to 'P' in SLDB.
-
-2004-03-18 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * swank.lisp (format-values-for-echo-area): Bind *package* to
- *buffer-package*.
- (load-system-for-emacs): Renamed from swank-load-system.
- (carefully-find-package): Be friendly to case inverting
- readtables.
- (inspect-current-condition): New function.
-
- * swank-backend.lisp, swank-cmucl.lisp (set-default-directory):
- New backend function.
-
- * swank-allegro.lisp, swank-clisp.lisp, swank-lispworks.lisp,
- swank-sbcl.lisp (swank-compile-string): Be friendly to
- case-inverting readtables.
-
- * slime.el (sldb-inspect-condition): Use
- swank:inspect-current-condition.
- (slime-inspector-label-face): Make it bold by default.
- (slime-check-protocol-version, slime-process-available-input):
- Wait 2 secs after displaying the error message.
- (sldb-list-catch-tags, sldb-show-frame-details): Display catch
- tags as symbols not as strings.
-
-2004-03-16 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>
-
- * slime.el (slime-dispatch-event, slime-rex): Pass a form instead
- of a string with :emacs-rex.
- (slime-connection-name): New connection variable. Use it in
- various places instead of slime-lisp-implementation-type-name.
-
- * swank.lisp: Better symbol completion for case-inverting
- readtables. (Thanks Thomas F. Burdick for suggestions.)
- (output-case-converter): New function.
- (find-matching-symbols): Case convert the symbol-name before
- comparing.
- (compound-prefix-match, prefix-match-p): Use char= instead of
- char-equal.
- (case-convert-input): Renamed from case-convert.
- (eval-for-emacs): Renamed from eval-string. Take a form instead
- of a string.
- (dispatch-event, read-from-socket-io): Update callers.
+ bette
(eval-region, interactive-eval): Use fresh-line to reset the column.
2004-03-13 Helmut Eller <e9626484(a)stud3.tuwien.ac.at>