Update of /project/clim-desktop/cvsroot/clim-desktop In directory clnet:/tmp/cvs-serv5224
Modified Files: swine.lisp swine-cmds.lisp Log Message: Factored selection of "this" form into an inventively named `this-form' function.
--- /project/clim-desktop/cvsroot/clim-desktop/swine.lisp 2006/05/28 16:48:46 1.13 +++ /project/clim-desktop/cvsroot/clim-desktop/swine.lisp 2006/05/30 20:38:58 1.14 @@ -55,6 +55,12 @@ (expression-at-mark mark syntax) :preserve)))
+(defun this-form (mark syntax) + "Return a form at mark. This function defines which + forms the COM-FOO-this commands affect." + (or (form-around syntax (offset mark)) + (form-before syntax (offset mark)))) + (defun macroexpand-token (syntax token &optional (all nil)) (let* ((string (token-string syntax token)) (expression (read-from-string string)) @@ -865,8 +871,7 @@ (,form-sym ;; Find a form with a valid (fboundp) operator. (let ((immediate-form - (or (form-before ,syntax-value-sym (offset ,mark-value-sym)) - (form-around ,syntax-value-sym (offset ,mark-value-sym))))) + (this-form (offset ,mark-value-sym) ,syntax-value-sym))) ;; Recurse upwards until we find a form with a valid ;; operator. This could be improved a lot, as we could ;; inspect the lambda list of the found operator and --- /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp 2006/05/28 16:48:46 1.17 +++ /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp 2006/05/30 20:38:58 1.18 @@ -152,8 +152,7 @@ (let* ((buffer (buffer (current-window))) (point (point (current-window))) (syntax (syntax buffer)) - (token (or (form-around syntax (offset point)) - (form-before syntax (offset point)))) + (token (this-form point syntax)) (this-symbol (when token (token-to-object syntax token)))) (when (and this-symbol (symbolp this-symbol)) (edit-definition this-symbol)))) @@ -194,8 +193,7 @@ (buffer (buffer pane)) (syntax (syntax buffer)) (mark (point pane)) - (token (or (form-before syntax (offset mark)) - (form-around syntax (offset mark))))) + (token (this-form mark syntax))) (if (and token (typep token 'complete-token-lexeme)) (com-lookup-arglist (token-to-object syntax token)) (esa:display-message "Could not find symbol at point."))))