diff options
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-compile.el | 8 | ||||
-rw-r--r-- | elisp/geiser-eval.el | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/elisp/geiser-compile.el b/elisp/geiser-compile.el index ee6c5f8..82200a5 100644 --- a/elisp/geiser-compile.el +++ b/elisp/geiser-compile.el @@ -69,14 +69,14 @@ (message "") (geiser-compile--pop-to-buffer)))) -(defun geiser-compile--file-op (path op msg) +(defun geiser-compile--file-op (path compile-p msg) (let* ((b/p (geiser-compile--buffer/path path)) (buffer (car b/p)) (path (cdr b/p)) (msg (format "%s %s ..." msg path))) (message msg) (geiser-compile--display-result - msg (geiser-eval--send/wait `(:eval ((:ge ,op) ,path) (geiser emacs)))))) + msg (geiser-eval--send/wait `(,(if compile-p :comp-file :load-file) ,path))))) ;;; User commands: @@ -84,7 +84,7 @@ (defun geiser-compile-file (path) "Compile and load Scheme file." (interactive "FScheme file: ") - (geiser-compile--file-op path 'compile-file "Compiling")) + (geiser-compile--file-op path t "Compiling")) (defun geiser-compile-current-buffer () "Compile and load current Scheme file." @@ -94,7 +94,7 @@ (defun geiser-load-file (path) "Load Scheme file." (interactive "FScheme file: ") - (geiser-compile--file-op path 'load-file "Loading")) + (geiser-compile--file-op path nil "Loading")) (defun geiser-load-current-buffer () "Load current Scheme file." diff --git a/elisp/geiser-eval.el b/elisp/geiser-eval.el index ca442f0..785f441 100644 --- a/elisp/geiser-eval.el +++ b/elisp/geiser-eval.el @@ -40,6 +40,8 @@ ((listp code) (cond ((eq (car code) :eval) (geiser-eval--eval (cdr code))) ((eq (car code) :comp) (geiser-eval--comp (cdr code))) + ((eq (car code) :load-file) (geiser-eval--load-file (cadr code))) + ((eq (car code) :comp-file) (geiser-eval--comp-file (cadr code))) ((eq (car code) :module) (geiser-eval--module (cadr code))) ((eq (car code) :ge) (geiser-eval--ge (cadr code))) ((eq (car code) :scm) (cadr code)) @@ -55,6 +57,12 @@ (geiser-eval--scheme-str `((@ (geiser emacs) ge:compile) (quote ,(nth 0 code)) (:module ,(nth 1 code))))) +(defsubst geiser-eval--load-file (file) + (geiser-eval--scheme-str `((@ (geiser emacs) ge:load-file) ,file))) + +(defsubst geiser-eval--comp-file (file) + (geiser-eval--scheme-str `((@ (geiser emacs) ge:compile-file) ,file))) + (defsubst geiser-eval--module (code) (geiser-eval--scheme-str (cond ((or (eq code '(())) (null code)) |