[slime-cvs] CVS slime

trittweiler trittweiler at common-lisp.net
Thu May 17 15:29:07 UTC 2007


Update of /project/slime/cvsroot/slime
In directory clnet:/tmp/cvs-serv7625

Modified Files:
	slime.el 
Log Message:
* slime.el (slime-complete-form): Only insert a closing
  parenthesis if the form is not already closed. Reported by and
  adapted from Mac Chan.


--- /project/slime/cvsroot/slime/slime.el	2007/05/14 19:40:28	1.788
+++ /project/slime/cvsroot/slime/slime.el	2007/05/17 15:29:02	1.789
@@ -5652,7 +5652,7 @@
   (interactive)
   ;; Find the (possibly incomplete) form around point.
   (let* ((start (save-excursion (backward-up-list 1) (point)))
-         (end (point)) ; or try to find end (tricky)?
+         (end (point))
          (form-string
           (concat (buffer-substring-no-properties start end) ")")))
     (let ((result (slime-eval `(swank:complete-form ,form-string))))
@@ -5661,7 +5661,12 @@
           (progn
             (just-one-space)
             (save-excursion
-              (insert result))
+              ;; SWANK:COMPLETE-FORM always returns a closing
+              ;; parenthesis; but we only want to insert one if it's
+              ;; really necessary (thinking especially of paredit.el.)
+              (insert (substring result 0 -1))
+              (let ((slime-close-parens-limit 1))
+                (slime-close-parens-at-point)))
             (save-excursion
               (backward-up-list 1)
               (indent-sexp)))))))




More information about the slime-cvs mailing list