diff options
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-chicken.el | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/elisp/geiser-chicken.el b/elisp/geiser-chicken.el index 90f97fe..cb5dbf8 100644 --- a/elisp/geiser-chicken.el +++ b/elisp/geiser-chicken.el @@ -60,6 +60,11 @@ started." :type '(repeat file) :group 'geiser-chicken) +(geiser-custom--defcustom geiser-chicken-compile-geiser-p t + "Non-nil means that the Geiser runtime will be compiled on load." + :type 'boolean + :group 'geiser-chicken) + (geiser-custom--defcustom geiser-chicken-init-file "~/.chicken-geiser" "Initialization file with user code for the Chicken REPL. If all you want is to load ~/.csirc, set @@ -259,9 +264,13 @@ This function uses `geiser-chicken-init-file' if it exists." (defun geiser-chicken--startup (remote) (compilation-setup t) - (let ((geiser-log-verbose-p t)) - (geiser-eval--send/wait (format "(use utils)(compile-file \"%s\")\n" - (expand-file-name "chicken/geiser/emacs.scm" geiser-scheme-dir))))) + (let ((geiser-log-verbose-p t) + (geiser-chicken-load-file (expand-file-name "chicken/geiser/emacs.scm" geiser-scheme-dir))) + (if geiser-chicken-compile-geiser-p + (geiser-eval--send/wait (format "(use utils)(compile-file \"%s\")(import geiser)" + geiser-chicken-load-file)) + (geiser-eval--send/wait (format "(load \"%s\")" + geiser-chicken-load-file))))) ;;; Implementation definition: |