2010-06-04 Helmut Eller <[email protected]> * inferior-slime.el (inferior-slime-show-transcript): Update window point 2010-05-29 Stas Boukarev <[email protected]> * swank-fancy-inspector.lisp (emacs-inspect): Add [finalize] button for not finalized classes. 2010-05-28 Helmut Eller <[email protected]> Call provide at the end of the file. * slime-asdf.el slime-banner.el slime-clipboard.el slime-compiler-notes-tree.el slime-enclosing-context.el slime-highlight-edits.el slime-hyperdoc.el slime-indentation.el slime-mdot-fu.el slime-motd.el slime-mrepl.el slime-presentation-streams.el slime-sbcl-exts.el slime-snapshot.el slime-sprof.el slime-tramp.el slime-typeout-frame.el slime-xref-browser.el: 2010-05-28 Helmut Eller <[email protected]> * slime-c-p-c.el slime-fancy-inspector.el slime-fancy.el slime-fontifying-fu.el slime-fuzzy.el slime-package-fu.el slime-parse.el slime-presentations.el slime-references.el slime-repl.el slime-scratch.el: Call provide at the end of the file. 2010-05-28 Helmut Eller <[email protected]> * swank-kawa.scm (wrap-compilation): Set Compilation.explict flag. (list-file): Add cast to resolve overloaded parse method. (disassemble-form): Update for change from 2010-05-18. 2010-05-19 Stas Boukarev <[email protected]> * slime-repl.el (slime-list-repl-short-cuts): Don't scroll to the bottom, don't error if a shortcut has no documentation. 2010-05-16 Stas Boukarev <[email protected]> * swank-arglists.lisp (decode-arglist): Handle (x . y) macro arglists. 2010-05-14 Tobias C. Rittweiler <[email protected]> * slime-highlight-edits.el, slime-hyperdoc.el, slime-mrepl.el, slime-snapshot.el: Fix typo. 2010-05-13 Tobias C. Rittweiler <[email protected]> Perform PATHNAME on file-streams safely. * swank-fancy-inspector.lisp (make-visit-file-thunk): Deleted. (make-pathname-ispec): New helper. (make-file-stream-ispec): New helper. (emacs-inspect file-stream): Use them. (emacs-inspect stream-error): Ditto. 2010-05-13 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el, slime-c-p-c.el, slime-compiler-notes-tree.el, slime-enclosing-context.el, slime-fancy.el, slime-fuzzy.el, slime-hyperdoc.el, slime-mdot-fu.el, slime-mrepl.el, slime-parse.el, slime-presentations.el, slime-repl.el, slime-snapshot.el, slime-tramp.el, slime-xref-browser.el: Use newly added `define-slime-contrib' macro to specify slime and swank dependencies, and to specify what should happen on contrib load/unload. 2010-05-13 Stas Boukarev <[email protected]> * slime-asdf.el (slime-asdf-collect-notes): New variable. Collect and display notes produced by the compiler. Defaulted to T. 2010-05-08 Stas Boukarev <[email protected]> * slime-presentations.el (slime-presentation-write-result): Do slime-repl-show-maximum-output at the end. This really solves jumping. 2010-05-07 Stas Boukarev <[email protected]> * slime-presentations.el (slime-presentation-write): Reuse functions from slime-repl. This fixes spurious point jumps. * slime-repl.el (slime-repl-show-maximum-output): Don't search for a window of the buffer if the current window already displays it. (slime-with-output-end-mark): Removed, unused. 2010-05-05 Stas Boukarev <[email protected]> * slime-tramp.el (slime-tramp-to-lisp-filename): Check if slime is connected, because slime-to-lisp-filename is now used for establishing connection. 2010-05-05 Helmut Eller <[email protected]> * slime-editing-commands.el: Fix typo. 2010-05-01 Stas Boukarev <[email protected]> * slime-fuzzy.el(slime-fuzzy-dehighlight-current-completion): instead of creating new overlays, move one overlay around. (slime-mimic-key-bindings): Renamed from mimic-key-bindings. Patch by Leo Liu. 2010-05-01 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-update-banner): Use slime-move-point instead of goto-char alone, ensuring that the point is moved even if the window isn't currently selected. 2010-04-18 Stas Boukarev <[email protected]> * slime-presentations.el (slime-repl-grab-old-output,slime-copy-or-inspect-presentation-at-mouse): If the presentation at point is no longer available, remove presentation properties from the object. * swank-presentations.lisp (lookup-presented-object): defun->defslimefun. 2010-04-06 Stas Boukarev <[email protected]> * slime-c-p-c.el (slime-complete-symbol*-fancy-bit): There is no slime-space-information-p variable anymore. Patch by Steven H. Margolis. 2010-04-06 Stas Boukarev <[email protected]> * slime-sprof.el (slime-sprof-format): Remove references to the removed code. 2010-04-05 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-inside-string-or-comment-p): New function, when in the REPL prompt, narrow the search to the prompt, otherwise stray " from the previous prompts or outputs may confuse slime-inside-string-or-comment-p. * slime-autodoc.el (slime-autodoc): Use slime-repl-inside-string-or-comment-p when fbound. 2010-04-05 Stas Boukarev <[email protected]> * slime-autodoc.el (slime-autodoc-manually): Rename from slime-autodoc-full. Like slime-autodoc, but when called twice, or after slime-autodoc was already automatically called, display multiline arglist. 2010-04-05 Stas Boukarev <[email protected]> * slime-autodoc.el (slime-autodoc-full): New command, displays multiline arglists. Bound to C-c C-d a. (slime-make-autodoc-rpc-form): Don't send :print-lines to autodoc, always use the actual width for :print-right-margin, remove newlines on formatting when needed. (slime-autodoc): Add optional parameter multilinep defaulted to slime-autodoc-use-multiline-p, pass it to slime-format-autodoc. * swank-arglists.lisp (autodoc, decoded-arglist-to-string): remove print-lines parameter, it's not used anymore. 2010-04-05 Stas Boukarev <[email protected]> * slime-sprof.el (slime-sprof-browser): Use slime-with-popup-buffer for buffer creation. 2010-04-03 Stas Boukarev <[email protected]> * swank-arglists.lisp (print-decoded-arglist): prin1-arg -> print-arg. 2010-04-03 Stas Boukarev <[email protected]> * swank-arglists.lisp (print-decoded-arglist): Print keywords using princ again. 2010-04-03 Stas Boukarev <[email protected]> * swank-arglists.lisp (arglist-dispatch): Handle method qualifiers. (print-arg): Renamed from princ-arg. (prin1-arg): Removed. * slime-autodoc.el (autodoc.1): Add test-case for method qualifiers 2010-03-30 Stas Boukarev <[email protected]> * swank-arglists.lisp (*arglist-show-packages*): New customization variable, when non-nil show qualified symbols. (with-arglist-io-syntax): new macro for respecting the above variable. (decoded-arglist-to-string, decoded-arglist-to-template-string): Use the macro above. 2010-03-23 Tobias C. Rittweiler <[email protected]> Do not do an unnecessary autodoc RPC request in case we're not actually inside a form. * slime-autodoc.el (slime-make-autodoc-rpc-form): Return nil if not inside a form. (slime-autodoc): Adapted accordingly to propagate nil to eldoc. 2010-03-20 Stas Boukarev <[email protected]> * slime-c-p-c.el, slime-fuzzy.el: Don't define keys on slime-repl-mode-map if slime-repl isn't loaded. * slime-presentations.el: Refuse to load if slime-repl isn't loaded. Reported by Robert Goldman. 2010-03-13 Stas Boukarev <[email protected]> * slime-asdf.el: use slime-from-lisp-filename so that slime-tramp can work. Reported by Peter Stirling. 2010-03-12 Stas Boukarev <[email protected]> * swank-arglists.lisp (extract-local-op-arglists (eql 'labels)): Fix (labels ((name |))). 2010-03-09 Stas Boukarev <[email protected]> * swank-arglists.lisp (arglist-ref): Don't error if a &key name isn't a :keyword symbol. And also handle non-:keyword keyword parameters. 2010-03-09 Stas Boukarev <[email protected]> * swank-presentations.lisp (inspect-presentation): Throw an error when trying to access unrecorded object. (lookup-presented-object-or-lose): Rename from `get-repl-result'. 2010-03-09 Stas Boukarev <[email protected]> * slime-repl.el (slime-call-defun): When on defclass insert (make-instance 'name). 2010-03-08 Stas Boukarev <[email protected]> * swank-fancy-inspector.lisp (all-slots-for-inspector): Sort class names when grouping by inheritance the same way as slots are sorted. 2010-03-08 Stas Boukarev <[email protected]> * slime-repl.el (slime-call-defun): Work also on defvar/defparameter. 2010-03-07 Stas Boukarev <[email protected]> * swank-fancy-inspector.lisp (stable-sort-by-inheritance): Remove copy-seq, unnecessarily put in the previous commit. 2010-03-07 Stas Boukarev <[email protected]> * swank-fancy-inspector.lisp: Add buttons for selecting default sorting order and default grouping method of slots of a class. (all-slots-for-inspector): Implement the above feature. Move the default method from :method option of the GF to a separate defmethod, this method is quite large and :method eats space for indentation. (*inspector-slots-default-order*): New variable, accepts :unsorted and :alphabetically (*inspector-slots-default-grouping*): New variable, accepts :all and :inheritance. 2010-03-07 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (extract-local-op-arglists): Fix for `(labels ((foo (x) ...)|'. * slime-autodoc.el (autodoc.1): Add test cases. 2010-02-20 Tobias C. Rittweiler <[email protected]> * slime-fancy.el: Call init function for fancy inspector. Necessary due to 2010-02-15. 2010-02-19 Stas Boukarev <[email protected]> * slime-fuzzy.el (slime-fuzzy-choices-buffer): Make connection buffer-local, otherwise `swank:fuzzy-completion-selected' will be sent to the default connection. 2010-02-17 Helmut Eller <[email protected]> Fix bugs when *inferior-buffers* doesn't exist. * inferior-slime.el (inferior-slime-start-transcript) (inferior-slime-stop-transcript): Make sure the buffer exists. 2010-02-15 Tobias C. Rittweiler <[email protected]> * slime-asdf.el, slime-autodoc.el, slime-c-p-c.el, slime-clipboard.el, slime-fancy-inspector.el, slime-fuzzy,el, slime-indentation.el, slime-motd.el, slime-presentation-streams.el, slime-presentations.el, slime-sbcl-exts, slime-snapshot.el, slime-sprof.el: Make sure that contrib code does not try to load in swank code asynchronously but use `slime-require' instead; also make sure to move the `slime-require' into the contribs' init function. 2010-01-31 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-mode): Don't do (use-local-map slime-repl-mode-map) because it will be used through slime-repl-map-mode minor mode. This fixes double entries in the menu bar. Reported by RaceCondition from #lisp. 2010-01-25 Stas Boukarev <[email protected]> * slime-package-fu.el (slime-goto-next-export-clause): Use " \n\t" for `skip-chars-forward' instead of [:alpha:], because it doesn't work for some reason. (slime-search-exports-in-defpackage): take #:symbol and :symbol into account too. 2010-01-14 Stas Boukarev <[email protected]> * slime-repl.el: Revert the previous change because it didn't work in some cases. (slime-repl-map-mode): New minor mode which sole purpose is to enable `slime-repl-mode-map'. (slime-repl-mode): Enable `slime-repl-map-mode' after enabling `slime-editing-map'. This will finally allow `slime-repl-mode-map' to take precedence of `slime-editing-map'. 2010-01-14 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-mode-map): Use both `slime-editing-map' and `lisp-mode-map' as parent keymaps. (slime-repl-mode): Don't use `slime-editing-mode' because its keymap is already used above. That way `slime-repl-mode-map' takes precedence of `slime-editing-map'. 2010-01-08 Stas Boukarev <[email protected]> * swank-asdf.lisp: Doing list-all-systems-in-central-registry might be quite slow since it accesses a file-system, so run it once at the background to initialize fs caches. 2010-01-06 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (interesting-variable-p): Exclude keywords from being candidates for "display variable content" autodoc feature. (print-decoded-arglist): Slightly better arglist printing if `slime-autodoc-use-multiline-p' is true. (parse-raw-form): Make it able to parse strings. * slime-autodoc.el (autodoc.1 [test]): Add more cases. 2010-01-06 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-check-autodoc-at-point): Bind `slime-autodoc-use-multiline-p' to nil for normalized test results. 2010-01-06 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (extract-cursor-marker): Make sure to recurse only if the form, to be recursed into, is a cons. Reported by Johannes Grødem. 2010-01-06 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (arglist-dispatch ['declare]): Normalize `vars' to `variables'. (arglist-for-type-declaration): Ditto. * slime-autodoc (autodoc.1 [test]): Reorganize test, add comments, add cases to test declarations. 2010-01-05 Stas Boukarev <[email protected]> * slime-asdf.el (slime-save-system): New function for saving system's files. 2010-01-05 Helmut Eller <[email protected]> Fix "other window" selector in inferior-slime-mode. * inferior-slime.el ([selector-method] r): Return the buffer instead of switching directly. 2010-01-03 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-autodoc-mode): Only display "enabled"/"disabled" message if called interactively. 2010-01-03 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-autodoc): Renamed from `slime-compute-autodoc'; now also interactive. (slime-autodoc-mode): Implement toggling properly. Make modeline string "Autodoc" rather than "Eldoc". (slime-autodoc-maybe-enable): Adapted accordingly. 2010-01-03 Stas Boukarev <[email protected]> * slime-repl.el (sldb-insert-frame-call-to-repl): New function for inserting a call to a frame into the REPL. Bound to C-y in SLDB. 2010-01-03 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (arglist-index): Return NIL if more arguments were provided than are allowed. (form-path-to-arglist-path): Adapted accordingly. * slime-autodoc.el (autodoc.1 [test]): Add relevant test cases. 2010-01-03 Tobias C. Rittweiler <[email protected]> * slime-indentation-fu.el, swank-indentation-fu.lisp: Delete contrib. Never worked quite right, and the necessary infrastructure has since been gone. 2010-01-03 Stas Boukarev <[email protected]> * swank-asdf.lisp (asdf-system-loaded-p): Don't return a generalized boolean, because numbers may be too large for Emacs. 2009-12-30 Tobias C. Rittweiler <[email protected]> * slime-c-p-c.el (complete-form [test]): Set `slime-buffer-package' after changing to lisp-mode because changing major-mode kills buffer-local variables. 2009-12-30 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (extract-cursor-marker): Fix typo. (autodoc): Do not try to display variable content for T and NIL. (interesting-variable-p): New helper. 2009-12-29 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-compute-autodoc): Revert last change. We must return nil to decline. 2009-12-29 Tobias C. Rittweiler <[email protected]> More cleanup. The RP swank:arglist-for-echo-area is now called swank:autodoc. * swank-arglists.lisp (autodoc): Renamed from arglist-for-echo-area. (variable-desc-for-echo-area): Deleted. Above function subsumes this functionality now. (print-variable-to-string): Extracted from variable-desc-for-echo-area. * slime-autodoc.el (slime-retrieve-arglist): Change RPC. (slime-make-autodoc-rpc-form): Ditto. (slime-autodoc-cache-type): Deleted. (slime-autodoc-cache): Deleted. (slime-autodoc-last-buffer-form): Replacement. (slime-autodoc-last-autodoc): Replacement. (slime-get-cached-autodoc): Adapted accordingly. (slime-store-into-autodoc-cache): Adapted accordingly. (slime-compute-autodoc): Simplified slightly. (autodoc.1 [test]): Extended. 2009-12-29 Tobias C. Rittweiler <[email protected]> Some cleanup of arglist code. * swank-arglists.lisp (remove-from-tree-if): Deleted. (remove-from-tree): Deleted. (maybecall): Deleted. (arglist-path-to-parameter): Deleted. (arglist-path-to-nested-arglist): Deleted. (last-arg): Deleted. (compute-arglist-index): Deleted. (form-path-to-arglist-path): New. (arglist-index): New. (extract-cursor-marker): New. (find-subform-with-arglist): Adapted. (find-immediately-containing-arglist): Adapted. (arglist-for-echo-area): Adapted. 2009-12-29 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-parse-form-until): Properly deal with #' prefix. (form-up-to-point.1 [test]): Extend. 2009-12-25 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (delete-given-args): Make sure to properly delete provided-args. * slime-c-p-c.el (complete-form [test]): Extend. Succeeds now. 2009-12-23 Tobias C. Rittweiler <[email protected]> * slime-parse.el (form-up-to-point.1 [test]): Fix test case. 2009-12-23 Tobias C. Rittweiler <[email protected]> * slime-c-p-c.el (complete-symbol* [test]): Fix test case. 2009-12-23 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (autodoc.1 [test]): Add a test case involving DEFMETHOD. * slime-c-p-c.el (complete-form [test]): New test. Fails for the moment. Reported by Matthias Koeppe. 2009-12-22 Helmut Eller <[email protected]> Commands to save&restore image files without disconnecting. * slime-snapshot.el: New file. * swank-snapshot.lisp: New file. 2009-12-21 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (completions-for-keyword): Return nil instead of :not-available because the function is supposed to return a list of available completions. Adapted from patch by Ariel Badichi. 2009-12-21 Tobias C. Rittweiler <[email protected]> Today's cleanup day. * slime-parse.el (slime-incomplete-form-at-point) (slime-parse-sexp-at-point) (slime-has-symbol-syntax-p) (slime-incomplete-sexp-at-point) (slime-parse-extended-operator-name) (slime-extended-operator-name-parser-alist) (slime-make-extended-operator-parser/look-ahead) (slime-parse-extended-operator/proclaim) (slime-parse-extended-operator/declare) (slime-parse-extended-operator/check-type) (slime-parse-extended-operator/the) (slime-nesting-until-point) (slime-make-form-spec-from-string) (slime-enclosing-form-specs) (slime-ensure-list) (slime-beginning-of-string) (slime-check-enclosing-form-specs) (enclosing-form-specs.1 [test]): Deleted. The new arglist code made all this superfluous. * slime-autodoc.el (slime-autodoc-accuracy-depth): New defcustom. (slime-retrieve-arglist): Return :not-available if appropriate. (slime-arglist): Use `slime-retrieve-arglist'. Delete reference to undefined variable. (slime-autodoc-thing-at-point): Deleted, not needed anymore. (slime-autodoc-hook): Deleted. (slime-autodoc-worthwhile-p): Deleted. (slime-make-autodoc-rpc-form): Simplified. (slime-compute-autodoc-internal): Merged with `slime-compute-autodoc'. (slime-compute-autodoc): Removed usage of old infrastructure. Simplified. * swank-arglists.lisp (print-decoded-arglist): Print ((:foo bar) quux) &key parameters correctly. (variable-desc-for-echo-area): Return :not-available, not nil. * slime-c-p-c.el (slime-complete-symbol*-fancy-bit): Adapted for new return value of `slime-retrieve-arglist'. * slime-fancy.el: Disable `slime-mdot-fu' contrib because that has to be adapted to new infrastructure. * slime-sbcl-exts.el (slime-enable-autodoc-for-sb-assem:inst): Deleted. Used old infrastructure. 2009-12-21 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-parse-form-upto-point): Rewritten to make it more performant. (slime-parse-form-until): New helper. 2009-12-21 Tobias C. Rittweiler <[email protected]> * slime-package-fu.el (slime-at-expression-p): Moved from slime.el. (slime-goto-next-export-clause): Replace `slime-forward-blanks'. * slime-parse.el (slime-parse-sexp-at-point) (slime-parse-extended-operator-name): Replace `slime-forward-blanks'. 2009-12-19 Stas Boukarev <[email protected]> * swank-asdf.lisp (asdf:operation-done-p): ASDF included with some implementations doesn't have AROUND method combination, so guard against its usage. This will prevent swank:reload-system from working, but it will let load swank-asdf. Reported by Mark Evenson. 2009-12-19 Tobias C. Rittweiler <[email protected]> * slime-asdf.el (slime-query-replace-system-and-dependents): Renamed from `slime-query-replace-system-and-dependencies' because that's what it actually does. 2009-12-18 Tobias C. Rittweiler <[email protected]> Add 'M-x slime-query-replace-system-and-dependencies' which is like `slime-query-replace-system' but also runs query-replace on all files of systems _depending on_ the user-queried system. * slime-asdf.el (slime-read-query-replace-args): Factored out from `slime-query-replace-system'. (slime-query-replace-system): Use it. (slime-query-replace-system-and-dependencies): Add. * swank-asdf.lisp (who-depends-on): `asdf:system-definition-pathname' may return NIL, guard against that. 2009-12-17 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (who-depends-on): Make defslimefun. (xref-doit [:depends-on]): New method to make :depends-on valid xref request. * slime-asdf.el (slime-who-depends-on-rpc): New. (slime-who-depends-on): New interactive function. (slime-asdf-init): Make `slime-edit-uses' perform a :depends-on request, and bind `C-c C-w d' to `slime-who-depends-on'. 2009-12-15 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (who-depends-on): Add. 2009-12-15 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (map-defined-systems): Factored out. (list-all-systems-known-to-asdf): Use it. (asdf-determine-system): Use it, too. (reload-system): Reuse `operate-on-system-for-emacs'. 2009-12-15 Stas Boukarev <[email protected]> * slime-asdf.el (slime-reload-system): New command for reloading a system without recompiling recursively its dependencies. REPL shortcut for it is `reload-system'. * swank-asdf.lisp (reload-system): New function. 2009-12-14 Tobias C. Rittweiler <[email protected]> Take recursiveness of LABELS into account for displaying local arglists. I.e. make the following work: (labels ((iseven (x) ...) (isodd (y) (if (zerop y) nil (iseven <>))))) ; Point is here ...) As we only have information to look backward, we cannot show arglist for ISODD within ISEVEN, though. * swank-arglists.lisp (extract-local-op-arglists): Handle LABELS specially. (find-subform-with-arglists): Adapted accordingly. Plus: Small refactoring, and fix comparasion of local ops to properly deal with arglist dummies. 2009-12-14 Stas Boukarev <[email protected]> * slime-asdf.el (slime-delete-system-fasls): New command with a shortcut `delete-system-fasls'. * swank-asdf.lisp (delete-system-fasls): New function. (asdf-module-output-files): New function for finding fasls. 2009-12-12 Matthias Koeppe <[email protected]> * slime-presentations.el (slime-reify-old-output): Revert change of 2009-12-11, which introduced spurious quotes in non-evaluated contexts like here: '(1 2 #<STANDARD-CLASS STANDARD-OBJECT> 3 4) Presentations do not change standard quoting rules; users just need to remember this. 2009-12-11 Stas Boukarev <[email protected]> * slime-fuzzy.el (slime-fuzzy-choices-buffer): Don't show cursor in *Fuzzy Completions*. Patch by Tobias C. Rittweiler. 2009-12-11 Stas Boukarev <[email protected]> * slime-presentations.el (slime-reify-old-output): Quote the CL expession behind presentations, so _(1 2 3)_ (representing a presentation) is not tried to be evaluated. (slime-copy-presentation-to-repl): Use `looking-back' for looking back. Apply De Morgan's law to conditions. Patch by Tobias C. Rittweiler. 2009-12-11 Stas Boukarev <[email protected]> * swank-asdf.lisp (find-operation): New function for finding asdf operations independent of readtable case sensitivity (read Allegro Modern Mode). (operate-on-system): Accept symbols instead of strings for operation-name, and use the above function. * slime-asdf.el: Replace strings with operation names for `slime-oos' with symbols. 2009-12-11 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (*swank-debug-arglists*): Removed. (arglist-for-echo-area): Use DEBUG-ON-SWANK-ERROR instead. 2009-12-04 Stas Boukarev <[email protected]> * swank-arglists.lisp (find-subform-with-arglist): Return (values nil :not-available), not just NIL, when operator is `quote' or `function'. Fixes bug reported by Mark Harig. 2009-12-03 Tobias C. Rittweiler <[email protected]> http://common-lisp.net/project/hyperdoc/ * slime-hyperdoc.el, swank-hyperdoc.lisp: New contrib. 2009-12-03 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (arglist-available-p): New helper. (arglist-dispatch [eql 'declaim]): New. (arglist-dispatch [eql 'declare]): First try to lookup arglist of a typespec if it's a type-declaration, if not default to looking up arglist of declaration specifier. (arglist-for-type-declaration): Extracted out. (decoded-arglist-for-type-specifier): Make sure not to call TYPE-SPECIFIER-ARGLIST with an ARGLIST-DUMMY. 2009-12-03 Tobias C. Rittweiler <[email protected]> * slime-asdf.el (slime-query-replace-regexp): Quote `from' argument because `tags-query-replace' actually uses `query-replace-regexp' internally. Reported by David O'Toole. 2009-12-01 Stas Boukarev <[email protected]> * swank-asdf.lisp (asdf-system-files): Include the .asd file too. (asdf-module-files): Include non-cl files too. 2009-11-30 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-mode-map): Don't copy slime-parent-map. Instead ... (slime-repl-mode): ... enable slime-editing-mode. * slime-presentations.el (slime-presentation-init-keymaps): Replace slime-define-both-key-bindings with slime-bind-keys. (slime-presentation-init-keymaps): Use slime-init-keymap. 2009-11-24 Tobias C. Rittweiler <[email protected]> Fix a few edge cases in new arglist code. * slime-parse.el (slime-parse-form-upto-point): Regard beginning-of-line as whitespace, and DTRT. * swank-arglists.lisp (empty-arg-p): Input may not only be an arglist-dummy. (print-decoded-arglist-as-template): Do not print superfluuous newline before &body. (arglist-for-echo-area): Catch errors. (find-subform-with-arglist): Deal properly with NIL as argument. (find-immediately-containing-arglist): Do not erroneously complete form with an unsuited arglist of the parent form. (last-arg): New helper. (arglist-path-to-nested-arglist): Use it. Reported by Ariel Badichi. 2009-11-23 Tobias C. Rittweiler <[email protected]> * slime-asdf.el (slime-rgrep-system): Conditionalize on whether `rgrep' is available (it isn't on Emacs 21.) Also make sure to call `grep-compute-defaults' before `grep-read-regexp' because the former does some necessary setup. (Seems to be of a problem on Emacs from CVS.) 2009-11-23 Tobias C. Rittweiler <[email protected]> * slime-repl.el (slime-repl-previous-matching-input) (slime-repl-next-matching-input): Read input by means of `slime-read-from-minibuffer' so TAB will complete symbols for us. 2009-11-23 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (operate-on-system-for-emacs), (operate-on-system): Muffle ASDF:COMPILE-ERROR because we reuse Slime's compilation error reportery anyway, and sldb popping up is just annoying. 2009-11-23 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (system-contains-file-p): Previous definition didn't properly propagate positive return value of recursive call. Fix that. 2009-11-22 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-history-remove-duplicates): New variable, if set to T previous matching history entries are removed before appending a new item. Default value is NIL. (slime-repl-history-trim-whitespaces): New variable, when T remove whitespaces at the beginning and end of a new history item. Default value is NIL. (slime-repl-add-to-input-history): Implement behaviour of the variables above. (slime-string-trim): New function, works like cl:string-trim. 2009-11-22 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-compute-region-for-font-lock): Set an upper limit for the starting point of searching for suppressed forms. * slime-parse.el (slime-make-form-spec-from-string): Minor optimizations. (slime-parse-form-upto-point): Refactored to not use `reduce' but bultins. (slime-make-form-spec-from-string, slime-parse-form-upto-point) (slime-compare-char-syntax): Byte-compile. 2009-11-21 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (asdf-determine-system): Also try to determine the current system by looking at the buffer-package. * slime-asdf (slime-read-system-name): Adapted accordingly. 2009-11-20 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-position-in-history): Add new optional parameter `exclude-string'. (slime-repl-history-replace): Don't replace history item if it's exactly matching the current input, search for the next match instead. 2009-11-19 Tobias C. Rittweiler <[email protected]> * slime-asdf.el (slime-query-replace-system): Enable TAB completion of symbol names. * slime-fuzzy.el (slime-fuzzy-completions): Do not use `slime-find-buffer-package' it's an internal operation of `slime-current-buffer'. 2009-11-17 Tobias C. Rittweiler <[email protected]> M-x slime-isearch-system will run `isearch-forward' on all files pertaining to an ASDF system. M-x slime-query-replace-system will run `query-replace' on all files pertaining to an ASDF system. * slime-asdf.el (slime-read-system-name): Refactored so callers have choice over how the default value is computed. (slime-find-asd-file): Renamed from `slime-find-asd'. (slime-determine-asdf-system): New helper. (slime-isearch-system): New function. Depends on functionality only available on GNU Emacs 23.1.x. (slime-query-replace-system): New function. 2009-11-17 Stas Boukarev <[email protected]> * swank-asdf.lisp (asdf-determine-system): Rewritten to be much faster and to cons less (and look ugly). 2009-11-16 Stas Boukarev <[email protected]> * swank-asdf.lisp (asdf-determine-system): New function for determining to what system a file belongs. * slime-asdf.el (slime-rgrep-system): New function. 2009-11-13 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (extra-keywords/make-instance) (extra-keywords/change-class): Wrap call to CLASS-PROTOTYPE in an IGNORE-ERRORS because computing a class-prototype involves evaluating initforms which may be calls to ERROR. 2009-11-07 Stas Boukarev <[email protected]> * slime-package-fu.el (slime-find-package-definition-regexp): Go one sexp backward to the defpackage beginning. 2009-11-06 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-arglist): Adapted to new code. (slime-retrieve-arglist): New. * slime-c-p-c.el (slime-get-arglist): Deleted. (slime-complete-symbol*-fancy-bit): Use `slime-retrieve-arglist'. 2009-11-05 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (print-decoded-arglist): Fix printing of &any and &key parameters. (test-print-arglist): Slightly adapted. * slime-autodoc.el ([test] autodoc.1): Slightly adapted. 2009-11-02 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (do-decoded-arglists): Remove L-V-T. 2009-11-02 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-make-form-spec-from-string): Break out of the loop if we're at unbalanced parentheses. (slime-compare-character-syntax): New helper. (slime-parse-form-upto-point): Use it. (slime-incomplete-form-at-point): Revert change. ([test] form-upto-point.1): New test case. 2009-11-02 Stas Boukarev <[email protected]> * slime-parse.el (slime-incomplete-form-at-point): Concatenate " )" not just ")", because the form's last char may be \, and the parenthesis will be escaped. That fixes a bug reported by Ariel Badichi. 2009-10-31 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-search-suppressed-forms-internal): Wrap form in `ignore-errors' again. People have been guinea pigs long enough. Suppression of reader-conditionalized forms seems to work pretty reliably now. 2009-10-31 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el, swank-arglists.lisp: Large parts were rewritten. Autodoc is now able to highlight &key parameters, and parameters in nested arglists. * slime-parse.el, slime-c-p-c.el, slime-highlighting-edits.el: Adapted to changes. 2009-10-31 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-autodoc-worthwile-p): New helper. (slime-compute-autodoc-internal): Use it to only perform an RPC request if it's worthwhile to do so. For example, don't do it if the user only typed a single opening parenthesis. * swank-arglists.lisp (variable-desc-for-echo-area): Bind *PRINT-READABLY* to NIL as global variables may contain objects which can't be printed readably. 2009-10-31 Tobias C. Rittweiler <[email protected]> * swank-c-p-c.lisp (completion-set): Split into `symbol-completion-set', and `package-completion-set'. (completions): Updated accordingly. Also: complete packages "hyphenated" by dots. (find-matching-packages): Heed readtable-case. (make-compound-prefix-matcher): Make it possible to pass list of delimeters. (compound-prefix-match): Deleted. * swank-arglists.lisp (completions-for-keyword): Adapted so it does not use `compound-prefix-match'. * slime-c-p-c.el (complete-symbol* [test]): New test case. 2009-10-31 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (extra-keywords :around): Sort keyword parameters such that implementation-internal stuff is shown last. (compose): New helper. (make-package-comparator): New. (sort-extra-keywords): New. 2009-10-31 Tobias C. Rittweiler <[email protected]> `M-x slime-visit-sbcl-bug' will open a browser to visit SBCL's bug tracker at Launchpad that describes the bug number at point (#nnnnnn). * slime-sbcl-exts.el (slime-visit-sbcl-bug): New. (slime-read-sbcl-bug): New. (slime-sbcl-bug-at-point): New. 2009-10-21 Stas Boukarev <[email protected]> * slime-asdf.el (slime-browse-system): Open the parent directory of an .asd file, not just files defined in it. (slime-open-system): Open files in another window. * swank-asdf.lisp (asdf-system-files): Put file with the same name as a system at the first place. 2009-10-21 Stas Boukarev <[email protected]> * slime-asdf.el (slime-browse-system): New command for browsing files in asdf using Dired. * swank-asdf.lisp (asdf-system-loaded-p): New function. 2009-10-20 Stas Boukarev <[email protected]> * slime-parse.el (slime-parse-sexp-at-point): Remove unused flet. Check for existence of a sexp before trying to parse, not after. 2009-10-19 Stas Boukarev <[email protected]> * slime-asdf.el (slime-open-system): New command for opening all files in a system. * swank-asdf.lisp (asdf-system-files): New function for listing all files in a system. 2009-10-15 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-find-buffer-package): New function. (slime-repl-init): Initialize slime-find-buffer-package-function. 2009-10-14 Tobias C. Rittweiler <[email protected]> * slime-sprof.el (slime-sprof-browser-mode-map): Make `slime-parent-map' its parent. 2009-10-12 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-set-package): Don't double unfinished input and don't move point if it's inside the input area. 2009-10-10 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-search-suppressed-forms): Add clause for new condition `slime-incorrect-feature-expression'. ([test] font-lock-magic): Add new test case. 2009-10-09 Stas Boukarev <[email protected]> * swank-sprof.lisp: Add ability to exclude functions which symbols are from swank package. * slime-sprof.el (slime-sprof-toggle-swank-exclusion): New function. Bound to s in the slime-sprof buffer. * slime-sprof.el (slime-sprof-exclude-swank): New variable for controlling exclusion of swank functions. * slime-sprof.el: Slightly factor code, add menu entries. 2009-09-29 Stas Boukarev <[email protected]> * slime-repl.el (slime-sync-package-and-default-directory): Better checking for packages. 2009-09-28 Stas Boukarev <[email protected]> * slime-repl.el (slime-sync-package-and-default-directory): Do not try to set package if it doesn't exists. 2009-09-25 Tobias C. Rittweiler <[email protected]> * swank-sbcl-exts.lisp: Add EVAL-WHEN to prevent subtle dependency problem. 2009-09-21 Stas Boukarev <[email protected]> * slime-sprof.el, swank-sprof.lisp: New contrib for integration with SBCL's sb-sprof profiler, adopted from Juho Snellman's code. 2009-09-17 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-clear-buffer): Don't change cursor position if is already at the prompt. 2009-09-16 Tobias C. Rittweiler <[email protected]> * slime-references.el: Largely refactored: decoupled code from SLDB; add references to the compilation log. 2009-09-15 Stas Boukarev <[email protected]> * slime-autodoc.el (slime-fontify-string): setup *slime-fontify* buffer without calling (lisp-mode) to avoid turning slime-mode there, which may cause interference. 2009-09-13 Stas Boukarev <[email protected]> * slime-autodoc.el (slime-fontify-string): do not call (slime-autodoc-mode -1), there is no reason to do so. And it won't mess slime-echo-arglist-function, which fixes bug reported by Stanislaw Halik. 2009-09-04 Stas Boukarev <[email protected]> * slime-repl.el (slime-sync-package-and-default-directory): Don't change package if it's unknown. Use existing functions for changing package and directory. 2009-09-02 Stas Boukarev <[email protected]> * swank-arglists.lisp (decode-required-arg): Move LispWorks specific code into swank-lispworks.lisp. 2009-09-01 Stas Boukarev <[email protected]> * swank-arglists.lisp (decode-required-arg): Arglists for some forms in LispWorks, e.g. flet, contain strings, so handle strings too. Reported by Nick Levine. 2009-08-28 Stas Boukarev <[email protected]> * slime-c-p-c.el (slime-contextual-completions): Remove debugging code. 2009-08-27 Stas Boukarev <[email protected]> * slime-c-p-c.el (slime-contextual-completions): Detect characters properly. (slime-completions-for-character): Append #\ to the character names. This fixes character completion, reported by Nick Levine. 2009-08-24 Helmut Eller <[email protected]> * inferior-slime.el (inferior-slime-stop-transcript): Switch to the right buffer. 2009-08-21 Helmut Eller <[email protected]> * inferior-slime.el (inferior-slime-show-transcript) (inferior-slime-stop-transcript, inferior-slime-start-transcript): New functions. (inferior-slime-init): Install transcript hooks. 2009-08-15 Helmut Eller <[email protected]> * slime-typeout-frame.el (slime-typeout-message): Don't call slime-autodoc-stop-timer which no longer exists since 2009-01-01. (slime-typeout-frame-init): Don't create a frame in a tty-only session. (slime-typeout-tty-only-p): New predicate. 2009-08-15 Helmut Eller <[email protected]> Disable slime-autodoc for XEmacs. * slime-autodoc.el, slime-fancy.el: XEmacs's version of eldoc doesn't have the neccessary hooks. 2009-08-11 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-arglist): Pass properly formed argument in the rpc call. 2009-08-09 Stas Boukarev <[email protected]> * slime-fuzzy.el (slime-fuzzy-complete-symbol): change `comint-completion-addsuffix' to not add space after completing a filename. 2009-08-05 Stas Boukarev <[email protected]> * swank-fancy-inspector.lisp (emacs-inspect): add buttons for removing compiler-macros and unbinding variables. 2009-07-22 Stas Boukarev <[email protected]> * swank-fuzzy.lisp (fuzzy-convert-matching-for-emacs): format floats on the lisp side, because Emacs doesn't accept d0 or s0, which could get there as a result of *read-default-float-format* modification. * slime-fuzzy.el (slime-fuzzy-insert-completion-choice): ditto. 2009-07-15 Tobias C. Rittweiler <[email protected]> * swank-sbcl-exts.lisp (compute-enriched-decoded-arglist): Filter uninteresting arguments for SB-ASSEM:INST. 2009-07-21 Helmut Eller <[email protected]> * swank-goo.goo, swank-jolt.k (create-repl): Implemented. 2009-07-19 Helmut Eller <[email protected]> * swank-kawa.scm (operator-arglist): Implemented, at least for some kind of function. 2009-07-12 Helmut Eller <[email protected]> * swank-kawa.scm (swank-writer): Use set! for now, as the svn version has problems to resolve setLength. (<faked-frame>:init): Don't forget the self slot. 2009-07-12 Helmut Eller <[email protected]> * swank-mit-scheme.scm (swank:create-repl): Implement it. * swank-kawa.scm, swank-goo.scm, swank.rb (frame-source-location): Renamed from frame-source-location-for-emacs. 2009-07-11 Stas Boukarev <[email protected]> * slime-parse.el (slime-make-form-spec-from-string): set syntax table to lisp-mode-syntax-table in a temporary buffer. Necessary for some parsing functions to work correctly. 2009-07-04 Tobias C. Rittweiler <[email protected]> Fix font-lock magic for s-code.lisp in the series package. * slime-fontifying-fu.el (slime-beginning-of-tlf): Use `syntax-ppss-toplevel-pos' on GNU Emacs. Old definition is retained for systems where it's not available. Also wrap an `ignore-errors' around the call to `up-list' in the old definition to guard against unbalanced parentheses. Reported by Stelian Ionescu, Raymond Toy. 2009-07-02 Stas Boukarev <[email protected]> * slime-repl.el (slime-repl-delete-current-input): Make it interactive. 2009-06-28 Stas Boukarev <[email protected]> * slime-fuzzy.el (slime-fuzzy-complete-symbol): show message in the minibuffer after showing completion list, because completion itself can take place in the minibuffer. (slime-fuzzy-choices-buffer): if completion was started in the minibuffer, don't switch to minibuffer in the other window, but select minibuffer window instead. 2009-06-23 Helmut Eller <[email protected]> * swank-ikarus.ss, swank-larceny.scm, swank-r6rs.scm: New files. 2009-06-16 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-search-suppressed-form): Additional exit constraint for the loop; make sure we'r still in the limit. (slime-compute-region-for-font-lock): Simplify. 2009-06-14 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-search-suppressed-form): Retry the search differently; handlers are not active anymore inside a handler in `condition-case'. 2009-06-12 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-compute-region-for-font-lock): Fix for `#+foo (... #+bar (... |) ...)'. ([test] font-lock-magic): Moved here. 2009-05-28 Tobias C. Rittweiler <[email protected]> * slime-repl.el (slime-repl-disconnect): Disconnect current connection. (slime-repl-disconnect-all): New; disconnect all connections. Patch by Stas Boukarev. 2009-05-20 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (arglist-dispatch [define-compiler-macro]): guard against when we're in the body of a compiler-macro definition for a function not yet compiled into the image. 2009-05-20 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-search-for-suppressed-forms): Retrieve match data early now that `slime-current-parser-state' does not save it anymore. 2009-05-17 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-search-for-suppressed-forms): Shadow SBCL-specific #!+, #!- conditionals correctly. (slime-compute-region-for-font-lock): Fix small thinko. 2009-05-16 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-beginning-of-tlf): Make sure to skip outside of comments and strings first. 2009-05-16 Tobias C. Rittweiler <[email protected]> Optimize font-lock-magic. * slime-fontifying-fu.el (slime-search-suppressed-forms-match-data): New var, to inhibit consing. (slime-search-suppressed-forms-internal): Use it. (slime-extend-region-for-font-lock): Do not call `slime-connected-p', it's not needed in this place. (slime-search-directly-preceding-reader-conditional): Do not use `values', and `multiple-value-bind'. (slime-beginning-of-tlf): When we know the current paren depth, use it to jump directly over all parens rather than jumping to each open paren in turn. (slime-compute-region-for-font-lock): Use it. 2009-05-15 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el (slime-search-suppressed-forms-internal): Use `slime-reader-conditionals-regexp'. (slime-search-directly-preceding-reader-conditional): Catch scan errors due to improper feature expressions. 2009-05-15 Tobias C. Rittweiler <[email protected]> * slime-repl.el (with-canonicalized-slime-repl-buffer): XEmacs chokes on symbol-names with an initial dot. Patch by François-René Rideau. 2009-05-15 Tobias C. Rittweiler <[email protected]> Moved font-lock-magic from slime.el to slime-fontifying-fu.el. N.B. slime-fontifying-fu is automatically loaded by slime-fancy. I.e. if you use slime-fancy, font-lock-magic will be enabled for just like before. * slime-fontifying-fu.el (slime-highlight-suppressed-forms), (slime-reader-conditional-face), (slime-search-suppressed-forms-internal), (slime-search-suppressed-forms), (slime-search-directly-preceding-reader-conditional), (slime-extend-region-for-font-lock), (slime-compute-region-for-font-lock), (slime-activate-font-lock-magic): Moved here. 2009-05-14 Tobias C. Rittweiler <[email protected]> Optionally sort slots displayed for STANDARD-OBJECTS not alphabetically, but by inheritance. That is group the slots according to the class they're direct slots of. * swank-fancy-inspector.lisp ([struct] inspector-checklist): New slot `count'. (make-checklist-button): Adapted accordingly. (reinitialize-checklist): New. (box, ref, (setf ref)): New. (all-slots-for-inspector): Add button to group slots by inheritance rather than alphabetically. Adapted accordingly. (list-all-slots-by-inheritance): New. Does the bulk work. (make-slot-listing): Factored out from `all-slots-for-inspector'. (slot-home-class-using-class): New helper. (stable-sort-by-inheritance): Also new. 2009-05-08 Tobias C. Rittweiler <[email protected]> The inspector page for standard-objects does not append "[set value]" and "[make unbound]" buttons after each entry anymore. Instead we use a checklist. * swank-fancy-inspector.lisp ([struct] inspector-checklist): New. (make-checklist-button): New. (do-checklist): New. (slot-value-for-inspector): Previously `inspect-slot-for-emacs'. (query-and-set-slot): New. (all-slots-for-inspector): Adapted for changes described above. 2009-05-02 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-fontify-string): Deactivate autodoc itself in the temporary help buffer. And deactivate slime's font-lock magic. 2009-05-01 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-parse-extended-operator/check-type): Forgot to delete debugging code. 2009-04-30 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-parse-extended-operator/check-type): New. (slime-parse-extended-operator/the): New. (slime-extended-operator-name-parser-alist): Add entries for CHECK-TYPE, TYPEP, and THE. ([tesŧ] enclosing-form-specs.1): Add tests for the new entries. Adapted from patch by Stas Boukarev. 2009-04-30 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-parse-extended-operator/proclaim): New. (slime-extended-oprator-name-parser-alist): Adapt the entry for PROCLAIM. Adapted from patch by Stas Boukarev. 2009-04-21 Tobias C. Rittweiler <[email protected]> * slime-indentantion-fu.el (slime-update-local-indentation): Save original global indentation spec in another symbol because we cannot reuse 'slime-indent. Make sure that later redefinition of global macros (which may affect the indentation spec) is taken into consideration. 2009-04-03 Tobias C. Rittweiler <[email protected]> * slime-repl.el (slime-inspector-mode-map): Add binding for M-RET. (slime-inspector-copy-down-to-repl): Moved here from slime.el. 2009-03-27 Tobias C. Rittweiler <[email protected]> * slime-indentantion-fu.el (slime-indent-fu): Correctly deal with MACROLETs that define macros without &BODY in their arglists. ([test] local-indentation.1): Updated to test against this case. 2009-03-25 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-event-hook-function): Handle :read-abort. Reported by Stas Boukarev. (slime-repl-remove-hooks): New function. 2009-03-22 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp ([method] arglist-dispatch): Forgot to remove debugging code when adding extended arglist display for DEFINE-COMPILER-MACRO. Reported by Bart Botta. 2009-03-09 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-compute-autodoc-rpc-form): New. Extracted from `slime-autodoc-thing-at-point'. (slime-compute-autodoc-internal): New. Extracted from `slime-compute-autodoc'. (slime-compute-autodoc): Explicitly save match data. (slime-autodoc-hook): New. Run everytime autodoc is computed. * slime-enclosing-context.el (slime-enclosing-bound-macros): New. (slime-find-bound-macros): New, too. * slime-indentation-fu.el, swank-indentation-fu.lisp: New contrib to properly indent &BODY arguments of local macro definitions. Suggested by Lorenz Moesenlechner. 2009-03-09 Helmut Eller <[email protected]> * swank-kawa.scm: Use foo: style keywords because :foo is now a symbol. (copy-stack): Use null to mark absent src-loc information. 2009-03-08 Tobias C. Rittweiler <[email protected]> * slime-repl.el ([test] interrupt-in-blocking-read): Wrap `with-canonicalized-slime-repl-buffer' around the whole test. Otherwise the changed repl prompt doesn't extend to the actual `slime-test-expect'. 2009-03-08 Tobias C. Rittweiler <[email protected]> * swank-fancy-inspector.lisp (make-visit-file-thunk): New helper; extracted from emacs-inspect [file-stream]. ([method] emacs-inspect file-stream): Use it. ([method] emacs-inspect stream-error): Use it, too. 2009-03-04 Tobias C. Rittweiler <[email protected]> * slime-asdf.el: Really do the commit from entry 2009-02-28. 2009-03-04 Tobias C. Rittweiler <[email protected]> * slime-repl.el (slime-check-buffer-contents): Fix typo. (with-canonicalized-slime-repl-buffer): Refactored from test cases. A lot of test cases implemented this somewhat wrongly. Making them fail when not called from the SWANK package. ([test] repl-test): Use above. ([test] repl-return): Ditto. ([test] repl-read): Ditto. ([test] repl-read-lines): Ditto. ([test] repl-type-ahead): Ditto. ([test] interrupt-in-blocking-read): Ditto. 2009-02-28 Stas Boukarev <[email protected]> * slime-asdf.el (slime-read-system-name): Display default value as part of the prompt, instead of inserting it as an input candidate. (slime-find-asd): Do not call `file-name-sans-extension' twice. 2009-02-28 Stas Boukarev <[email protected]> * swank-arglists.lisp (variable-desc-for-echo-area): Print values of special variables with ~S, not with ~A. 2009-02-27 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (read-conversatively-for-autodoc): Make it understand sharpquote forms, so contextual autodoc will work for `(apply #'foo ...)'. * slime-autodoc.el ([test] autodoc.1): New test case, for the above and more. (slime-check-autodoc-at-point): New helper. 2009-02-27 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-check-enclosing-form-specs): Use `slime-test-expect' rather than `slime-check'. ([test] enclosing-form-specs.1): Add two more cases. 2009-02-27 Tobias C. Rittweiler <[email protected]> * bridge.el: Replace old-style backquoting. * slime-presentations.el (slime-presentation-sldb-insert-frame-variable-value): Fix typo. Patch by Stelian Ionescu. 2009-02-27 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el, slime-c-p-c.el, slime-enclosing-context.el * slime-package-fu.el, slime-parse.el, slime-presentations.el * slime-xref-browser: Rename `slime-symbol-name-at-point' to `slime-symbol-at-point' 2009-02-27 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-make-extended-operator-parser/look-ahead): If there's no closing paren (no paredit!) we cannot determine the end of the list. Check for this. ([test] enclosing-form-specs.1): Extend test case. (slime-check-enclosing-form-specs): New helper. 2009-02-26 Tobias C. Rittweiler <[email protected]> * swank-fancy-inspector.lisp (emacs-inspect (stream-error)): Do not run FILE-POSITION on a closed stream. 2009-02-26 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-parse-symbol-name-at-point): Removed. Superfluous due to recent changes on `slime-symbol-name-at-point'. (slime-parse-sexp-at-point): Simplified; use `slime-sexp-at-point'. (slime-inside-string-p, slime-beginning-of-string): Use `slime-current-parser-state'. ([test] enclosing-form-specs.1): Add some simple cases. * slime-enclosing-context.el (slime-find-bound-names): Replace `slime-parse-symbol-name-at-point' with `slime-symbol-name-at-point' (slime-find-bound-functions): No need for `slime-ensure-list' anymore. ([test] enclosing-context.1): Adapted due to the changes. 2009-02-25 Luís Oliveira <[email protected]> * slime-compiler-notes-tree.el: Fix typo in the `provide' form. 2009-02-21 Tobias C. Rittweiler <[email protected]> * slime-package-fu.el: Removed misplaced comma, deleted some end-of-line whitespace, added newline to the end of the file. Patch by Robert Brown. 2009-02-17 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-connected-hook-function): Bind slime-current-thread to avoid problems with killed threads. 2009-02-14 Helmut Eller <[email protected]> * swank.rb: New file. 2009-02-02 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (arglist-for-echo-area): Bleh, can't use WITH-AVAILABLE-ARGLIST because we're supposed to return NIL, not :NOT-AVAILABLE, in the failure case. 2009-02-02 Tobias C. Rittweiler <[email protected]> * slime-parse.el ([test] enclosing-form-specs.1): Fix test case. 2009-02-01 Tobias C. Rittweiler <[email protected]> Add DEFMETHOD-style extended arglist display for DEFINE-COMPILER-MACRO. (defun foo (x y &key k1 k2)) (define-compiler-macro foo |) * swank-arglists.lisp ([method] arglist-dispatch): Specialize on (EQL 'DEFINE-COMPILER-MACRO). * slime-parse.el (slime-extended-operator-name-parser-alist): Add entry for DEFINE-COMPILER-MACRO. (slime-make-extended-operator-parser/look-ahead): Collect up /at most/ N sexps. Previously `(defmethod |)' would lead to a form spec of ``("defmethod" ("defmethod"))''. ([test] enclosing-form-specs.1): Test for this. 2009-02-01 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (parse-form-spec): Moved most part of its docstring into a comment. (arglist-for-echo-area): Some minor code reorganization. The autodoc stuff in general could need some fair bit of refactoring. 2009-01-27 Tobias C. Rittweiler <[email protected]> * slime-repl.el ([shortcut] quit): Quit the connection before killing the REPL buffer; otherwise the default connection is selected rather than the connection of the REPL buffer. Reported by Stas Boukarev. 2009-01-23 Tobias C. Rittweiler <[email protected]> * slime-repl.el (slime-repl-mode-map): Use the key bindings from `slime-editing-keys'. 2009-01-18 Tobias C. Rittweiler <[email protected]> Local M-. and local arglist display didn't work for (flet ((foo () ...)) (some-form) |) * slime-enclosing-context.el (slime-enclosing-bound-names), (slime-enclosing-bound-functions): Correctly test for when point is in scope of an FLET/LET/etc. ([test] enclosing-context.1): Test for this. 2009-01-16 David Reitter <[email protected]> * slime-repl.el (slime-repl-clear-buffer): Call recenter with t as argument (to avoid erasing the entire frame). 2009-01-10 Tobias C. Rittweiler <[email protected]> * swank-fancy-inspector.lisp (emacs-inspect [package]): Also display link to show all inherited symbols of a package. 2009-01-07 Helmut Eller <[email protected]> * slime-repl.el (slime-mode-map): Bind C-c~ not ~. Reported by James Wright. (slime-repl-mode-map): Bind M-TAB. Remove C-c C-k: compiling the REPL buffer doesn't work anyway. Remove C-cC-b, C-c:, C-cE, C-cC-d, C-cC-w, C-M-x, C-cC-t, C-cC-l: those are already bound in slime-parent-map. 2009-01-04 Helmut Eller <[email protected]> * slime-repl.el, slime-mrepl.el: Byte-compile the output functions. 2009-01-02 Helmut Eller <[email protected]> * slime-mrepl.el: New file. 2009-01-01 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el: Autodoc is now implemented on top of ElDoc. (Suggested by Madhu.) 2008-12-31 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (format-arglist-for-echo-area): Catch errors and die gracefully. 2008-12-31 Tobias C. Rittweiler <[email protected]> * swank-sbcl-exts.lisp: Wrap file in a big #+sbcl (PROGN ...), so users can use the `slime-sbcl-exts' contrib in their .emacs nevermind what implementation they actually use. (Reported by Stas Boukarev) 2008-12-31 Helmut Eller <[email protected]> * inferior-slime.el (inferior-slime-change-directory): New function. (inferior-slime-init): Hook it in. 2008-12-30 Tobias C. Rittweiler <[email protected]> * slime-repl.lisp (slime-repl-set-package): Set `slime-buffer-package' to the new package name. Otherwise, a ,!p repl command is not properly taken into account resulting in misbehaviour of completion and arglist display. 2008-12-30 Tobias C. Rittweiler <[email protected]> * slime-sbcl-exts.el, swank-sbcl-exts.lisp: New contrib. This is the place for SBCL specific extensions and customizations that can't go into SBCL's swank-backend. At the moment, it contains code to display arglist of instructions, as in `(sb-assem:inst mov |'. 2008-12-30 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (defstruct arglist-dummy): Remove :PRINT-OBJECT which made an arglist dummy look like a normal symbol. This is just confusing. If an ARGLIST-DUMMY appears in an arglist, the relevant code should deal with this explicitly. (with-availability): Renamed to WITH-AVAILABLE-ARGLIST. * slime-parse.el (slime-parse-extended-operator-name): Pass the fully qualified symbol (not just the name) to the parser function. (slime-make-extended-operator-parser/look-ahead): Do not take the operator name as first argument if point is located at the operator name. 2008-12-27 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-event-hook-function): Handle :new-package events here. (slime-output-buffer): Initialize slime-buffer-package. (slime-repl-connected-hook-function): Initialize slime-lisp-package. 2008-12-27 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-quit): Kill the repl buffer before quitting. Reported by Volkan YAZICI. 2008-12-27 Helmut Eller <[email protected]> * slime-asdf.el: Require slime-repl. 2008-12-26 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-connected-hook-function): Create a repl thread before creating a repl buffer. 2008-12-25 Helmut Eller <[email protected]> * inferior-slime.el (inferior-slime-switch-to-repl-buffer): New function. (inferior-slime-init): Bind it to a selector key. 2008-12-23 Helmut Eller <[email protected]> * slime-repl.el (slime-repl-connected-hook-function): Create a repl at startup. Well, initialize stream redirection. 2008-12-23 Helmut Eller <[email protected]> Move i/o related event handlers to slime-repl.el. * slime-repl.el (slime-repl-event-hook-function): Handle some events here. 2008-12-23 Helmut Eller <[email protected]> * slime-editing-commands.el (slime-editing-commands-init): Bind slime-close-all-parens-in-sexp. 2008-12-23 Helmut Eller <[email protected]> * inferior-slime.el (inferior-slime-hook-function): New function. (inferior-slime-init): Automatically enable it in the *inferior-lisp* buffer. 2008-12-23 Helmut Eller <[email protected]> * slime-fancy.el: Add slime-repl. 2008-12-09 Helmut Eller <[email protected]> * swank-kawa.scm (mif): Avoid assignments because that triggers a bug/regression in the compiler. (getpid): Don't use the -n with echo. It's not standard and also not needed here. 2008-11-29 Tobias C. Rittweiler <[email protected]> * slime-package-fu.el (slime-goto-package-source-definition): `(slime-pop-to-location loc 'excursion)' no longer exists; use `(slime-goto-source-location loc)' instead. 2008-11-22 Geoff Wozniak <[email protected]> * swank-c-p-c.lisp (parse-completion-arguments): Change the package identifier from the string "KEYWORD" to the form (symbol-name :keyword) for ACL's "modern" mode. 2008-10-31 Nikodemus Siivola <[email protected]> * swank-presentation-streams.liso (slime-stream-p): delete references to SB-IMPL::INDENTING-STREAM, which is unused in SBCL and liable to go away. 2008-10-30 Ivan Shvedunov <[email protected]> * swank-listener-hooks.lisp (%listener-eval): Return nil. 2008-10-23 Helmut Eller <[email protected]> * swank-jolt.k: New backend. 2008-10-23 Helmut Eller <[email protected]> * swank-asdf.lisp (operate-on-system-for-emacs): Always T to collect-notes. Reported by Mark Evenson. 2008-10-21 Helmut Eller <[email protected]> * slime-editing-commands.el (slime-end-of-defun): Use 'major-mode instead of 'major. Reported by S.P.Tseng. 2008-10-19 Helmut Eller <[email protected]> * swank-mit-scheme.scm (swank:frame-locals-and-catch-tags) * swank-kawa.scm (dispatch-events) * swank-goo.goo (frame-locals-and-catch-tags): Update backends for the new swank:frame-locals-and-catch-tags. 2008-10-16 Helmut Eller <[email protected]> * swank-kawa.scm (swank-require): Add a dummy definition to avoid errors at startup. 2008-10-11 Nikodemus Siivola <[email protected]> * slime-scratch.el (slime-scratch-file): New variable. (slime-scratch-buffer): If *slime-scratch* does not exist and slime-scratch-file is set, use 'find-file' instead of `get-buffer-create' to obtain the buffer. 2008-10-11 Helmut Eller <[email protected]> * swank-kawa.scm (compile-file-for-emacs, wrap-compilation) (compile-string-for-emacs): Return a :compilation-result as expected by Emacs. 2008-09-13 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-has-symbol-syntax-p): New. (slime-parse-symbol-name-at-point): New; works on top of `slime-parse-sexp-at-point'. (slime-enclosing-form-specs): Use it. * slime-enclosing-context.el (slime-find-bound-names): Use `slime-parse-symbol-name-at-point'. (slime-find-bound-functions): Ditto. (def-slime-test enclosing-context.1): New test case. Thanks to John Pallister for reporting this bug. 2008-09-11 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (operate-on-system-for-emacs): Adapted to recent changes wrt. swank-compilation-unit. 2008-09-07 Tobias C. Rittweiler <[email protected]> * slime-autodoc.el (slime-make-autodoc-swank-form): Do not highlight operator in local arglist display. 2008-09-07 Tobias C. Rittweiler <[email protected]> Slime-autodoc now also displays arglists of local functions. * swank-arglists.lisp (defslimefun format-arglist-for-echo-area): New RPC. * slime-autodoc.el (slime-make-autodoc-cache-key): New; extracted from slime-autodoc-thing-at-point. (slime-make-autodoc-swank-form): New; partially extracted from slime-autodoc-thing-at-point. Use `slime-autodoc-local-arglist'. (slime-autodoc-local-arglist): New function. (slime-autodoc-thing-at-point): Use the two new functions. 2008-09-07 Tobias C. Rittweiler <[email protected]> * slime-enclosing-context.el: New utility contrib on top of `slime-parse' to extract some context around point, like bound variables or bound functions. * slime-mdot-fu.el: Move context stuff out to the new contrib. 2008-08-27 Helmut Eller <[email protected]> * swank-arglists.lisp (variable-desc-for-echo-area): Limit the length to one line to avoid (some) problems with big or circular values. Reported by Stas Boukarev. 2008-08-22 Stelian Ionescu <[email protected]> * swank-listener-hooks.lisp: Add missing IN-PACKAGE. 2008-08-20 Tobias C. Rittweiler <[email protected]> * slime-fontifying-fu.el: New contrib; fontify with-foo and do-foo like standard macros. * slime-fancy.el: Add slime-fontifying-fu. 2008-08-20 Luís Oliveira <[email protected]> * contrib/slime-indentation.el: fix indentation of IF forms. 2008-08-18 Ariel Badichi <[email protected]> * slime-fuzzy.el: Rename `add-local-hook' to `slime-add-local-hook'. * slime-presentations.el: Ditto. 2008-08-12 Helmut Eller <[email protected]> * slime-clipboard.el (slime-clipboard-insert-ref): Set read-nonsticky to t to work better with kill/yank. * swank-clipboard.lisp (:swank-clipboard): List exports to avoid compiler warnings. 2008-08-12 Helmut Eller <[email protected]> Add a simple object clipboard. * swank-clipboard.lisp: New file. * slime-clipboard.el: New file. 2008-08-07 Tobias C. Rittweiler <[email protected]> * slime-fancy.el: Add slime-mdot-fu and slime-package-fu. 2008-08-07 Tobias C. Rittweiler <[email protected]> * slime-mdot-fu.el: Works for LET bindings now also. (def-slime-test find-local-definitions.1): New test case. 2008-08-05 Michael Weber <[email protected]> * slime-typeout-frame.el (slime-typeout-message-aux): prevent typeout messages from scribbling into any buffer which happens to be in the typeout window (slime-typeout-buffer): new function; changed buffer name to "*SLIME Typeout*" (slime-make-typeout-frame): use it (slime-ensure-typeout-frame): ensure typeout buffer is visible 2008-08-04 Adam Bozanich <[email protected]> * slime-asdf.el: Load swank-asdf. This should avoid the rude disconnect if asdf wasn't loaded. 2008-08-03 Tobias C. Rittweiler <[email protected]> * slime-presentations.el (slime-presentation-around-or-before-point): Guard against the case being used at the start of a buffer. 2008-07-31 Tobias C. Rittweiler <[email protected]> * slime-mdot-fu.el: New contrib. Makes M-. work on local definitions. 2008-07-31 Tobias C. Rittweiler <[email protected]> * slime-package-fu.el (slime-find-package-definition-regexp): Use new constructor `make-slime-file-location'. (slime-frob-defpackage-form, slime-export-symbol-at-point): Now always display a message regarding success of the operation. (slime-package-fu-init-undo-stack, slime-package-fu-unload): New. 2008-07-19 Tobias C. Rittweiler <[email protected]> * slime-package-fu.el, swank-package-fu.lisp: New contrib to automatically add symbols to the relevant DEFPACKAGE forms. You can use `C-c x' to export the symbol at point, and `C-u C-c x' to unexport it. 2008-07-19 Tobias C. Rittweiler <[email protected]> * slime-asdf.el (slime-oos): Use `slime-repl-shortcut-async'. 2008-07-16 Tobias C. Rittweiler <[email protected]> * swank-asdf.lisp (operate-on-system-for-emacs): Wrapped in WITH-SWANK-COMPILATION-UNIT. 2008-06-07 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-cl-symbol-name), (slime-cl-symbol-package), (slime-qualify-cl-symbol-name): Moved back to `slime.el' as they're still used there. 2008-04-17 Gábor Melis <[email protected]> * swank-fancy-inspector.lisp (inspect-slot-for-emacs): slime-read-object has been gone for a long time, replaced with slime-read-from-minibuffer. 2008-04-15 Marco Baringer <[email protected]> * slime-indentation.el (cl-indent::line-number): new function. (cl-indent:indent-cond): Custom indentation method for cl:cond. (cl-indent-body-introducing-loop-macro-keyword) (cl-indent-indented-loop-macro-keyword): more loop keywords. (cl-indent-loop-advance-past-keyword-on-line): deal with comments after loop keywords. (#'define-cl-indent): Fix indentation of handler-case; give cond it's custom indentation method; change indentation of defclass; add methods for do-all-symbols, do-symbols, do-external-symbols, restart-case, with-accessors, with-compilation-unit, with-hash-table-iterator, with-output-to-string, with-input-from-string, with-open-file, with-open-stream, with-package-iterator, with-simple-restart, with-slots. 2008-04-14 Marco Baringer <[email protected]> * swank-arglists.lisp (decode-arglist): Arglists can be dotted lists. 2008-04-06 Tobias C. Rittweiler <[email protected]> * slime-presentations.lisp: (slime-maybe-M-.-presentation-at-point): Renamed to `slime-edit-presentation'. Now makes sure to decline if user gave a name explicitly. 2008-03-24 Helmut Eller <[email protected]> * swank-kawa.scm: Save stacktraces with locals on throw events. This is quite costly but makes debugging easier. 2008-03-14 Tobias C. Rittweiler <[email protected]> * swank-fancy-inspector.lisp (add-slots-for-inspector): Remove IGNORE declaration of non-existing argument. 2008-03-14 Tobias C. Rittweiler <[email protected]> * swank-fuzzy.lisp (fuzzy-convert-matching-for-emacs): Return a string representation of the classifications rather than the classifications themselves. (Notice this propagates up to (and consequently changes the return value of) the RPC function FUZZY-COMPLETIONS. (incompatible api change.) Rationale: The number of supported classification can be changed without having to adapt its display at the client. * slime-fuzzy.lisp (slime-fuzzy-insert-completion-choice): (slime-fuzzy-fill-completions-buffer): Adapted to API change. 2008-03-14 Tobias C. Rittweiler <[email protected]> * swank-fancy-inspector.lisp (make-symbols-listing :classification): Add support for typespec and constant classification; don't silently ignore symbols that can't be usefully classified, but group them under "MISC". 2008-03-14 Helmut Eller <[email protected]> Move filename translation code to contrib. * slime-tramp.el (slime-find-filename-translators) (slime-filename-translations): Move from slime.el. (slime-tramp-from-lisp-filename, slime-tramp-to-lisp-filename): New functions. 2008-03-08 Helmut Eller <[email protected]> Don't blindly override the inspect method for functions. * swank-fancy-inspector.lisp (emacs-inspect function): Define this method only if the backend hasn't defined one. (inspect-function): New function. 2008-03-02 Tobias C. Rittweiler <[email protected]> M-. now works on presentations. Additionally, a Find Definition entry is presented in the menu appearing on right clicking on a presentation. * slime-presentations.lisp (slime-M-.-presentation): New function. (slime-M-.-presentation-at-mouse): New function. (slime-M-.-presentation-at-point): New function. (slime-maybe-M-.-presentation-at-point): New function. (slime-menu-choices-for-presentation): New entry "Find Definition". (slime-presentation-easy-menu): New entry "Find Definition". (slime-presentations-init): Hook into `slime-edit-definition-hooks'. 2008-03-02 Helmut Eller <[email protected]> * swank-mit-scheme.scm: New file. 2008-02-21 Tobias C. Rittweiler <[email protected]> Having the `slime-presentations' contrib enabled, (princ 10) resulted in "1010" rather than "10\n10". (This also caused a regression in the `repl-test' test case.) * swank-presentations.lisp (present-repl-results): Emit fresh-line as the original SEND-REPL-RESULTS-TO-EMACS does. 2008-02-18 Helmut Eller <[email protected]> Update Kawa backend to the changed inspector protocol. * swank-kawa.scm (inspect-object): Return a list (content len start end). (<inspector-state>): New field: content. (content-range, subseq): New functions. 2008-02-15 Matthias Koeppe <[email protected]> * slime-presentations.el (slime-previous-presentation) (slime-next-presentation): Accept a standard prefix argument. 2008-02-13 Helmut Eller <[email protected]> * slime-c-p-c.el (slime-c-p-c-init): Use slime-require instead of a connected-hook. 2008-02-13 Helmut Eller <[email protected]> Track tree-widget change: :dynarg is now called :expander. * slime-xref-browser.el (slime-expand-class-node) (slime-browse-classes, slime-expand-xrefs, slime-browse-xrefs): :dynargs is obsolete, it is now called :expander. 2008-02-10 Helmut Eller <[email protected]> Fix some bugs introduced by the recent reorganization. * swank-fancy-inspector.lisp (emacs-inspect pathname): Fix it again. * slime-fancy-inspector.el: Use slime-require. * slime-fancy.el: slime-fancy-inspector-init no longer exists, so don't call it. Once loaded, it's also no longer possible to turn the fancy inspector off. 2008-02-04 Marco Baringer <[email protected]> * swank-presentation-streams.lisp (presenting-object-1): Add declare special *record-repl-results* to silence compiler warnings. * swank-arglists.lisp (arglist-dispatch): Specialize operator-type so openmcl doesn't warn about unused arguments. (arglist-dispatch): add declare ignore form. 2008-02-04 Helmut Eller <[email protected]> Move some functions to swank-arglist.lisp. * swank-arglist.lisp (length=, ensure-list, recursively-empty-p) (maybecall, exactly-one-p, read-softly-from-string) (unintern-in-home-package, valid-function-name-p): Moved from swank.lisp. to contrib/swank-arglist.lisp. 2008-02-03 Marco Baringer <[email protected]> * swank-motd.lisp, slime-motd.el: Message Of The Day printing for slime. * slime-indentation.el: Integrate cl-indent.el into slime's contrib infrastructure. Fix bug in &rest. * swank-indentation.lisp: Allow an application runnig under slime to update emacs' indentation notes. 2008-01-27 Helmut Eller <[email protected]> Make autodoc use the correct width of the typeout-window. * slime-autodoc.el (slime-autodoc-dimensions-function): New variable. (slime-autodoc-message-dimensions): Use it. * slime-typeout-frame.el (slime-typeout-autodoc-dimensions): New function. (slime-typeout-frame-init): Use it. 2008-01-27 Helmut Eller <[email protected]> Use slime-require instead of a connected-hook. * slime-autodoc.el (slime-autodoc-on-connect): Deleted. 2008-01-20 Matthias Koeppe <[email protected]> Hook presentations into debugger and inspector, restoring features that were removed on 2007-08-27. * slime-presentations.el (slime-presentation-add-easy-menu): Install presentation menu also in the debugger and inspector. (slime-presentation-inspector-insert-ispec): New. (slime-presentation-sldb-insert-frame-variable-value): New. (slime-presentations-init): Install these functions as slime-inspector-insert-ispec-function and sldb-insert-frame-variable-value-function. 2008-01-19 Helmut Eller <[email protected]> * swank-goo.goo: New file. * swank-kawa.scm: New file. 2008-01-11 Stelian Ionescu <[email protected]> * slime-presentations.el (slime-copy-or-inspect-presentation-at-mouse): Call slime-copy-presentation-at-mouse-to-repl rather than slime-copy-presentation-at-mouse. 2008-01-10 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-make-form-spec-from-string): Correctly handle quoted things and other non-proper "(...)" forms. * swank-arglist.lisp (read-form-spec): Added assertion against receiving junk form specs from Emacs. 2008-01-10 Tobias C. Rittweiler <[email protected]> * slime-editing-commands.el (slime-close-all-parens-in-sexp): Use new portability function `slime-delete-and-extract-region'. 2008-01-10 Tobias C. Rittweiler <[email protected]> * swank-parse.lisp (slime-incomplete-form-at-point): Hopefully better fix than before. 2008-01-10 Matthias Koeppe <[email protected]> Add keyboard commands (starting with C-c C-v) and a top-level menu for presentation-related commands. Add a command (C-c C-v M-o) to forget all objects associated with presentations, without clearing the REPL buffer. * slime-presentations.el (slime-presentation-around-or-before-point-or-error): New function. (slime-inspect-presentation): New function, factored out from slime-inspect-presentation-at-mouse. (slime-inspect-presentation-at-mouse): Use it here. (slime-inspect-presentation-at-point): New command. (slime-copy-presentation-to-repl): New function, factored out from slime-copy-presentation-at-mouse. (slime-copy-presentation-at-mouse-to-repl): Renamed from slime-copy-presentation-at-mouse; use the new function slime-copy-presentation-to-repl. (slime-copy-presentation-at-point-to-repl): New command. (slime-copy-presentation-to-kill-ring): New function, factored out from slime-copy-presentation-at-mouse-to-kill-ring. (slime-copy-presentation-at-point-to-kill-ring): New command. (slime-describe-presentation): New function, factored out from slime-describe-presentation-at-mouse. (slime-describe-presentation-at-mouse): Use it here. (slime-describe-presentation-at-point): New command. (slime-pretty-print-presentation): New function, factored out from slime-pretty-print-presentation-at-mouse. (slime-pretty-print-presentation-at-mouse): Use it here. (slime-pretty-print-presentation-at-point): New command. (slime-mark-presentation): New command. (slime-previous-presentation, slime-next-presentation): New commands. (slime-presentation-command-map, slime-presentation-bindings): New variables. (slime-presentation-init-keymaps): New function. (slime-presentation-around-or-before-point-p): New function. (slime-presentation-easy-menu): New variable. (slime-presentation-add-easy-menu): New function. (slime-clear-presentations): Make interactive, remove presentation markup from all presentations in the REPL buffer. (slime-presentations-init): Call slime-presentation-init-keymaps and slime-presentation-add-easy-menu. 2008-01-10 Tobias C. Rittweiler <[email protected]> * swank-parse.lisp (slime-incomplete-form-at-point): Take the arglist index the user's point is located at correctly into account. Previously `C-c C-s' on `(defun |foo' would have inserted `args body...)', now it inserts `name args body...)' 2008-01-10 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (read-form-spec): Changed "cons" clause to "list" clause in etypecase. Fix for error on arglist display on `(declare (ftype (|)))', | being point. 2008-01-10 Tobias C. Rittweiler <[email protected]> * slime-fuzzy.el (slime-fuzzy-completion-time-limit-in-msec): Update docstring: Its value isn't rounded to nearest second, but is really interpreted as msecs. * swank-fuzzy.el: Updated some comments. (fuzzy-generate-matchings): Sort package matchings before traversal, such that they're traversed in the order of their score. (Important when time limit exhausts during traversal.) 2008-01-09 Matthias Koeppe <[email protected]> Restore support for Scheme programs that was removed from core SLIME on 2007-09-19, as a "slime-scheme" contrib. * slime-scheme.el: New file. 2007-12-30 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp: Fix for `(cerror "FOO" 'type-error ...)' (*arglist-dummy*): Removed. (arglist-dummy): New structure. Wrapper around whatever could not be reliably read. The clue is that its printing function does only print the object this structure contains. (read-conversatively-for-autodoc): Return such a structure if conversative reading fails. 2007-11-27 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (arglist-dispatch 'defmethod): Use VALID-FUNCTION-NAME-P. Fixes error on certain `(defmethod (setf ...))' forms. 2007-11-27 Tobias C. Rittweiler <[email protected]> * swank-arglists.lisp (print-arglist): Print initforms in &optional and &key lambda list specifiers as if by PRIN1 instead of PRINC. Reported by Michael Weber. 2007-11-24 Helmut Eller <[email protected]> * slime-fuzzy.el: Use slime-require instead of a connected-hook. 2007-11-20 Helmut Eller <[email protected]> * swank-fancy-inspector.lisp (inspect-for-emacs function t): Don't specialize the second argument, so that backend methods take precedence. Reported by Maciej Katafiasz. 2007-10-24 Tobias C. Rittweiler <[email protected]> * swank-arglist.lisp (decode-arglist): Fix incompatibility with ACL's modern reader mode. Thanks to Andreas Fuchs for stumbling over this. 2007-10-22 Tobias C. Rittweiler <[email protected]> * swank-arglist.lisp (read-softly): Renamed to READ-SOFTLY-FROM-STRING and moved to `swank.lisp'. (unintern-in-home-package): Moved to `swank.lisp'. 2007-10-01 Tobias C. Rittweiler <[email protected]> * slime-autdoc.el (slime-autodoc-message-ok-p): Don't display an arglist when the minibuffer is active. 2007-10-01 Tobias C. Rittweiler <[email protected]> * slime-typeout-frame.el: Messages in the typeout frame were too easily overwritten by `slime-autodoc'. Fix that. Reported by Geoff Wozniak. (slime-typeout-message-aux): Split out from `slime-typeout-message'. (slime-typeout-message): Wrapper around it. Additionally disable the autodoc timer temporarily. 2007-09-30 Geoff Wozniak <[email protected]> * slime-typeout-frame.el (slime-typeout-frame-init): Fix quoted FUNCTION forms in literal. 2007-09-28 Tobias C. Rittweiler <[email protected]> * README: Updated. * slime-fancy.el: `slime-highlighting-edits' is not enabled by default anymore, as its functionality is controversial, and it's easier to explicitly enable it than to disable it once it got globally activated. Better to be conservative. * slime-fancy.el: Not only load, but also enable `slime-scratch'. 2007-09-21 Helmut Eller <[email protected]> * slime-asdf.el (slime-asdf-init, slime-asdf-unload): Fix typos. Reported by Ariel Badichi. 2007-09-20 Helmut Eller <[email protected]> Separate loading from initialization for many contribs. * slime-asdf.el * slime-autodoc.el * slime-banner.el * slime-c-p-c.el * slime-editing-commands.el * slime-fancy-inspector.el * slime-fuzzy.el * slime-highlight-edits.el * slime-presentations.el * slime-references.el * slime-scratch.el * slime-typeout-frame.el * swank-fancy-inspector.lisp * slime-fancy.el: As an exception, call the respective init function when loading. 2007-09-19 Helmut Eller <[email protected]> * slime-c-p-c.el (slime-complete-symbol*-fancy): Move defcustom from slime.el to contrib/slime-c-p-c.el. 2007-09-16 Tobias C. Rittweiler <[email protected]> * swank-fuzzy.lisp: Fix regression that would not allow to fuzzy complete on inputs without package qualifier like "app". Reported by David J. Neu. (%make-duplicate-symbols-filter): Return complement. (fuzzy-find-matching-symbols): Treat passed filter as an acceptor predicate, not as a rejector. 2007-09-15 Helmut Eller <[email protected]> Add the necessary hooks when loading some contribs, so that those contribs can be easily loaded with slime-setup. * slime-highlight-edits.el (slime-highlight-edits-mode-on): New function. Add this to slime-mode-hook by default. * slime-autodoc.el (slime-use-autodoc-mode): Change default to t. 2007-09-15 Ariel Badichi <[email protected]> * swank-fancy-inspector.lisp (inspect-for-emacs package): When inspecting a package, the links in the use list and the used-by list lead to inspecting package names, rather than the packages themselves. Fix that. 2007-09-15 Tobias C. Rittweiler <[email protected]> * slime-parse.el: Fix extended arglist display on misbalanced expressions like `(defun foo | ... (defun bar () 'bar)' Reported by Ariel Badichi. (slime-inside-string-p): Use `beginning-of-defun' directly than relying on `slime-region-for-defun-at-point' (as this one uses `end-of-defun' which signals an error on misbalanced expressions.) 2007-09-15 Tobias C. Rittweiler <[email protected]> * swank-fuzzy.lisp: Code reorganization and cleanup; making it compute less and couple of other minor issues fixed on the way. Thanks to Stelian Ionescu for testing and providing feedback! (defstruct fuzzy-matching): New `package-name' slot. (make-fuzzy-matching): Updated for new slot. (format-completion-result): Renamed to `fuzzy-format-matching'. (%fuzzy-extract-matching-info): Helper for `fuzzy-format-matching'. (fuzzy-completion-set): Convert the matchings after they got truncated to the passed completion-set limit from Emacs. I.e. `slime-fuzzy-completion-limit' This means a huge computational reduction. (fuzzy-create-completion-set): Renamed to `fuzzy-generate-matchings'. (fuzzy-generate-matchings): Returns the fuzzy matchings themselves, do not yet convert them for Emacs. Do not perform two sorts on the generated matchings (first alphabetically, then per score), but just one with an appropriate predicate that sorts per score, unless matchings are equal, then sort alphabetically. Prune matchings with symbols which are found in a differenta package than their home package when the home package is among the matched packages. Try to take the time needed to sort the generated matchings into account for the time-limit. (%guess-sort-duration): Helper. Tries to guess how long the sort will take. (%make-duplicate-symbols-filter): Helper. Used for pruning of matchings. (fuzzy-matching-greaterp): New testing predicate for sorting. (fuzzy-find-matching-symbols): Now takes a :filter keyarg; only considers symbols that pass through the filter. (fuzzy-find-matching-packages): Do not return matchings for all nicknames of package, but just the one that matches best. 2007-09-11 Tobias C. Rittweiler <[email protected]> * slime-editing-commands.el: Automatically bind the editing commands when this module is required. (Previously, one had to enable them explicitly, but this is inconsistent to, for instance, the `slime-c-p-c' module which also sets up its bindings automatically.) (slime-bind-editing-commands): Renamed to `slime-editing-commands-init'. (slime-editing-commands-init): Evaluated at toplevel. 2007-09-11 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-enclosing-form-specs): Now also works even when point is inside a string. (slime-inside-string-p): New function. (slime-beginning-of-string): New function. 2007-09-11 Tobias C. Rittweiler <[email protected]> * swank-arglist.lisp (read-conversatively-for-autodoc): Also parse quoted symbols explicitly. This fixed extended arglist display for `(make-instance 'foo'. Reported by: Johannes Groedem. 2007-09-11 Tobias C. Rittweiler <[email protected]> * slime-fancy.el: Require `slime-references'. 2007-09-10 Helmut Eller <[email protected]> * slime-parse.el (slime-cl-symbol-name, slime-cl-symbol-package): Move from slime.el to contrib/slime-parse.el. 2007-09-10 Helmut Eller <[email protected]> * inferior-slime.el: Fix installation comment. 2007-09-10 Helmut Eller <[email protected]> Fix some of the bugs introduced with the last change. * slime-references.el (sldb-reference-face): Add missing quote. (sldb-reference-properties): We are lucky and can use keywords instead of strings. (sldb-maybe-insert-references): Insert newlines differently. 2007-09-10 Helmut Eller <[email protected]> Move SBCL doc references to contrib. * slime-references.el: New file. 2007-09-10 Attila Lendvai <[email protected]> * slime-fuzzy.el: Fixed some race condition that prevented a proper closing of the *Fuzzy Completions* buffer in some circumstances. (slime-fuzzy-save-window-configuration): Removed. Hooking up `window-configuration-change-hook' via `run-with-timer' was racy and lead to this bug; we now set the hook explicitely at the necessary place instead. (slime-fuzzy-window-configuration-change-add-hook): Removed. (slime-fuzzy-choices-buffer): Explicitly save the window-configuration, and explicitly set the hook. (slime-fuzzy-done): Explicitely remove the hook. 2007-09-10 Tobias C. Rittweiler <[email protected]> * slime-parse.el (slime-cl-symbol-name, slime-cl-symbol-package): Moved back into slime.el. 2007-09-08 Stelian Ionescu <[email protected]> * slime-banner.el: Fixed typo to provide `slime-banner', not `slime-startup-animation'. 2007-09-06 Matthias Koeppe <[email protected]> * slime-presentations.el (slime-presentation-write): Use case, not ecase, for dispatching targets. Should fix XEmacs compatibility. Reported by Steven E. Harris. 2007-09-05 Tobias C. Rittweiler <[email protected]> * swank-c-p-c.el: This file incorrectly provided the module `:swank-compound-prefix'; changed that to `:swank-c-p-c'. This gets rid off the nasty redefinition warnings that were previously signalled when loading SWANK with SBCL. * swank-arglist.lisp (arglist-for-echo-area): Locally declare `*arglist-pprint-bindings*' to be special, as the variable is defined later in the file. (Gets rid of warnings during loading.) 2007-09-05 Tobias C. Rittweiler <[email protected]> * slime-c-p-c.el (slime-c-p-c-init): Bind `slime-complete-form' to `C-c C-s' in `slime-repl-mode-map'. 2007-09-05 Tobias C. Rittweiler <[email protected]> Added extended arglist display for DECLAIM and PROCLAIM. * slime-parse.el (slime-extended-operator-name-parser-alist): Added entries for "DECLAIM", and "PROCLAIM". (slime-parse-extended-operator/declare): Provide information about the operator the arglist is requested for. (slime-make-form-spec-from-string): Fixed for "()" as input. * swank-arglists.lisp (valid-operator-symbol-p): Explicitly allow the symbol 'DECLARE. (arglist-dispatch): New method for `DECLARE'. We have to catch this explicitly, as DECLARE doesn't have an arglist (in the `swank-backend:arglist' sense.) (*arglist-pprint-bindings*): New variable. Splitted out from `decoded-arglist-to-string'. (decoded-arglist-to-string): Use `*arglist-pprint-bindings*'. (parse-first-valid-form-spec): Rewritten, because function signature had to be changed: doesn't take arg-indices anymore; returns position of first valid spec as second value to remedy. (arglist-for-echo-area): Accomodated to new signature of `parse-first-valid-form-spec'; now searchs for contextual declaration operator name, to prefix a declaration arglist by "declare", "declaim", or "proclaim" depending on what was used at user's point in Slime. Use `*arglist-pprint-bindings*' for printing the found declaration operator name. (%find-declaration-operator): New helper to do this search. (completions-for-keyword): Accomodated to new signature of `parse-first-valid-form-spec'. Also fixed to correctly provide keyword completions in nested expressions like: `(defun foo (x) (let ((bar 'quux)) (with-open-file (s f :|' [`|' being point] 2007-09-04 Helmut Eller <[email protected]> * swank-arglists.lisp (parse-first-valid-form-spec): Rewrite it for ABCL. 2007-09-04 Helmut Eller <[email protected]> Some bug fixes for slime-complete-symbol*. Patches by Mr. Madhu <[email protected]> * slime-c-p-c.el (slime-c-p-c-unambiguous-prefix-p): New variable. (slime-expand-abbreviations-and-complete): Use it. Also add a workaround for XEmacs issues. 2007-09-04 Helmut Eller <[email protected]> Move asdf support to contrib: * slime-asdf.el: New file. * swank-asdf.lisp: New file (operate-on-system, asdf-central-registry) (list-all-systems-known-to-asdf): Use the asdf package in the source code, i.e. write asdf:operate instead of (find-symbol "OPERATE" "ASDF"). 2007-09-04 Helmut Eller <[email protected]> * slime-tramp.el: New file. * slime-banner.el: New file. * inferior-slime.el: New file. 2007-09-01 Matthias Koeppe <[email protected]> * slime-fancy.el: New meta-contrib. 2007-09-01 Matthias Koeppe <[email protected]> * slime-presentations.el (slime-dispatch-presentation-event): Explicitly return t to indicate the events have been handled, rather than relying on the return values of the called functions. 2007-09-01 Matthias Koeppe <[email protected]> * slime-typeout-frame.el (slime-typeout-autodoc-message): Fix for messages that contain "%". Reported by Martin Simmons. 2007-09-01 Tobias C. Rittweiler <[email protected]> Makes `slime-complete-form' work on `(eval-when |'; doesn't work on `(eval-when (|' yet. * slime-parse.el (slime-parse-sexp-at-point): Guard against `(char-after)' being NIL at end of buffer (especially important for use on the REPL.) * swank-arglist.lisp (arglist-dispatch 'eval-when): Fix typo. (print-decoded-arglist-as-template): Print keywords with PRIN1. 2007-08-31 Tobias C. Rittweiler <[email protected]> Added extended arglist display for EVAL-WHEN, viz: (eval-when (&any :compile-toplevel :load-toplevel :execute) &body body) Notice that completion works as expected on these keywords. Die, EVAL-ALWAYS, die! * swank-arglist (arglist-dispatch): New method for EVAL-WHEN. (print-arglist): Print keywords with PRIN1 rather than PRINC, to get a result as shown above for the EVAL-WHEN case. (completions-for-keyword): Add support for &ANY args. 2007-08-31 Tobias C. Rittweiler <[email protected]> * swank-arglist.lisp: Do not fall back to READ when interpreting the ``raw form specs'' comming from Slime's autodoc stuff. But still do so for those comming from `slime-complete-form'. (unintern-in-home-package): New. (*arglist-dummy*): New. (read-conversatively-for-autodoc): New function. Doesn't READ anything that comes from Slime's autodoc. Just tries to parse symbols. If that's not successfull, returns the dummy placeholder datum stored in `*arglist-dummy*'. (arglist-for-echo-area): Parse form-specs using `read-conversatively-for-autodoc'. Use `unintern-in-home-package'. (read-softly): New. Splitted out from `read-form-spec'. This function tries to keep track of newly interned functions before READing. (read-form-spec): Parametrized to take a function to read the elements of the passed ``raw form spec''. Uses `read-softly' as default reader. (complete-form, completions-for-keywords): Use `unintern-in-home-package'. 2007-08-31 Helmut Eller <[email protected]> * slime-autodoc.el: Add installation notes. * slime-editing-commands.el: Add installation notes. * slime-c-p-c.el (slime-c-p-c-init): Fix typos. 2007-08-31 Helmut Eller <[email protected]> Move compound prefix completion and autodoc to contrib. Interdependencies made it almost necessary to move parsing code and editing commands in the same patch. * slime-c-p-c.el: New file. * swank-c-p-c.el: New file. * slime-parse.el: New file. * swank-arglists.el: New file. * slime-editing-commands.el: New file. * slime-autodoc.el: New file. 2007-08-28 Matthias Koeppe <[email protected]> * slime-presentations.el (slime-last-output-target-id) (slime-output-target-to-marker, slime-output-target-marker) (slime-redirect-trace-output): Moved back into SLIME core. * swank-presentation-streams.lisp: Require swank-presentations. (present-repl-results-via-presentation-streams): New. (*send-repl-results-function*): Set this variable rather than overriding send-repl-results-to-emacs. 2007-08-28 Helmut Eller <[email protected]> * slime-presentations.el (slime-clear-presentations): New function. Add it to slime-repl-clear-buffer-hook. 2007-08-28 Helmut Eller <[email protected]> * swank-listener-hooks.lisp: New file 2007-08-28 Helmut Eller <[email protected]> Move the rest of the presentation related code. * swank-presentations.lisp (present-repl-results): Renamed from send-repl-results-to-emacs. 2007-08-28 Matthias Koeppe <[email protected]> * swank-presentations.lisp (send-repl-results-to-emacs): Override core defun to mark up REPL results as presentations. * swank-presentations.lisp: New file. * slime-presentations.el: Load it. * slime-presentations.el (slime-presentation-write): Remove id argument. * slime-presentation-streams.el: Require slime-presentations contrib. 2007-08-27 Helmut Eller <[email protected]> Move presentations to contrib. (ELisp part) * slime-presentations.el: New file. * slime-scratch.el (slime-scratch-buffer): Ignore presentations. 2007-08-24 Matthias Koeppe <[email protected]> Some fixes to the presentation-streams contrib. * swank-presentation-streams.lisp [sbcl]: Load the pretty-printer patch only at load time. Add some trickery so that SBCL does not complain about the changed layout of the pretty-stream class. * swank-presentation-streams.lisp (slime-stream-p): Using special return values, indicate whether we are printing to the REPL-results stream, or a dedicated stream. (presentation-record): New slot "target". (presentation-start, presentation-end): Use it (rather than the global variable *use-dedicated-output-stream*) to decide whether to use the bridge protocol or the :presentation-start/-end protocol. Also use it as the TARGET argument of :presentation-start/-end messages. (presenting-object-1): Use the new return values of slime-stream-p. * swank-presentation-streams.lisp (slime-stream-p) [cmu]: Use the return value of slime-stream-p rather than the global variable *use-dedicated-output-stream* to decide whether printing through pretty streams is safe for the layout. 2007-08-24 Matthias Koeppe <[email protected]> Make the fancy "presentation streams" feature a contrib. Previously, it was only available if "present.lisp" was loaded manually. * slime-presentation-streams.el: New file. * swank-presentation-streams.lisp: New file, moved here from ../present.lisp 2007-08-24 Helmut Eller <[email protected]> * slime-typeout-frame.el: New file. * slime-xref-browser.el: New file. * slime-highlight-edits.el: New file. * slime-scratch.el: New file. 2007-08-23 Helmut Eller <[email protected]> Move Marco Baringer's inspector to contrib. * swank-fancy-inspector.lisp: New file. The only difference to the code is that inspect-for-emacs methods in this file are specialized to the new class `fancy-inspector'. (fancy-inspector): New class. * slime-fancy-inspector.el: New file. 2007-08-19 Helmut Eller <[email protected]> Moved fuzzy completion code to contrib directory. * slime-fuzzy.el: New file. (slime-fuzzy-init): New function. Load CL code on startup. * swank-fuzzy.lisp: New file. Common Lisp code for fuzzy completion.