[slime-devel] Fuzzy completion in-place on GNU Emacs

Ury Marshak urym at two-bytes.com
Tue Dec 19 19:22:57 UTC 2006


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






More information about the slime-devel mailing list