[slime-devel] slime.el `slime-expand-abbreviations-and-complete'

Madhu enometh at meer.net
Sun Dec 10 13:09:55 UTC 2006


[Reported to author(s) by email earlier this year]

Emacs `choose-completion' (choosing a completion from the
*Completions* buffer) always replaces text upto (point). So the code
which figures out an `unambiguous-completion-length' and places the
point there in `slime-expand-abbreviations-and-complete' causes
problems: the replacement text gets garbled.

(setq  slime-complete-symbol-function 'slime-complete-symbol*
       slime-complete-symbol*-fancy nil
       pop-up-windows nil
       pop-up-frames nil)

In the slime-repl buffer at the prompt, put the string "swank::c-s"
and type TAB or M-TAB, and choose any item, say
swank::compilation-speed. On finding your way back to the repl buffer,
you see the garbled text.

For eg; if the string was "(swank::c-s" M-TAB,
on finding your way back to the repl buffer, you'll see:
  "swank::compilation-speed-s"  and no paren.

This has been around for ever. I believe the following Changelog
entries apply.

| 2004-02-29  Helmut Eller  <e9626484 at stud3.tuwien.ac.at>
| 2003-11-03  Helmut Eller  <e9626484 at stud3.tuwien.ac.at>

The fix that gets rid of the bogus `unambiguous-completion-length' is
appended.

Index: slime.el
===================================================================
RCS file: /project/slime/cvsroot/slime/slime.el,v
retrieving revision 1.698
diff -u -r1.698 slime.el
--- slime.el	7 Dec 2006 11:08:57 -0000	1.698
+++ slime.el	10 Dec 2006 13:00:21 -0000
@@ -6096,15 +6097,10 @@
                          (set-window-start window (point-min) nil)
                        (let ((other-window-scroll-buffer 
                               (window-buffer window)))
-                   (scroll-other-window)))))
-               (let ((unambiguous-completion-length
-                      (loop for c in completion-set
-                            minimizing (or (mismatch completed-prefix c)
-                                           (length completed-prefix)))))
-                 (goto-char (+ beg unambiguous-completion-length))
-                 (slime-display-completion-list completion-set
-                                                completed-prefix)
-                 (slime-complete-delay-restoration))))))))
+                   (scroll-other-window))))) ; madhu
+               (slime-display-completion-list completion-set
+                                              completed-prefix)
+               (slime-complete-delay-restoration)))))))
 
 (defun slime-complete-symbol*-fancy-bit ()
   "Do fancy tricks after completing a symbol.




More information about the slime-devel mailing list