summaryrefslogtreecommitdiff
path: root/elisp/geiser.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-09 23:52:04 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-09 23:52:04 +0100
commit3b6e0b859262970b43672ed7c9207187b2518976 (patch)
treed0d838fb74c2cd027225ff96fd76625dcab16939 /elisp/geiser.el
parent6d765e0f93254c1606e1d794b5376916750f3738 (diff)
downloadgeiser-3b6e0b859262970b43672ed7c9207187b2518976.tar.gz
geiser-3b6e0b859262970b43672ed7c9207187b2518976.tar.bz2
Support for multiple Scheme implementations, Chapter 1.
* Evaluation system is now pluggable * The rest of the system understands said pluggability * Guile provides its own implementation (geiser-guile) * The reload system is aware of the new kids on the block
Diffstat (limited to 'elisp/geiser.el')
-rw-r--r--elisp/geiser.el15
1 files changed, 7 insertions, 8 deletions
diff --git a/elisp/geiser.el b/elisp/geiser.el
index 7415390..f827864 100644
--- a/elisp/geiser.el
+++ b/elisp/geiser.el
@@ -92,6 +92,7 @@
geiser-autodoc
geiser-compile
geiser-debug
+ geiser-impl
geiser-eval
geiser-connection
geiser-syntax
@@ -122,6 +123,7 @@ loaded."
geiser-root-dir))
geiser-root-dir))
(geiser-main-file (expand-file-name "elisp/geiser.el" dir))
+ (impls (and (featurep 'geiser-impl) geiser-impl--impls))
(repl (and (featurep 'geiser-repl) (geiser-repl--live-p)))
(buffers (and (featurep 'geiser-mode) (geiser-mode--buffers))))
(unless (file-exists-p geiser-main-file)
@@ -130,14 +132,11 @@ loaded."
(geiser-unload)
(load-file geiser-main-file)
(geiser-setup)
- (when repl
- (load-library "geiser-repl")
- (geiser 'repl))
- (when buffers
- (load-library "geiser-mode")
- (dolist (b buffers)
- (set-buffer b)
- (geiser-mode 1)))
+ (dolist (feature (geiser--features-list))
+ (load-library (format "%s" feature)))
+ (when impls (geiser-impl--reload-implementations impls))
+ (when repl (geiser 'repl))
+ (when buffers (geiser-mode--restore buffers))
(message "Geiser reloaded!")))