Update of /project/mcclim/cvsroot/mcclim/Drei In directory clnet:/tmp/cvs-serv25861/Drei
Modified Files: core-commands.lisp core.lisp drei-redisplay.lisp drei.lisp lisp-syntax-commands.lisp search-commands.lisp Log Message: As it turns out, a lot of Drei code still used (current-window), which is now actually the current window (imagine that), and not the Drei instance. Fixed.
--- /project/mcclim/cvsroot/mcclim/Drei/core-commands.lisp 2007/11/19 20:28:43 1.5 +++ /project/mcclim/cvsroot/mcclim/Drei/core-commands.lisp 2007/11/19 22:16:47 1.6 @@ -39,7 +39,7 @@ will replace the object after the point. When overwrite is off (the default), objects are inserted at point. In both cases point is positioned after the new object." - (with-slots (overwrite-mode) (current-window) + (with-slots (overwrite-mode) *drei-instance* (setf overwrite-mode (not overwrite-mode))))
(set-key 'com-overwrite-mode @@ -48,7 +48,7 @@
(defun set-fill-column (column) (if (> column 1) - (setf (auto-fill-column (current-window)) column) + (setf (auto-fill-column *drei-instance*) column) (progn (beep) (display-message "Set Fill Column requires an explicit argument."))))
(define-command (com-set-fill-column :name t :command-table fill-table) @@ -126,29 +126,26 @@ :name t :command-table ,command-table) ((count 'integer :prompt ,(concat "Number of " plural))) - ,(if (not (null move-point)) - (concat "Place point and mark around the current " noun ". + ,(if (not (null move-point)) + (concat "Place point and mark around the current " noun ". Put point at the beginning of the current " noun ", and mark at the end. With a positive numeric argument, put mark that many " plural " forward. With a negative numeric argument, put point at the end of the current " noun " and mark that many " plural " backward. Successive invocations extend the selection.") - (concat "Place mark at the next " noun " end. + (concat "Place mark at the next " noun " end. With a positive numeric argument, place mark at the end of that many " plural " forward. With a negative numeric argument, place mark at the beginning of that many " plural " backward.
Successive invocations extend the selection.")) - (let* ((pane (current-window)) - (point (point pane)) - (mark (mark pane))) - (unless (eq (command-name *previous-command*) 'com-mark-word) - (setf (offset mark) (offset point)) - ,(when (not (null move-point)) - `(if (plusp count) - (,backward point (syntax (buffer pane))) - (,forward point (syntax (buffer pane)))))) - (,forward mark (syntax (buffer pane)) count)))))) + (unless (eq (command-name *previous-command*) 'com-mark-word) + (setf (offset (mark)) (offset (point))) + ,(when (not (null move-point)) + `(if (plusp count) + (,backward (point) (current-syntax)) + (,forward (point) (current-syntax))))) + (,forward (mark) (current-syntax) (current-buffer) count)))))
(define-mark-unit-command word marking-table) (define-mark-unit-command expression marking-table) @@ -224,7 +221,7 @@ (tab-space-count (view *drei-instance*))))
(define-command (com-indent-line :name t :command-table indent-table) () - (indent-current-line (current-window) (point))) + (indent-current-line *drei-instance* (point)))
(set-key 'com-indent-line 'indent-table @@ -239,7 +236,7 @@ (insert-object (point) #\Newline) (update-syntax (current-buffer) (syntax (current-buffer))) - (indent-current-line (current-window) (point))) + (indent-current-line *drei-instance* (point)))
(set-key 'com-newline-and-indent 'indent-table @@ -248,7 +245,7 @@ (define-command (com-indent-region :name t :command-table indent-table) () "Indent every line of the current region as specified by the syntax for the buffer." - (indent-region (current-window) (point) (mark))) + (indent-region *drei-instance* (point) (mark)))
(define-command (com-delete-indentation :name t :command-table indent-table) () "Join current line to previous non-blank line. @@ -264,8 +261,8 @@ '((#^ :shift :meta)))
(define-command (com-auto-fill-mode :name t :command-table fill-table) () - (setf (auto-fill-mode (current-window)) - (not (auto-fill-mode (current-window))))) + (setf (auto-fill-mode *drei-instance*) + (not (auto-fill-mode *drei-instance*))))
(define-command (com-fill-paragraph :name t :command-table fill-table) () (let* ((syntax (syntax (current-buffer))) @@ -301,7 +298,7 @@ '((:home :control)))
(define-command (com-page-down :name t :command-table movement-table) () - (page-down (current-window))) + (page-down *drei-instance*))
(set-key 'com-page-down 'movement-table @@ -312,7 +309,7 @@ '((:next)))
(define-command (com-page-up :name t :command-table movement-table) () - (page-up (current-window))) + (page-up *drei-instance*))
(set-key 'com-page-up 'movement-table @@ -542,7 +539,7 @@ (let* ((syntax (syntax (current-buffer)))) (with-accessors ((original-prefix original-prefix) (prefix-start-offset prefix-start-offset) - (dabbrev-expansion-mark dabbrev-expansion-mark)) (current-window) + (dabbrev-expansion-mark dabbrev-expansion-mark)) *drei-instance* (flet ((move () (cond ((beginning-of-buffer-p dabbrev-expansion-mark) (setf (offset dabbrev-expansion-mark) (offset (point))) @@ -634,8 +631,8 @@
(define-command (com-visible-region :name t :command-table marking-table) () "Toggle the visibility of the region in the current pane." - (setf (region-visible-p (current-window)) - (not (region-visible-p (current-window))))) + (setf (region-visible-p *drei-instance*) + (not (region-visible-p *drei-instance*))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; --- /project/mcclim/cvsroot/mcclim/Drei/core.lisp 2007/11/19 20:28:43 1.6 +++ /project/mcclim/cvsroot/mcclim/Drei/core.lisp 2007/11/19 22:16:47 1.7 @@ -18,22 +18,18 @@ ;;; Misc stuff
(defun possibly-fill-line () - (let* ((pane (current-window)) - (buffer (buffer pane))) - (when (auto-fill-mode pane) - (let* ((fill-column (auto-fill-column pane)) - (point (point pane)) - (offset (offset point)) - (tab-width (tab-space-count (stream-default-view pane))) - (syntax (syntax buffer))) - (when (>= (buffer-display-column buffer offset tab-width) - (1- fill-column)) - (fill-line point - (lambda (mark) - (syntax-line-indentation mark tab-width syntax)) - fill-column - tab-width - (syntax buffer))))))) + (when (auto-fill-mode *drei-instance*) + (let* ((fill-column (auto-fill-column *drei-instance*)) + (offset (offset (point))) + (tab-width (tab-space-count (view *drei-instance*)))) + (when (>= (buffer-display-column (current-buffer) offset tab-width) + (1- fill-column)) + (fill-line (point) + (lambda (mark) + (syntax-line-indentation mark tab-width (current-syntax))) + fill-column + tab-width + (current-syntax))))))
(defun back-to-indentation (mark syntax) (beginning-of-line mark) @@ -42,17 +38,16 @@ do (forward-object mark)))
(defun insert-character (char) - (let* ((window (current-window)) - (point (point window))) - (unless (constituentp char) - (possibly-expand-abbrev point)) - (when (whitespacep (syntax (buffer window)) char) - (possibly-fill-line)) - (if (and (slot-value window 'overwrite-mode) (not (end-of-line-p point))) - (progn - (delete-range point) - (insert-object point char)) - (insert-object point char)))) + (unless (constituentp char) + (possibly-expand-abbrev (point))) + (when (whitespacep (syntax (current-buffer)) char) + (possibly-fill-line)) + (if (and (slot-value *drei-instance* 'overwrite-mode) + (not (end-of-line-p (point)))) + (progn + (delete-range (point)) + (insert-object (point) char)) + (insert-object (point) char)))
(defun delete-horizontal-space (mark syntax &optional (backward-only-p nil)) (let ((mark2 (clone-mark mark))) @@ -65,9 +60,9 @@ do (forward-object mark2))) (delete-region mark mark2)))
-(defun indent-current-line (pane point) - (let* ((buffer (buffer pane)) - (view (stream-default-view pane)) +(defun indent-current-line (drei point) + (let* ((buffer (buffer drei)) + (view (view drei)) (tab-space-count (tab-space-count view)) (indentation (syntax-line-indentation point tab-space-count @@ -164,11 +159,13 @@ ;;; ;;; Indentation
-(defun indent-region (pane mark1 mark2) - "Indent all lines in the region delimited by `mark1' and `mark2' - according to the rules of the active syntax in `pane'." - (let* ((buffer (buffer pane)) - (view (clim:stream-default-view pane)) +(defun indent-region (drei mark1 mark2) + "Indent all lines in the region delimited by `mark1' and +`mark2' according to the rules of the active syntax in +`drei'. `Mark1' and `mark2' will not be modified by this +function." + (let* ((buffer (buffer drei)) + (view (view drei)) (tab-space-count (tab-space-count view)) (tab-width (and (indent-tabs-mode buffer) tab-space-count)) --- /project/mcclim/cvsroot/mcclim/Drei/drei-redisplay.lisp 2007/08/24 13:04:40 1.8 +++ /project/mcclim/cvsroot/mcclim/Drei/drei-redisplay.lisp 2007/11/19 22:16:47 1.9 @@ -396,15 +396,15 @@ (reposition-pane pane)))) (adjust-pane-bot pane))
-(defun page-down (pane) - (with-slots (top bot) pane +(defun page-down (drei) + (with-slots (top bot) drei (when (mark> (size (buffer bot)) bot) (setf (offset top) (offset bot)) (beginning-of-line top) - (setf (offset (point pane)) (offset top))))) + (setf (offset (point drei)) (offset top)))))
-(defun page-up (pane) - (with-slots (top bot) pane +(defun page-up (drei) + (with-slots (top bot) drei (when (> (offset top) 0) (let ((nb-lines-in-region (number-of-lines-in-region top bot))) (setf (offset bot) (offset top)) @@ -413,8 +413,8 @@ while (> (offset top) 0) do (decf (offset top)) (beginning-of-line top)) - (setf (offset (point pane)) (offset bot)) - (beginning-of-line (point pane)))))) + (setf (offset (point drei)) (offset bot)) + (beginning-of-line (point drei))))))
(defgeneric fix-pane-viewport (pane))
--- /project/mcclim/cvsroot/mcclim/Drei/drei.lisp 2007/11/19 20:28:43 1.17 +++ /project/mcclim/cvsroot/mcclim/Drei/drei.lisp 2007/11/19 22:16:47 1.18 @@ -538,14 +538,14 @@ "Prompt for a command name and arguments, then run it." (let ((item (handler-case (accept - `(command :command-table ,(command-table (current-window))) + `(command :command-table ,(command-table *drei-instance*)) ;; this gets erased immediately anyway :prompt "" :prompt-mode :raw) ((or command-not-accessible command-not-present) () (beep) (display-message "No such command") (return-from com-drei-extended-command nil))))) - (execute-drei-command (current-window) item))) + (execute-drei-command *drei-instance* item)))
(set-key 'com-drei-extended-command 'exclusive-gadget-table @@ -562,12 +562,12 @@ "This method allows users of Drei to extend syntaxes with new, app-specific commands, as long as they inherit from a Drei class and specialise a method for it." - (additional-command-tables (current-window) command-table)) + (additional-command-tables *drei-instance* command-table))
(defmethod command-table-inherit-from ((table drei-command-table)) (let ((syntax-table (command-table (current-syntax)))) (append `(,syntax-table) - (additional-command-tables (current-window) table) + (additional-command-tables *drei-instance* table) (when (use-editor-commands-p syntax-table) '(editor-table)))))
@@ -760,21 +760,21 @@ ;; at, for example, the buffer level, after all. `(handler-case (progn ,@body) (user-condition-mixin (c) - (handle-drei-condition (current-window) c)) + (handle-drei-condition *drei-instance* c)) (offset-before-beginning (c) - (handle-drei-condition (current-window) c)) + (handle-drei-condition *drei-instance* c)) (offset-after-end (c) - (handle-drei-condition (current-window) c)) + (handle-drei-condition *drei-instance* c)) (motion-before-beginning (c) - (handle-drei-condition (current-window) c)) + (handle-drei-condition *drei-instance* c)) (motion-after-end (c) - (handle-drei-condition (current-window) c)) + (handle-drei-condition *drei-instance* c)) (no-expression (c) - (handle-drei-condition (current-window) c)) + (handle-drei-condition *drei-instance* c)) (no-such-operation (c) - (handle-drei-condition (current-window) c)) + (handle-drei-condition *drei-instance* c)) (buffer-read-only (c) - (handle-drei-condition (current-window) c)))) + (handle-drei-condition *drei-instance* c))))
(defmacro with-bound-drei-special-variables ((drei-instance &key (kill-ring nil kill-ring-p) --- /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax-commands.lisp 2007/11/19 20:28:43 1.8 +++ /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax-commands.lisp 2007/11/19 22:16:47 1.9 @@ -55,50 +55,40 @@ () "Fill paragraph at point. Will have no effect unless there is a string at point." - (let* ((pane (current-window)) - (buffer (buffer pane)) - (implementation (implementation buffer)) - (syntax (syntax buffer)) - (token (form-around syntax (offset (point pane)))) - (fill-column (auto-fill-column pane)) - (tab-width (tab-space-count (stream-default-view pane)))) + (let* ((buffer-implementation (implementation (current-buffer))) + (token (form-around (current-syntax) (offset (point)))) + (fill-column (auto-fill-column *drei-instance*)) + (tab-width (tab-space-count (view *drei-instance*)))) (when (form-string-p token) (with-accessors ((offset1 start-offset) (offset2 end-offset)) token (fill-region (make-instance 'standard-right-sticky-mark - :buffer implementation + :buffer buffer-implementation :offset offset1) (make-instance 'standard-right-sticky-mark - :buffer implementation + :buffer buffer-implementation :offset offset2) #'(lambda (mark) - (syntax-line-indentation mark tab-width syntax)) + (syntax-line-indentation (point) tab-width (current-syntax))) fill-column tab-width - syntax + (current-syntax) t)))))
(define-command (com-indent-expression :name t :command-table lisp-table) ((count 'integer :prompt "Number of expressions")) - (let* ((pane (current-window)) - (point (point pane)) - (mark (clone-mark point)) - (syntax (syntax (buffer pane)))) + (let ((mark (point))) (if (plusp count) - (loop repeat count do (forward-expression mark syntax)) - (loop repeat (- count) do (backward-expression mark syntax))) - (indent-region pane (clone-mark point) mark))) + (loop repeat count do (forward-expression mark (current-syntax))) + (loop repeat (- count) do (backward-expression mark (current-syntax)))) + (indent-region *drei-instance* (point) mark)))
(define-command (com-lookup-arglist-for-this-symbol :command-table lisp-table) () "Show argument list for symbol at point." - (let* ((pane (current-window)) - (buffer (buffer pane)) - (syntax (syntax buffer)) - (mark (point pane)) - (token (this-form syntax mark))) + (let* ((token (this-form (current-syntax) (point)))) (if (and token (form-token-p token)) - (com-lookup-arglist (form-to-object syntax token)) + (com-lookup-arglist (form-to-object (current-syntax) token)) (display-message "Could not find symbol at point."))))
(define-command (com-lookup-arglist :name t :command-table lisp-table) @@ -143,16 +133,12 @@ First indents the line. If the line was already indented, completes the symbol. If there's no symbol at the point, shows the arglist for the most recently enclosed operator." - (let* ((pane (current-window)) - (point (point pane)) - (old-offset (offset point))) - (indent-current-line pane point) + (let ((old-offset (offset (point)))) + (indent-current-line *drei-instance* (point)) (when (= old-offset - (offset point)) - (let* ((buffer (buffer pane)) - (syntax (syntax buffer))) - (or (complete-symbol-at-mark syntax point nil) - (show-arglist-for-form-at-mark point syntax)))))) + (offset (point))) + (or (complete-symbol-at-mark (current-syntax) (point) nil) + (show-arglist-for-form-at-mark (point) (current-syntax))))))
(define-presentation-to-command-translator lookup-symbol-arglist (symbol com-lookup-arglist lisp-table --- /project/mcclim/cvsroot/mcclim/Drei/search-commands.lisp 2007/11/19 20:28:43 1.3 +++ /project/mcclim/cvsroot/mcclim/Drei/search-commands.lisp 2007/11/19 22:16:47 1.4 @@ -61,7 +61,7 @@ ((string 'string :prompt "String Search")) "Prompt for a string and search forward for it. If found, leaves point after string. If not, leaves point where it is." - (simple-search-forward (current-window) + (simple-search-forward *drei-instance* #'(lambda (mark) (search-forward mark string :test (case-relevant-test string))))) @@ -70,7 +70,7 @@ ((string 'string :prompt "Reverse String Search")) "Prompt for a string and search backward for it. If found, leaves point before string. If not, leaves point where it is." - (simple-search-backward (current-window) + (simple-search-backward *drei-instance* #'(lambda (mark) (search-backward mark string :test (case-relevant-test string))))) @@ -83,7 +83,7 @@ ((word 'string :prompt "Search word")) "Prompt for a whitespace delimited word and search forward for it. If found, leaves point after the word. If not, leaves point where it is." - (simple-search-forward (current-window) + (simple-search-forward *drei-instance* #'(lambda (mark) (search-word-forward mark word))))
@@ -91,7 +91,7 @@ ((word 'string :prompt "Search word")) "Prompt for a whitespace delimited word and search backward for it. If found, leaves point before the word. If not, leaves point where it is." - (simple-search-backward (current-window) + (simple-search-backward *drei-instance* #'(lambda (mark) (search-backward mark word))))
@@ -173,7 +173,7 @@
(define-command (com-isearch-forward :name t :command-table search-table) () (display-message "Isearch: ") - (isearch-command-loop (current-window) t)) + (isearch-command-loop *drei-instance* t))
(set-key 'com-isearch-forward 'search-table @@ -181,14 +181,14 @@
(define-command (com-isearch-backward :name t :command-table search-table) () (display-message "Isearch backward: ") - (isearch-command-loop (current-window) nil)) + (isearch-command-loop *drei-instance* nil))
(set-key 'com-isearch-backward 'search-table '((#\r :control)))
(defun isearch-append-char (char) - (let* ((states (isearch-states (current-window))) + (let* ((states (isearch-states *drei-instance*)) (string (concatenate 'string (search-string (first states)) (string char))) @@ -196,7 +196,7 @@ (forwardp (search-forward-p (first states)))) (unless (or forwardp (end-of-buffer-p mark)) (incf (offset mark))) - (isearch-from-mark (current-window) mark string forwardp))) + (isearch-from-mark *drei-instance* mark string forwardp)))
(define-command (com-isearch-append-char :name t :command-table isearch-drei-table) () (isearch-append-char *current-gesture*)) @@ -205,7 +205,7 @@ (isearch-append-char #\Newline))
(defun isearch-append-text (movement-function) - (let* ((states (isearch-states (current-window))) + (let* ((states (isearch-states *drei-instance*)) (start (clone-mark (point))) (mark (clone-mark (search-mark (first states)))) (forwardp (search-forward-p (first states)))) @@ -219,7 +219,7 @@ point-offset)))) (unless (or forwardp (end-of-buffer-p mark)) (incf (offset mark) (- point-offset start-offset))) - (isearch-from-mark (current-window) mark string forwardp)))) + (isearch-from-mark *drei-instance* mark string forwardp))))
(define-command (com-isearch-append-word :name t :command-table isearch-drei-table) () (isearch-append-text #'(lambda (mark) (forward-word mark (current-syntax))))) @@ -228,7 +228,7 @@ (isearch-append-text #'end-of-line))
(define-command (com-isearch-append-kill :name t :command-table isearch-drei-table) () - (let* ((states (isearch-states (current-window))) + (let* ((states (isearch-states *drei-instance*)) (yank (handler-case (kill-ring-yank *kill-ring*) (empty-kill-ring () ""))) @@ -239,50 +239,49 @@ (forwardp (search-forward-p (first states)))) (unless (or forwardp (end-of-buffer-p mark)) (incf (offset mark) (length yank))) - (isearch-from-mark (current-window) mark string forwardp))) + (isearch-from-mark *drei-instance* mark string forwardp)))
(define-command (com-isearch-delete-char :name t :command-table isearch-drei-table) () - (let* ((pane (current-window))) - (cond ((null (second (isearch-states pane))) - (display-message "Isearch: ") - (beep)) - (t - (pop (isearch-states pane)) - (loop until (endp (rest (isearch-states pane))) - until (search-success-p (first (isearch-states pane))) - do (pop (isearch-states pane))) - (let ((state (first (isearch-states pane)))) - (setf (offset (point pane)) - (if (search-forward-p state) - (+ (offset (search-mark state)) - (length (search-string state))) - (- (offset (search-mark state)) - (length (search-string state))))) - (display-message "Isearch~:[ backward~;~]: ~A" - (search-forward-p state) - (display-string (search-string state)))))))) + (cond ((null (second (isearch-states *drei-instance*))) + (display-message "Isearch: ") + (beep)) + (t + (pop (isearch-states *drei-instance*)) + (loop until (endp (rest (isearch-states *drei-instance*))) + until (search-success-p (first (isearch-states *drei-instance*))) + do (pop (isearch-states *drei-instance*))) + (let ((state (first (isearch-states *drei-instance*)))) + (setf (offset (point *drei-instance*)) + (if (search-forward-p state) + (+ (offset (search-mark state)) + (length (search-string state))) + (- (offset (search-mark state)) + (length (search-string state))))) + (display-message "Isearch~:[ backward~;~]: ~A" + (search-forward-p state) + (display-string (search-string state)))))))
(define-command (com-isearch-search-forward :name t :command-table isearch-drei-table) () - (let* ((states (isearch-states (current-window))) + (let* ((states (isearch-states *drei-instance*)) (string (if (null (second states)) - (isearch-previous-string (current-window)) + (isearch-previous-string *drei-instance*) (search-string (first states)))) (mark (clone-mark (point)))) - (isearch-from-mark (current-window) mark string t))) + (isearch-from-mark *drei-instance* mark string t)))
(define-command (com-isearch-search-backward :name t :command-table isearch-drei-table) () - (let* ((states (isearch-states (current-window))) + (let* ((states (isearch-states *drei-instance*)) (string (if (null (second states)) - (isearch-previous-string (current-window)) + (isearch-previous-string *drei-instance*) (search-string (first states)))) (mark (clone-mark (point)))) - (isearch-from-mark (current-window) mark string nil))) + (isearch-from-mark *drei-instance* mark string nil)))
(define-command (com-isearch-exit :name t :command-table isearch-drei-table) () - (let* ((states (isearch-states (current-window))) + (let* ((states (isearch-states *drei-instance*)) (string (search-string (first states))) (search-forward-p (search-forward-p (first states)))) - (setf (isearch-mode (current-window)) nil) + (setf (isearch-mode *drei-instance*) nil) (when (string= string "") (execute-frame-command *application-frame* (funcall @@ -351,7 +350,7 @@ t))))
(define-command (com-query-replace :name t :command-table search-table) () - (let* ((drei (current-window)) + (let* ((drei *drei-instance*) (old-state (query-replace-state drei)) (old-string1 (when old-state (string1 old-state))) (old-string2 (when old-state (string2 old-state))) @@ -402,8 +401,7 @@ '((#% :shift :meta)))
(define-command (com-query-replace-replace :name t :command-table query-replace-drei-table) () - (let* ((pane (current-window)) - (state (query-replace-state pane))) + (let ((state (query-replace-state *drei-instance*))) (with-accessors ((string1 string1) (string2 string2) (occurrences occurrences) @@ -419,14 +417,13 @@ (if (query-replace-find-next-match state) (display-message "Replace ~A with ~A:" string1 string2) - (setf (query-replace-mode pane) nil)))))) + (setf (query-replace-mode *drei-instance*) nil))))))
(define-command (com-query-replace-replace-and-quit :name t :command-table query-replace-drei-table) () - (let* ((pane (current-window)) - (state (query-replace-state pane))) + (let ((state (query-replace-state *drei-instance*))) (with-accessors ((string1 string1) (string2 string2) (occurrences occurrences) @@ -439,14 +436,13 @@ string2 (no-upper-p string1)) (incf occurrences) - (setf (query-replace-mode pane) nil))))) + (setf (query-replace-mode *drei-instance*) nil)))))
(define-command (com-query-replace-replace-all :name t :command-table query-replace-drei-table) () - (let* ((pane (current-window)) - (state (query-replace-state pane))) + (let ((state (query-replace-state *drei-instance*))) (with-accessors ((string1 string1) (string2 string2) (occurrences occurrences) @@ -460,20 +456,19 @@ (no-upper-p string1)) (incf occurrences) while (query-replace-find-next-match state) - finally (setf (query-replace-mode pane) nil)))))) + finally (setf (query-replace-mode *drei-instance*) nil))))))
(define-command (com-query-replace-skip :name t :command-table query-replace-drei-table) () - (let* ((pane (current-window)) - (state (query-replace-state pane))) + (let ((state (query-replace-state *drei-instance*))) (with-accessors ((string1 string1) (string2 string2)) state (if (query-replace-find-next-match state) (display-message "Replace ~A with ~A:" string1 string2) - (setf (query-replace-mode pane) nil))))) + (setf (query-replace-mode *drei-instance*) nil)))))
(define-command (com-query-replace-exit :name t :command-table query-replace-drei-table) () - (setf (query-replace-mode (current-window)) nil)) + (setf (query-replace-mode *drei-instance*) nil))
(defun query-replace-set-key (gesture command) (add-command-to-command-table command 'query-replace-drei-table @@ -509,7 +504,7 @@ :delimiter-gestures nil :activation-gestures '(:newline :return)))) - (simple-search-forward (current-window) + (simple-search-forward *drei-instance* #'(lambda (mark) (re-search-forward mark (normalise-minibuffer-regex string))))))
@@ -518,7 +513,7 @@ :delimiter-gestures nil :activation-gestures '(:newline :return)))) - (simple-search-backward (current-window) + (simple-search-backward *drei-instance* #'(lambda (mark) (re-search-backward mark (normalise-minibuffer-regex string))))))