From 0085c16dc3add5722e86c738c0ff1fa969183d86 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 2 Mar 2009 19:12:37 +0100 Subject: Correctly specify current module in REPL (and make it generic). --- elisp/geiser-eval.el | 15 ++++++++++++++- elisp/geiser-repl.el | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/elisp/geiser-eval.el b/elisp/geiser-eval.el index 09f12da..3e5e7aa 100644 --- a/elisp/geiser-eval.el +++ b/elisp/geiser-eval.el @@ -30,6 +30,19 @@ (require 'geiser-log) (require 'geiser-base) + +;;; Plug-able functions: + +(make-variable-buffer-local + (defvar geiser-eval--current-module-function 'geiser-syntax--buffer-module)) + +(defsubst geiser-eval--current-module-function (fun) + (setq geiser-eval--current-module-function fun)) + +(defsubst geiser-eval--current-module () + (and geiser-eval--current-module-function + (funcall geiser-eval--current-module-function))) + ;;; Code formatting: @@ -66,7 +79,7 @@ (defsubst geiser-eval--module (code) (geiser-eval--scheme-str (cond ((or (eq code '(())) (null code)) - `(quote ,(or (geiser-syntax--buffer-module) :f))) + `(quote ,(or (geiser-eval--current-module) :f))) ((listp code) `(quote ,code)) ((stringp code) (:scm code)) (t (error "Invalid module spec: %S" code))))) diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index 3f1301c..9d01835 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -200,6 +200,7 @@ REPL buffer." (set (make-local-variable 'beginning-of-defun-function) 'geiser-repl--beginning-of-defun) (set-syntax-table scheme-mode-syntax-table) + (geiser-eval--current-module-function nil) (when geiser-repl-autodoc-p (geiser-autodoc-mode 1))) (define-key geiser-repl-mode-map "\C-cz" 'run-guile) -- cgit v1.2.3