Is your feature request related to a problem? Please describe.
The cider-interactive-eval-override
variable can be used to change the way forms are evaluated by cider-interactive-eval
, but contrary to what is said in the docstring, it does not actually forward cider-interactive-eval
's last optional argument additional-params
.
Consider the following example, where I want to be able to wrap every evaluation with a custom form which simply prints :wrapped
before the target form is evaluated:
(defun println-override (form &optional callback bounds) (let ((cider-interactive-eval-override nil)) (cider-interactive-eval (concat "(do (println :wrapped) " form ")") callback bounds))) (setq cider-interactive-eval-override #'println-override)
This almost works, it correctly wraps any form evaluated and the println
happens, but the pretty printing of some commands (like cider-pprint-eval-last-sexp
) does not work anymore, because the last argument was not forwarded.
Describe the solution you'd like
Adding the missing argument to cider-interactive-eval-override
's call site (funcall cider-interactive-eval-override form callback bounds additional-params)
is very easy, but it would break backward compatibility. I'm not very fluent in Elisp so maybe there is a way to work around that.
With that change, the previous code can be changed to the following:
(defun println-override (form &optional callback bounds additional-params) (let ((cider-interactive-eval-override nil)) (cider-interactive-eval (concat "(do (println :wrapped) " form ")") callback bounds additional-params))) (setq cider-interactive-eval-override #'println-override)
Which seems to work perfectly.
Additional context
As I searched for examples of correct usage of cider-interactive-eval-override
on Github, it seems that it is in fact very rarely used. There might be a better way to wrap evaluation than this.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4