From 6bc5dce3118a78e2665bbf981dc61866329269c1 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Tue, 10 Feb 2009 17:11:45 +0100 Subject: Multi-level form arity recognition in autodoc. --- elisp/geiser-syntax.el | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'elisp/geiser-syntax.el') diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el index 5f109cf..32b28bb 100644 --- a/elisp/geiser-syntax.el +++ b/elisp/geiser-syntax.el @@ -66,16 +66,20 @@ (defun geiser-syntax--enclosing-form-data () (save-excursion (let ((p (geiser-syntax--end-of-thing)) - (arg-no 0) - (proc)) + (current (cons (symbol-at-point) 0)) + (data)) (ignore-errors - (backward-up-list) - (forward-char) - (setq proc (symbol-at-point)) - (while (< (point) p) - (forward-sexp) - (when (< (point) p) (setq arg-no (1+ arg-no)))) - (cons proc arg-no))))) + (while (not (bobp)) + (backward-up-list) + (save-excursion + (forward-char) + (let ((proc (symbol-at-point)) + (arg-no 0)) + (while (< (point) p) + (forward-sexp) + (when (< (point) p) (setq arg-no (1+ arg-no)))) + (push (cons proc arg-no) data))))) + (reverse (push current data))))) (defun geiser-syntax--prepare-scheme-for-elisp-reader () (goto-char (point-min)) -- cgit v1.2.3