Setting or binding dynamic variables *print-fn*, *stream?*, *buffer-size*, *quota* does not change the behavior of the print middleware. This happens because interruptible-eval and print middleware run on different threads, and thus changing the dynvars with set! within an eval command is not visible to the printer thread.
At this point, it is important to understand if this is worth fixing. Currently, print middleware allows customizing itself via the options in either request of response map. This is reliable and convenient to do for tooling authors that control the interaction with nREPL. Setting the parameters through dynvars was probably intended for end users who want to change the behavior of the printer directly from the REPL, bypassing the IDE/tooling . Do we want to support this usecase?
Setting or binding dynamic variables
*print-fn*,*stream?*,*buffer-size*,*quota*does not change the behavior of theprintmiddleware. This happens becauseinterruptible-evalandprintmiddleware run on different threads, and thus changing the dynvars withset!within an eval command is not visible to the printer thread.At this point, it is important to understand if this is worth fixing. Currently,
printmiddleware allows customizing itself via the options in either request of response map. This is reliable and convenient to do for tooling authors that control the interaction with nREPL. Setting the parameters through dynvars was probably intended for end users who want to change the behavior of the printer directly from the REPL, bypassing the IDE/tooling . Do we want to support this usecase?