diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-03-09 23:52:04 +0100 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-03-09 23:52:04 +0100 |
commit | 3b6e0b859262970b43672ed7c9207187b2518976 (patch) | |
tree | d0d838fb74c2cd027225ff96fd76625dcab16939 /elisp/geiser.el | |
parent | 6d765e0f93254c1606e1d794b5376916750f3738 (diff) | |
download | geiser-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.el | 15 |
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!"))) |