diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-02-13 00:54:26 +0100 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-02-13 00:54:26 +0100 |
commit | 1369b62d71e06735a3e4d2b8349cfffe6de12a6c (patch) | |
tree | 95a94341a018972758ccf602bdbc961daea5707a /scheme/guile/geiser/introspection.scm | |
parent | 432e405274205c91784456449f344044c8d62e48 (diff) | |
download | geiser-guile-1369b62d71e06735a3e4d2b8349cfffe6de12a6c.tar.gz geiser-guile-1369b62d71e06735a3e4d2b8349cfffe6de12a6c.tar.bz2 |
Faster, asynchronous autodoc.
Diffstat (limited to 'scheme/guile/geiser/introspection.scm')
-rw-r--r-- | scheme/guile/geiser/introspection.scm | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/scheme/guile/geiser/introspection.scm b/scheme/guile/geiser/introspection.scm index 38c0b79..efe9a09 100644 --- a/scheme/guile/geiser/introspection.scm +++ b/scheme/guile/geiser/introspection.scm @@ -25,11 +25,17 @@ ;;; Code: (define-module (geiser introspection) - #:export (proc-args completions symbol-location) + #:export (arguments completions symbol-location) #:use-module (system vm program) #:use-module (ice-9 session) #:use-module (srfi srfi-1)) +(define (arguments sym . syms) + (let loop ((sym sym) (syms syms)) + (cond ((proc-args sym) => (lambda (args) (cons sym args))) + ((null? syms) #f) + (else (loop (car syms) (cdr syms)))))) + (define (proc-args proc) (obj-args (resolve-symbol proc))) @@ -73,7 +79,7 @@ ((pair? formals) (format-args (car formals) (cdr formals) (symbol-module name))) - (else '())))) + (else #f)))) (define (macro-args macro) (let ((prog (macro-transformer macro))) |