[slime-devel] #'completion-output-symbol-converter

Madhu enometh at meer.net
Sun Dec 10 10:44:38 UTC 2006


When (read-table-case *READTABLE*) is :upcase completing M-V-B<TAB>
fails. Similarly :downcase. This is (I believe) because of a change
introduced in

|2006-10-26  Attila Lendvai  <attila.lendvai at gmail.com>
|	(completion-output-symbol-converter): New to handle escaped
|	symbols for those who need to mess around with symbols like
|	layered-function-definers::|CONTEXTL::SLOT-VALUE-USING-LAYER|.
|	When a symbol is escaped then completion is case sensitive.

The following patch fixes it [the heuristic] to work as before.

--- swank.lisp.~1.422~	2006-12-10 14:51:16.000000000 +0530
+++ swank.lisp	2006-12-10 16:05:14.000000000 +0530
@@ -3242,7 +3242,7 @@
 INPUT is used to guess the preferred case."
   (ecase (readtable-case *readtable*)
     (:upcase (cond ((or with-escaping-p
-                        (every #'upper-case-p input))
+                        (not (some #'lower-case-p input)))
                     #'identity)
                    (t #'string-downcase)))
     (:invert (lambda (output)
@@ -3252,7 +3252,7 @@
                        (upper (string-downcase output))
                        (t output)))))
     (:downcase (cond ((or with-escaping-p
-                          (every #'lower-case-p input))
+                          (not (some #'upper-case-p input)))
                       #'identity)
                      (t #'string-upcase)))
     (:preserve #'identity)))





More information about the slime-devel mailing list