[slime-cvs] CVS slime/contrib

CVS User trittweiler trittweiler at common-lisp.net
Mon Dec 21 16:23:02 UTC 2009


Update of /project/slime/cvsroot/slime/contrib
In directory cl-net:/tmp/cvs-serv26771/contrib

Modified Files:
	ChangeLog swank-arglists.lisp 
Log Message:
	* swank-arglists.lisp (completions-for-keyword): Return nil
	instead of :not-available because the function is supposed to
	return a list of available completions.

	Adapted from patch by Ariel Badichi.


--- /project/slime/cvsroot/slime/contrib/ChangeLog	2009/12/21 16:03:41	1.313
+++ /project/slime/cvsroot/slime/contrib/ChangeLog	2009/12/21 16:23:02	1.314
@@ -1,5 +1,13 @@
 2009-12-21  Tobias C. Rittweiler  <tcr at freebits.de>
 
+	* swank-arglists.lisp (completions-for-keyword): Return nil
+	instead of :not-available because the function is supposed to
+	return a list of available completions.
+
+	Adapted from patch by Ariel Badichi.
+
+2009-12-21  Tobias C. Rittweiler  <tcr at freebits.de>
+
 	Today's cleanup day.
 
 	* slime-parse.el (slime-incomplete-form-at-point)
--- /project/slime/cvsroot/slime/contrib/swank-arglists.lisp	2009/12/21 16:03:41	1.48
+++ /project/slime/cvsroot/slime/contrib/swank-arglists.lisp	2009/12/21 16:23:02	1.49
@@ -1151,27 +1151,28 @@
   "Return a list of possible completions for KEYWORD-STRING relative
 to the context provided by RAW-FORM."
   (with-buffer-syntax ()
-    (with-available-arglist (arglist)
-        (find-immediately-containing-arglist (parse-raw-form raw-form))
-      ;; It would be possible to complete keywords only if we are in
-      ;; a keyword position, but it is not clear if we want that.
-      (let* ((keywords
-              (append (mapcar #'keyword-arg.keyword
-                              (arglist.keyword-args arglist))
-                      (remove-if-not #'keywordp (arglist.any-args arglist))))
-             (keyword-name
-              (tokenize-symbol keyword-string))
-             (matching-keywords
-              (find-matching-symbols-in-list
-               keyword-name keywords (make-compound-prefix-matcher #\-)))
-             (converter (completion-output-symbol-converter keyword-string))
-             (strings
-              (mapcar converter
-                      (mapcar #'symbol-name matching-keywords)))
-             (completion-set
-              (format-completion-set strings nil "")))
-        (list completion-set
-              (longest-compound-prefix completion-set))))))
+    (let ((arglist (find-immediately-containing-arglist
+                    (parse-raw-form raw-form))))
+      (when (arglist-available-p arglist)
+        ;; It would be possible to complete keywords only if we are in
+        ;; a keyword position, but it is not clear if we want that.
+        (let* ((keywords
+                (append (mapcar #'keyword-arg.keyword
+                                (arglist.keyword-args arglist))
+                        (remove-if-not #'keywordp (arglist.any-args arglist))))
+               (keyword-name
+                (tokenize-symbol keyword-string))
+               (matching-keywords
+                (find-matching-symbols-in-list
+                 keyword-name keywords (make-compound-prefix-matcher #\-)))
+               (converter (completion-output-symbol-converter keyword-string))
+               (strings
+                (mapcar converter
+                        (mapcar #'symbol-name matching-keywords)))
+               (completion-set
+                (format-completion-set strings nil "")))
+          (list completion-set
+                (longest-compound-prefix completion-set)))))))
 
 (defparameter +cursor-marker+ '%cursor-marker%)
 





More information about the slime-cvs mailing list