Update of /project/mcclim/cvsroot/mcclim/Drei In directory clnet:/tmp/cvs-serv30054/Drei
Modified Files: lisp-syntax.lisp Log Message: Improved Forward Expression and fixed minor bug in Drei test suite.
--- /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp 2008/01/15 15:53:53 1.68 +++ /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp 2008/01/19 20:06:01 1.69 @@ -2034,13 +2034,17 @@ (update-parse syntax 0 (offset mark)) (let ((potential-form (or (form-after syntax (offset mark)) (form-around syntax (offset mark))))) - (when (and (not (null potential-form)) - (not (= (offset mark) (end-offset potential-form)))) - (typecase potential-form - (reader-conditional-form - (setf (offset mark) (or (start-offset (first-form (children potential-form))) - (end-offset potential-form)))) - (t (setf (offset mark) (end-offset potential-form))))))) + (when (not (null potential-form)) + (when (and (not (form-at-top-level-p potential-form)) + (= (offset mark) (end-offset potential-form))) + (setf potential-form (parent potential-form))) + (when (and (not (null potential-form)) + (not (= (offset mark) (end-offset potential-form)))) + (typecase potential-form + (reader-conditional-form + (setf (offset mark) (or (start-offset (first-form (children potential-form))) + (end-offset potential-form)))) + (t (setf (offset mark) (end-offset potential-form))))))))
(defmethod forward-delete-expression (mark (syntax lisp-syntax) &optional (count 1) (limit-action #'error-limit-action))