Dear Geiser users,
I look for a way to programmatically evaluate a Guile s-exp like Geiser
would do it when I hit `C-x C-e`.
Let say the s-exp I want to evaluate is ((run-tests) gunit64-tests)
If I put the s-exp in my guile script and hit `C-x C-e`, it returns #t
and the Geiser Debug buffer shows up with informations I displayed from
code.
But here I want to remove the s-exp from the script and evaluate it when
I hit a custom key binding, for example `C-c r m`
So I wrote a minor mode :
(define-minor-mode gunit64-mode
"Spell out tests for your Guile app."
:lighter " gunit64"
:keymap (let ((map (make-sparse-keymap)))
(define-key map (kbd "C-c r m") 'run-module-tests)
map))
With the run-module-tests function :
(defun run-module-tests ()
"Execute the gunit64 test suite."
(interactive)
;; code to evaluate s-exp here
)
I tried few things with no luck haha.
(geiser-eval--send/result '(:eval (:scm ((run-tests) gunit64-tests))))
(geiser-eval--send/wait '(:eval (:scm ((run-tests) gunit64-tests))))
(geiser-eval--send/wait '((run-tests) gunit64-tests))
(geiser-eval--code-str '((run-tests) gunit64-tests))
The try approaching the most what I want is :
(defun run-module-tests ()
"Execute the gunit64 test suite."
(interactive)
(message "%s" (geiser-eval--send/wait "((run-tests) gunit64-tests)")))
Which print the output in the minibuffer (or messages buffer), but I
have to extract the relevant part of the return value of
geiser-eval--send/wait.
I would like it to trigger the geiser debug buffer instead.
Maybe someone here can point me what I missed…
Thank you !
--
Jérémy Korwin-Zmijowski
GPG: AD1945EC4F03FC79