diff options
| author | jao <jao@gnu.org> | 2022-10-09 22:06:54 +0100 | 
|---|---|---|
| committer | jao <jao@gnu.org> | 2022-10-09 22:06:54 +0100 | 
| commit | e80f797a5c8e3b5ea647fb74194fea161df0550b (patch) | |
| tree | 0218968f9f532ab5911f19e08e8f0a79fad9a704 /src/geiser | |
| parent | 39b7e9357d0be4ae80268e073c8e077ecd7c1387 (diff) | |
| download | geiser-chez-e80f797a5c8e3b5ea647fb74194fea161df0550b.tar.gz geiser-chez-e80f797a5c8e3b5ea647fb74194fea161df0550b.tar.bz2 | |
autodoc: fix for arity 0 functions
Diffstat (limited to 'src/geiser')
| -rw-r--r-- | src/geiser/geiser.ss | 23 | 
1 files changed, 12 insertions, 11 deletions
| diff --git a/src/geiser/geiser.ss b/src/geiser/geiser.ss index dae82c0..04fbca8 100644 --- a/src/geiser/geiser.ss +++ b/src/geiser/geiser.ss @@ -74,6 +74,14 @@                    (map write-to-string                         (environment-symbols (interaction-environment)))))) +  (define not-found (gensym)) + +  (define (try-eval sym . env) +    (call/cc +     (lambda (k) +       (with-exception-handler (lambda (e) (k not-found)) +         (lambda () (if (null? env) (eval sym) (eval sym (car env)))))))) +    (define (geiser:eval module form)      (call-with-result       (lambda () (if module (eval form (environment module)) (eval form))))) @@ -137,14 +145,6 @@             (l (string-length s)))        (if (<= l max-len) s (string-append (substring s 0 sub-len) sub-str)))) -  (define not-found (gensym)) - -  (define (try-eval sym) -    (call/cc -     (lambda (k) -       (with-exception-handler (lambda (e) (k not-found)) -         (lambda () (eval sym)))))) -    (define (operator-arglist operator)      (define (procedure-parameter-list p)        (and (procedure? p) @@ -159,9 +159,10 @@      (let ([binding (try-eval operator)])        (if (not (eq? binding not-found))            (let ([arglists (procedure-parameter-list binding)]) -            (if arglists -                `(,operator ("args" ,@(map autodoc-arglist arglists))) -                `(,operator ("value" . ,(value->string binding))))) +            (cond ((null? arglists) `(,operator ("args" (("required"))))) +                  (arglists +                   `(,operator ("args" ,@(map autodoc-arglist arglists)))) +                  (else `(,operator ("value" . ,(value->string binding))))))            '())))    (define (geiser:autodoc ids) | 
