summaryrefslogtreecommitdiff
path: root/geiser/modules.scm
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2010-11-21 01:56:02 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2010-11-21 01:56:02 +0100
commit27989028649c5e651749a5ebdd7eaedf1cfa5314 (patch)
tree280b044d9122f13ac2cc03c479aaafc2aab8e183 /geiser/modules.scm
parent9c08f27ca364529c533e395b30200993a4900e36 (diff)
downloadgeiser-guile-27989028649c5e651749a5ebdd7eaedf1cfa5314.tar.gz
geiser-guile-27989028649c5e651749a5ebdd7eaedf1cfa5314.tar.bz2
Better module help
We now display procedure signatures in module help, and keep a cache in Guile, using procedure properties.
Diffstat (limited to 'geiser/modules.scm')
-rw-r--r--geiser/modules.scm34
1 files changed, 1 insertions, 33 deletions
diff --git a/geiser/modules.scm b/geiser/modules.scm
index a1697a7..df53acb 100644
--- a/geiser/modules.scm
+++ b/geiser/modules.scm
@@ -15,7 +15,7 @@
module-path
find-module
all-modules
- module-exports
+ submodules
module-location)
#:use-module (geiser utils)
#:use-module (system vm program)
@@ -76,35 +76,3 @@
(list mod)
cs)))
-(define (module-exports mod-name)
- (let* ((mod (catch #t
- (lambda () (resolve-interface mod-name))
- (lambda args (resolve-module mod-name))))
- (elts (hash-fold classify-module-object
- (list '() '() '())
- (module-obarray mod)))
- (elts (map sort-symbols! elts))
- (subs (map module-name (submodules (resolve-module mod-name #f)))))
- (list (cons 'modules (append subs
- (map (lambda (m)
- `(,@mod-name ,m)) (car elts))))
- (cons 'procs (cadr elts))
- (cons 'vars (caddr elts)))))
-
-(define (classify-module-object name var elts)
- (let ((obj (and (variable-bound? var)
- (variable-ref var))))
- (cond ((not obj) elts)
- ((and (module? obj) (eq? (module-kind obj) 'directory))
- (list (cons name (car elts))
- (cadr elts)
- (caddr elts)))
- ((or (procedure? obj) (program? obj) (macro? obj))
- (list (car elts)
- (cons name (cadr elts))
- (caddr elts)))
- (else (list (car elts)
- (cadr elts)
- (cons name (caddr elts)))))))
-
-;;; modules.scm ends here