summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-22 22:43:28 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-22 22:43:28 +0200
commit19f55b0b94c727a5eb34d39274c2f1038c122d95 (patch)
tree0f719a7c4c381f5b8631288a840456797bfc124b
parent236ec5f042d70836db8eeba819b528989b477fac (diff)
downloadgeiser-guile-19f55b0b94c727a5eb34d39274c2f1038c122d95.tar.gz
geiser-guile-19f55b0b94c727a5eb34d39274c2f1038c122d95.tar.bz2
New implementation registration mechanism, for the elisp side of things.
Implementations must invoke define-geiser-implementation with an appropriate set of methods. Simple inheritance is supported. Each geiser module defines and registers the method names it uses.
-rw-r--r--elisp/geiser-guile.el25
1 files changed, 16 insertions, 9 deletions
diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el
index fca4b01..806bc97 100644
--- a/elisp/geiser-guile.el
+++ b/elisp/geiser-guile.el
@@ -69,15 +69,6 @@ This function uses `geiser-guile-init-file' if it exists."
(defconst geiser-guile-prompt-regexp "^[^() \n]+@([^)]*?)> ")
-(defun switch-to-guile (&optional ask)
- (interactive "P")
- (switch-to-geiser ask 'guile))
-
-(defun run-guile ()
- "Run Geiser using Guile."
- (interactive)
- (run-geiser 'guile))
-
;;; Evaluation support:
@@ -158,6 +149,22 @@ This function uses `geiser-guile-init-file' if it exists."
(save-excursion
(goto-char (point-min))
(re-search-forward geiser-guile--module-re nil t)))
+
+
+;;; Implementation definition:
+
+(define-geiser-implementation guile
+ (binary geiser-guile-binary)
+ (arglist geiser-guile-parameters)
+ (startup)
+ (prompt-regexp geiser-guile-prompt-regexp)
+ (marshall-procedure geiser-guile-geiser-procedure)
+ (find-module geiser-guile-get-module)
+ (find-symbol-begin geiser-guile-symbol-begin)
+ (display-error geiser-guile-display-error)
+ (display-help)
+ (check-buffer geiser-guile-guess))
+
(provide 'geiser-guile)
;;; geiser-guile.el ends here