[slime-devel] Re: slime-c-p-c

Madhu enometh at meer.net
Mon Sep 8 07:50:41 UTC 2008


* Madhu <m33aow3hj9.fsf at meer.net> Wrote on Mon, 05 May 2008 20:49:22 +0530:

| Re: slime-complete-symbol* : I noticed that slime-c-p-c does not work
| correctly but can mangle text after a completion is chosen , [I'm
| appending a test case to the end of this message.]
|
| I'm afraid I'm to blame for this, I think: the patch I submitted
| claiming to fix XEmacs behaviour (on 2007-08-04) and which was committed
| on 2007-09-04 is incorrect [ 1. the analysis is not restricted to
| XEmacs, and 2. Emacs choose-completion does not work right unless the
| text in the buffer is a proper prefix of the completions displayed.  I
| cannot see any lowest-common-denominator solution for this.]

Both points 1. and 2. and the rest of the message applied to Emacs CVS
23.0.60, which recently changed the behaviour of
`choose-completion-string'

,---- from emacs/lisp/ChangeLog
| * 2008-04-29  Stefan Monnier  <monnier at iro.umontreal.ca>
+---- from emacs/lisp/simple.el
| 	       'choose-completion-string-functions
| 	       choice buffer mini-p base-size)
| 	;; Insert the completion into the buffer where it was requested.
|+        ;; FIXME:
|+        ;; - There may not be a field at point, or there may be a field but
|+        ;;   it's not a "completion field", in which case we have to
|+        ;;   call choose-completion-delete-max-match even if base-size is set.
|+        ;; - we may need to delete further than (point) to (field-end),
|+        ;;   depending on the completion-style, and for that we need to
|+        ;;   extra data `completion-extra-size'.
| 	(if base-size
|-	    (delete-region (+ base-size (if mini-p
|-					    (minibuffer-prompt-end)
|-					  (point-min)))
|-			   (point))
|+	    (delete-region (+ base-size (field-beginning)) (point))
| 	  (choose-completion-delete-max-match choice))
| 	(insert choice)
| 	(remove-text-properties (- (point) (length choice)) (point)
`----

I consider this a bug in GNU Emacs which should be fixed in emacs, and
not SLIME's c-p-c.  Other completion packages are broken too. [I was an
unnecessarily overweening :)]
--
Madhu





More information about the slime-devel mailing list