diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-04-27 21:28:51 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-04-27 21:28:51 +0200 |
commit | 31a4bd02c78be39cdd4a58bbc286a57906a525ce (patch) | |
tree | 6f1cc852425f3dcf10bac4aae17db9baa5e5e24f /elisp/geiser-impl.el | |
parent | 71cb453f51d7cd04834916a5df0b477f9175853c (diff) | |
download | geiser-chez-31a4bd02c78be39cdd4a58bbc286a57906a525ce.tar.gz geiser-chez-31a4bd02c78be39cdd4a58bbc286a57906a525ce.tar.bz2 |
Support for external help functions (and application to PLT).
Diffstat (limited to 'elisp/geiser-impl.el')
-rw-r--r-- | elisp/geiser-impl.el | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el index 312ace9..ac6c2b9 100644 --- a/elisp/geiser-impl.el +++ b/elisp/geiser-impl.el @@ -27,6 +27,7 @@ (require 'geiser-eval) (require 'geiser-base) +(require 'geiser-doc) ;;; Customization: @@ -120,10 +121,16 @@ (defsubst geiser-impl--geiser-procedure-function (impl) (geiser-impl--sym impl "geiser-procedure")) +(defsubst geiser-impl--external-help-function (impl) + (let ((f (geiser-impl--sym impl "external-help"))) + (and (fboundp f) f))) + (defun geiser-impl--install-eval (impl) (setq geiser-eval--get-module-function (geiser-impl--module-function impl)) (setq geiser-eval--geiser-procedure-function - (geiser-impl--geiser-procedure-function impl))) + (geiser-impl--geiser-procedure-function impl)) + (setq geiser-doc--external-help-function + (geiser-impl--external-help-function impl))) ;;; Evaluating Elisp in a given implementation context: @@ -132,7 +139,9 @@ (let ((geiser-impl--implementation imp) (geiser-eval--get-module-function (geiser-impl--module-function imp)) (geiser-eval--geiser-procedure-function - (geiser-impl--geiser-procedure-function imp))) + (geiser-impl--geiser-procedure-function imp)) + (geiser-doc--external-help-function + (geiser-impl--external-help-function imp))) (funcall thunk))) (put 'with--geiser-implementation 'lisp-indent-function 1) |