Update of /project/climacs/cvsroot/climacs In directory common-lisp.net:/tmp/cvs-serv26552
Modified Files: lisp-syntax.lisp Log Message: Indentation for `defmethod' which recognizes method qualifiers.
Date: Tue Jul 12 07:47:39 2005 Author: rstrandh
Index: climacs/lisp-syntax.lisp diff -u climacs/lisp-syntax.lisp:1.10 climacs/lisp-syntax.lisp:1.11 --- climacs/lisp-syntax.lisp:1.10 Mon Jul 11 11:19:15 2005 +++ climacs/lisp-syntax.lisp Tue Jul 12 07:47:39 2005 @@ -1270,6 +1270,24 @@ ;; in the options or method specifications (indent-list syntax (elt (children tree) (car path)) (cdr path))))))
+(defmethod compute-list-indentation + ((syntax lisp-syntax) (symbol (eql 'defmethod)) tree path) + (let ((lambda-list-pos (position-if (lambda (x) (typep x 'list-form)) + (children tree)))) + (cond ((null (cdr path)) + ;; top level + (values tree (if (or (null lambda-list-pos) + (<= (car path) lambda-list-pos)) + 4 + 2))) + ((or (null lambda-list-pos) + (< (car path) lambda-list-pos)) + (indent-list syntax (elt (children tree) (car path)) (cdr path))) + ((= (car path) lambda-list-pos) + (indent-lambda-list syntax (elt (children tree) (car path)) (cdr path))) + (t + (indent-form syntax (elt (children tree) (car path)) (cdr path)))))) + (defun compute-path-in-trees (trees n offset) (cond ((or (null trees) (>= (start-offset (car trees)) offset))