The in-place completion that was now made the default didn't work for me in GNU emacsen 21 and 22 (cvs head) under Debian and Windows. (Didn't work means that the SPC, RET and other such keys in the target buffer didn't end the completion and only performed their normal function instead) After some investigation it seems that the keymap of slime-fuzzy-target-buffer-completions-mode wasn't overriding the standard slime keymap. There's a pretty easy fix for that - move the minor mode definition for slime-fuzzy-target-buffer-completions-mode after the definition of slime-mode. (And also add <return> to the direct bindings in slime-target-buffer-fuzzy-completions-map.) I tried it on gnu emacs 21 on Debian and 22 on Debian and Windows and it seems to fix the issue for me. Unfortunately I don't have a working xemacs at the moment so I can't test it there. The patch is trivial, but I'll attach it just in case.
Cheers, Ury
Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.719 diff -u -r1.719 slime.el --- slime.el 19 Dec 2006 10:55:24 -0000 1.719 +++ slime.el 19 Dec 2006 18:19:44 -0000 @@ -576,26 +576,13 @@ (call-interactively 'isearch-forward)))
;; some unconditional direct bindings - (dolist (key (list (kbd "RET") (kbd "<SPC>") "(" ")" "[" "]")) + (dolist (key (list (kbd "<return>") (kbd "RET") (kbd "<SPC>") "(" ")" "[" "]")) (define-key map key 'slime-fuzzy-select-and-process-event-in-target-buffer))) map ) "Keymap for slime-target-buffer-fuzzy-completions-mode. This will override the key bindings in the target buffer temporarily during completion.")
-(define-minor-mode slime-fuzzy-target-buffer-completions-mode - "This minor mode is intented to override key bindings during fuzzy -completions in the target buffer. Most of the bindings will do an implicit select -in the completion window and let the keypress be processed in the target buffer." - nil - nil - slime-target-buffer-fuzzy-completions-map) - -(add-to-list 'minor-mode-alist - '(slime-fuzzy-target-buffer-completions-mode - " Fuzzy Target Buffer Completions")) - - ;;;;; slime-mode (define-minor-mode slime-mode "\<slime-mode-map>\ @@ -638,6 +625,20 @@ "The Lisp package to show in the modeline. This is automatically updated based on the buffer/point."))
+(define-minor-mode slime-fuzzy-target-buffer-completions-mode + "This minor mode is intented to override key bindings during fuzzy +completions in the target buffer. Most of the bindings will do an implicit select +in the completion window and let the keypress be processed in the target buffer." + nil + nil + slime-target-buffer-fuzzy-completions-map) + +(add-to-list 'minor-mode-alist + '(slime-fuzzy-target-buffer-completions-mode + " Fuzzy Target Buffer Completions")) + + + (defun slime-update-modeline-package () (ignore-errors (when (and slime-update-modeline-package
I tried it on gnu emacs 21 on Debian and 22 on Debian and Windows and it seems to fix the issue for me. Unfortunately I don't have a working xemacs at the moment so I can't test it there. The patch is trivial, but I'll attach it
this patch in turn broke xemacs... :)
proper fix is in the darcs repo.
;; Make sure slime-fuzzy-target-buffer-completions-mode's map is ;; before everything else. (setf minor-mode-map-alist (stable-sort minor-mode-map-alist (lambda (a b) (eq a 'slime-fuzzy-target-buffer-completions-mode)) :key #'car))
thanks,