Update of /project/clim-desktop/cvsroot/clim-desktop In directory clnet:/tmp/cvs-serv10585
Modified Files: swine.lisp swine-cmds.lisp Log Message: Changed the generic function `show-arglist-for-form' to a normal function named `show-arglist-for-form-at-mark', added `preceding-form' function and used it instead of `this-form' in the `with-code-insight' macro.
--- /project/clim-desktop/cvsroot/clim-desktop/swine.lisp 2006/06/01 19:59:11 1.18 +++ /project/clim-desktop/cvsroot/clim-desktop/swine.lisp 2006/06/01 23:21:29 1.19 @@ -133,6 +133,11 @@ (or (form-around syntax (offset mark)) (form-before syntax (offset mark))))
+(defun preceding-form (mark syntax) + "Return a form at mark." + (or (form-before syntax (offset mark)) + (form-around syntax (offset mark)))) + (defun usable-package (package-designator) "Return a usable package based on `package-designator'." (or (find-package package-designator) @@ -952,7 +957,7 @@ (,form-sym ;; Find a form with a valid (fboundp) operator. (let ((immediate-form - (this-form ,mark-value-sym ,syntax-value-sym))) + (preceding-form ,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 @@ -977,21 +982,16 @@ (when ,form-sym (find-operand-info ,mark-value-sym ,syntax-value-sym ,form-sym)) ,@body))))
- ;; This is a generic function in order to facilitate different lambda - ;; list types for different form types (I'm not yet sure when this - ;; would be useful). -(defgeneric show-arglist-for-form (mark syntax) - (:documentation "Display the argument list for the operator of - `form'. The list need not be complete. If an argument list cannot - be retrieved for the operator, nothing will be displayed.")) - -(defmethod show-arglist-for-form (mark syntax) +(defun show-arglist-for-form-at-mark (mark syntax) + "Display the argument list for the operator of +`form'. The list need not be complete. If an argument list cannot +be retrieved for the operator, nothing will be displayed." (with-code-insight mark syntax (:operator operator :preceding-operand preceding-operand :preceding-operand-indices preceding-operand-indices :operands operands) - (when (valid-operator-p operator) - (show-arglist-silent operator preceding-operand-indices preceding-operand operands)))) + (when (valid-operator-p operator) + (show-arglist-silent operator preceding-operand-indices preceding-operand operands))))
(defparameter *find-definition-stack* '())
--- /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp 2006/05/31 18:01:04 1.19 +++ /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp 2006/06/01 23:21:29 1.20 @@ -223,9 +223,7 @@ ;; the parse tree our insertion of a space character may have ;; done. (update-syntax (buffer syntax) syntax) - ;; Try to find the argument before point, if that is not possible, - ;; find the form that point is in. - (show-arglist-for-form mark syntax) + (show-arglist-for-form-at-mark mark syntax) (forward-object mark) (clear-completions)))
clim-desktop-cvs@common-lisp.net