[climacs-cvs] CVS update: climacs/buffer.lisp climacs/climacs.asd climacs/gui.lisp climacs/packages.lisp climacs/pane.lisp

Aleksandar Bakic abakic at common-lisp.net
Wed Jan 26 16:10:45 UTC 2005


Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv1821

Modified Files:
	buffer.lisp climacs.asd gui.lisp packages.lisp pane.lisp 
Log Message:
Persistent/balanced-tree buffer implementations with tests.

Date: Wed Jan 26 08:10:41 2005
Author: abakic

Index: climacs/buffer.lisp
diff -u climacs/buffer.lisp:1.23 climacs/buffer.lisp:1.24
--- climacs/buffer.lisp:1.23	Tue Jan 18 10:59:51 2005
+++ climacs/buffer.lisp	Wed Jan 26 08:10:40 2005
@@ -92,7 +92,7 @@
 (defclass standard-right-sticky-mark (right-sticky-mark mark-mixin) ()
   (:documentation "A right-sticky-mark subclass suitable for use in a standard-buffer"))
 
-(defmethod initialize-instance :after ((mark left-sticky-mark) &rest args &key (offset 0))
+(defmethod initialize-instance :after ((mark standard-left-sticky-mark) &rest args &key (offset 0))
   "Associates a created mark with the buffer it was created for."
   (declare (ignore args))
   (assert (<= 0 offset (size (buffer mark))) ()
@@ -102,7 +102,7 @@
 	   :chain (slot-value (buffer mark) 'contents)
 	   :position offset)))
 
-(defmethod initialize-instance :after ((mark right-sticky-mark) &rest args &key (offset 0))
+(defmethod initialize-instance :after ((mark standard-right-sticky-mark) &rest args &key (offset 0))
   "Associates a created mark with the buffer it was created for."
   (declare (ignore args))
   (assert (<= 0 offset (size (buffer mark))) ()
@@ -287,7 +287,7 @@
 either immediately before the closest following newline character, or
 at the end of the buffer if no following newline character exists."))
 
-(defmethod end-of-line ((mark mark-mixin))
+(defmethod end-of-line ((mark mark-mixin)) ;PB
   (let* ((offset (offset mark))
 	 (buffer (buffer mark))
 	 (chain (slot-value buffer 'contents))


Index: climacs/climacs.asd
diff -u climacs/climacs.asd:1.15 climacs/climacs.asd:1.16
--- climacs/climacs.asd:1.15	Mon Jan 24 15:01:37 2005
+++ climacs/climacs.asd	Wed Jan 26 08:10:40 2005
@@ -49,9 +49,13 @@
    "Flexichain/utilities"
    "Flexichain/flexichain"
    "Flexichain/flexicursor"
+   "Persistent/binseq-package"
+   "Persistent/binseq"
+   "Persistent/obinseq"
    "translate"
    "packages"
    "buffer"
+   "Persistent/persistent-buffer"
    "base"
    "io"
    "abbrev"
@@ -64,7 +68,9 @@
    ;;---- optional ----
    "testing/rt"
    "buffer-test"
-   "base-test")
+   "base-test"
+   "Persistent/persistent-buffer-test"
+   "Persistent/persistent-base-test")
 
 #+asdf
 (defmethod asdf:perform :around ((o asdf:compile-op)


Index: climacs/gui.lisp
diff -u climacs/gui.lisp:1.98 climacs/gui.lisp:1.99
--- climacs/gui.lisp:1.98	Mon Jan 24 04:49:09 2005
+++ climacs/gui.lisp	Wed Jan 26 08:10:40 2005
@@ -747,7 +747,7 @@
 	(accept 'integer :prompt "Goto Position")))
 
 (define-named-command com-goto-line ()
-  (loop with mark = (make-instance 'standard-right-sticky-mark
+  (loop with mark = (make-instance 'standard-right-sticky-mark ;PB
 		       :buffer (buffer (current-window)))
 	do (end-of-line mark)
 	until (end-of-buffer-p mark)


Index: climacs/packages.lisp
diff -u climacs/packages.lisp:1.40 climacs/packages.lisp:1.41
--- climacs/packages.lisp:1.40	Mon Jan 24 04:49:09 2005
+++ climacs/packages.lisp	Wed Jan 26 08:10:40 2005
@@ -23,7 +23,7 @@
 ;;; Package definitions for the Climacs editor.
 
 (defpackage :climacs-buffer
-  (:use :clim-lisp :flexichain)
+  (:use :clim-lisp :flexichain :binseq)
   (:export #:buffer #:standard-buffer
 	   #:mark #:left-sticky-mark #:right-sticky-mark
 	   #:standard-left-sticky-mark #:standard-right-sticky-mark
@@ -41,7 +41,10 @@
 	   #:delete-region
 	   #:buffer-object #:buffer-sequence
 	   #:object-before #:object-after #:region-to-sequence
-	   #:low-mark #:high-mark #:modified-p #:clear-modify))
+	   #:low-mark #:high-mark #:modified-p #:clear-modify
+
+	   #:binseq-buffer #:obinseq-buffer
+	   #:persistent-left-sticky-mark #:persistent-right-sticky-mark))
 
 (defpackage :climacs-base
   (:use :clim-lisp :climacs-buffer)


Index: climacs/pane.lisp
diff -u climacs/pane.lisp:1.13 climacs/pane.lisp:1.14
--- climacs/pane.lisp:1.13	Mon Jan 24 04:49:09 2005
+++ climacs/pane.lisp	Wed Jan 26 08:10:41 2005
@@ -156,7 +156,7 @@
 
 ;(defgeneric indent-tabs-mode (climacs-buffer))
 
-(defclass climacs-buffer (standard-buffer abbrev-mixin filename-mixin name-mixin undo-mixin)
+(defclass climacs-buffer (standard-buffer abbrev-mixin filename-mixin name-mixin undo-mixin) ;PB
   ((needs-saving :initform nil :accessor needs-saving)
    (syntax :initarg :syntax :initform (make-instance 'basic-syntax) :accessor syntax)
    (indent-tabs-mode :initarg indent-tabs-mode :initform t
@@ -195,14 +195,14 @@
   (declare (ignore args))
   (with-slots (buffer point mark) pane
      (when (null point)
-       (setf point (make-instance 'standard-right-sticky-mark
+       (setf point (make-instance 'standard-right-sticky-mark ;PB
 		      :buffer buffer)))
      (when (null mark)
-       (setf mark (make-instance 'standard-right-sticky-mark
+       (setf mark (make-instance 'standard-right-sticky-mark ;PB
 		      :buffer buffer))))
   (with-slots (buffer top bot scan) pane
-     (setf top (make-instance 'standard-left-sticky-mark :buffer buffer)
-	   bot (make-instance 'standard-right-sticky-mark :buffer buffer)))
+     (setf top (make-instance 'standard-left-sticky-mark :buffer buffer) ;PB
+	   bot (make-instance 'standard-right-sticky-mark :buffer buffer))) ;PB
   (setf (stream-default-view pane) (make-instance 'climacs-textual-view))
   (with-slots (space-width tab-width) (stream-default-view pane)
      (let* ((medium (sheet-medium pane))
@@ -212,12 +212,12 @@
 
 (defmethod (setf buffer) :after (buffer (pane climacs-pane))
   (with-slots (point mark top bot) pane
-       (setf point (make-instance 'standard-right-sticky-mark
+       (setf point (make-instance 'standard-right-sticky-mark ;PB
 		      :buffer buffer)
-	     mark (make-instance 'standard-right-sticky-mark
+	     mark (make-instance 'standard-right-sticky-mark ;PB
 		     :buffer buffer)
-	     top (make-instance 'standard-left-sticky-mark :buffer buffer)
-	     bot (make-instance 'standard-right-sticky-mark :buffer buffer))))
+	     top (make-instance 'standard-left-sticky-mark :buffer buffer) ;PB
+	     bot (make-instance 'standard-right-sticky-mark :buffer buffer)))) ;PB
 
 (define-presentation-type url ()
   :inherit-from 'string)




More information about the Climacs-cvs mailing list