summaryrefslogtreecommitdiff
path: root/elisp/geiser-impl.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-04-27 21:28:51 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-04-27 21:28:51 +0200
commit11ed530d2fdf41ab91bf2166bb443ff89785576d (patch)
tree1cb59f0e0e98951a9d3889f7d0592b89fa5f4207 /elisp/geiser-impl.el
parent43e8b54f94c054aa08e3d477ef4008631af13ce5 (diff)
downloadgeiser-11ed530d2fdf41ab91bf2166bb443ff89785576d.tar.gz
geiser-11ed530d2fdf41ab91bf2166bb443ff89785576d.tar.bz2
Support for external help functions (and application to PLT).
Diffstat (limited to 'elisp/geiser-impl.el')
-rw-r--r--elisp/geiser-impl.el13
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)