[slime-cvs] CVS slime

heller heller at common-lisp.net
Tue Aug 28 22:03:26 UTC 2007


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

Modified Files:
	ChangeLog slime.el swank.lisp 
Log Message:
Fix some output related bugs.

* swank.lisp (send-repl-results-to-emacs): Emit a fresh line.

* slime.el (slime-insert-transcript-delimiter): Use
insert-before-markers since slime-output-end is no longer left
inserting.  Reported by Austin Haas <austin at pettomato.com>.


--- /project/slime/cvsroot/slime/ChangeLog	2007/08/28 22:00:48	1.1182
+++ /project/slime/cvsroot/slime/ChangeLog	2007/08/28 22:03:26	1.1183
@@ -1,3 +1,19 @@
+2007-08-28  Helmut Eller  <heller at common-lisp.net>
+
+	Fix some output related bugs.
+
+	* swank.lisp (send-repl-results-to-emacs): Emit a fresh line.
+
+	* slime.el (slime-insert-transcript-delimiter): Use
+	insert-before-markers since slime-output-end is no longer left
+	inserting.  Reported by Austin Haas <austin at pettomato.com>.
+
+2007-08-28  Helmut Eller  <heller at common-lisp.net>
+
+	* slime.el (slime-display-or-scroll-completions,
+	slime-scroll-completions): New functions.  Factored out of
+	slime-expand-abbreviations-and-complete.
+
 2007-08-28  Matthias Koeppe  <mkoeppe at mail.math.uni-magdeburg.de>
 
 	* slime.el (slime-repl-write-string): Handle arbitrary targets
@@ -11,7 +27,7 @@
 	* swank.lisp (classify-symbol, symbol-classification->string):
 	Resurrected in swank.lisp. (I was bitten by cvs-pcl which
 	committed (2007-08-27) my locally changed `contribs/swank-fuzzy.lisp'
-	where I already removed these functions from.)  
+	where I already removed these functions from.)
 
 2007-08-28  Tobias C. Rittweiler <tcr at freebits.de>
 
@@ -20,7 +36,7 @@
 
 	* swank.lisp (read-form-spec): Unintern just newly interned
 	symbols when an reader error occurs.
-	
+
 2007-08-28  Helmut Eller  <heller at common-lisp.net>
 
 	Move presentations to contrib.  Part II.
--- /project/slime/cvsroot/slime/slime.el	2007/08/28 22:00:20	1.834
+++ /project/slime/cvsroot/slime/slime.el	2007/08/28 22:03:26	1.835
@@ -5491,6 +5491,23 @@
       (setq slime-completions-window
             (get-buffer-window slime-completions-buffer-name)))))
   
+(defun slime-display-or-scroll-completions (completions base)
+  (cond ((and (eq last-command this-command)
+              (slime-completion-window-active-p))
+         (slime-scroll-completions))
+        (t
+         (slime-display-completion-list completions base)))
+  (slime-complete-delay-restoration))
+
+(defun slime-scroll-completions ()
+  (let ((window slime-completions-window))
+    (with-current-buffer (window-buffer window)
+      (if (pos-visible-in-window-p (point-max) window)
+          (set-window-start window (point-min))
+        (save-selected-window
+          (select-window window)
+          (scroll-up))))))
+
 (defun slime-complete-symbol ()
   "Complete the symbol at point.
 
@@ -5532,19 +5549,8 @@
              (when (member completed-prefix completion-set)
                (slime-minibuffer-respecting-message 
                 "Complete but not unique"))
-             (if (and (eq last-command this-command)
-                      (slime-completion-window-active-p))
-                 ;; Scroll the completions window only
-                 (let ((window slime-completions-window))
-                   (with-current-buffer (window-buffer window)
-                     (if (pos-visible-in-window-p (point-max) window)
-                         (set-window-start window (point-min) nil)
-                       (let ((other-window-scroll-buffer 
-                              (window-buffer window)))
-                   (scroll-other-window))))) ; madhu
-               (slime-display-completion-list completion-set
-                                              completed-prefix)
-               (slime-complete-delay-restoration)))))))
+             (slime-display-or-scroll-completions completion-set 
+                                                  completed-prefix))))))
 
 (defun slime-complete-symbol*-fancy-bit ()
   "Do fancy tricks after completing a symbol.
@@ -5588,10 +5594,10 @@
                    (slime-complete-restore-window-configuration))
                   ;; Incomplete
                   (t
-                   (slime-minibuffer-respecting-message 
+                   (slime-minibuffer-respecting-message
                     "Complete but not unique")
-                   (slime-display-completion-list completions partial)
-                   (slime-complete-delay-restoration))))))))
+                   (slime-display-or-scroll-completions completions
+                                                        partial))))))))
 
 (defun slime-maybe-complete-as-filename ()
   "If point is at a string starting with \", complete it as filename.
@@ -5982,13 +5988,13 @@
 (defun slime-insert-transcript-delimiter (string)
   (with-current-buffer (slime-output-buffer)
     (slime-with-output-end-mark
-     (unless (bolp) (insert "\n"))
-     (slime-insert-propertized
-      '(slime-transcript-delimiter t)
-      ";;;; " (subst-char-in-string ?\n ?\ 
-                                    (substring string 0 
-                                               (min 60 (length string))))
-      " ...\n"))))
+     (unless (bolp) (insert-before-markers "\n"))
+     (slime-propertize-region '(slime-transcript-delimiter t)
+       (insert-before-markers
+        ";;;; " (subst-char-in-string ?\n ?\ 
+                                      (substring string 0 
+                                                 (min 60 (length string))))
+        " ...\n")))))
 
 (defun slime-display-buffer-region (buffer start end &optional other-window)
   "Like `display-buffer', but only display the specified region."
--- /project/slime/cvsroot/slime/swank.lisp	2007/08/28 21:13:57	1.505
+++ /project/slime/cvsroot/slime/swank.lisp	2007/08/28 22:03:26	1.506
@@ -2936,6 +2936,8 @@
                              (package-string-for-prompt *package*)))))))
 
 (defun send-repl-results-to-emacs (values)    
+  (fresh-line)
+  (finish-output)
   (if (null values)
       (send-to-emacs `(:write-string "; No value" :repl-result))
       (dolist (v values)




More information about the slime-cvs mailing list