An output_handler
handles the results of evaluate()
,
including the values, graphics, conditions. Each type of output is handled by
a particular function in the handler object.
Usage
new_output_handler(
source = identity,
text = identity,
graphics = identity,
message = identity,
warning = identity,
error = identity,
value = render,
calling_handlers = list()
)
Arguments
- source
Function to handle the echoed source code under evaluation. This function should take two arguments (
src
andcall
), and return an object that will be inserted into the evaluate outputs.src
is the unparsed text of the source code, andcall
is the parsed language object Ifsrc
is unparsable,call
will beexpression()
.Return
src
for the default evaluate behaviour. ReturnNULL
to drop the source from the output.- text
Function to handle any textual console output.
- graphics
Function to handle graphics, as returned by
recordPlot()
.- message
Function to handle
message()
output.- warning
Function to handle
warning()
output.- error
Function to handle
stop()
output.- value
Function to handle the values returned from evaluation. If it only has one argument, only visible values are handled; if it has more arguments, the second argument indicates whether the value is visible.
- calling_handlers
List of calling handlers. These handlers have precedence over the exiting handler installed by
evaluate()
whenstop_on_error
is set to 0.
Details
The handler functions should accept an output object as their first argument.
The return value of the handlers is ignored, except in the case of the
value
handler, where a visible return value is saved in the output
list.
Calling the constructor with no arguments results in the default handler, which mimics the behavior of the console by printing visible values.
Note that recursion is common: for example, if value
does any
printing, then the text
or graphics
handlers may be called.