We were only selectively fixing the mime type for execute_result outputs, now we
treat those the same as we do display outputs. Also fixed image/svg+xml MIME
type wherever I could find it.
If dynamic-javascript is enabled and we see HTML in the display data after
executing a cell, then we create a web page for it in the simple-httpd server.
Do not assume python... leverage ESS to improve R interaction.
Fix both undo and fontify in the presence of toggling cells (`C-c
C-t`)
Fix and test switching kernels
Use deferred and callbacks instead of `:sync t` for tkf requests which
is known to have issues. Query server attributes once on
notebooklist-open to avoid sequencing issue #176 (but allow Resync).
Under curl backend, a second request for the same "key" as a pending
request will abort the latter, which has resulted in a clobbered
curl-cookie-jar file, so merely warn and don't abort.
Fix#176
New hooks `ein:pre-kernel-execute-functions', `ein:on-execute-reply-functions'
and `ein:on-shell-reply-functions'. See variable documentation for more
information.
Similar to having an input area face, we now have faces for errors &
normal output in the output area. They're currently empty to preserve
existing appearance.
User can now ask ein to truncate long outputs in a worksheet. Use the
customizable variable `ein:truncate-long-cell-output' to control this behavior.
Set to nil to have no truncation, otherwise an integer value specifying the
number of lines to keep before truncating.
It seems there are enough people out there still on Emacs 24 to warrant undoing
some of my recent moves away from eieio to cl-generic. For the near future I
will try to keep any changes that are incompatible with Emacs 24 to a
development branch. There is still probably plenty of opportunity to make the
code more future-proof for an eventual move away from eieio (I'm looking at you
oref and sref...)
Images weren't being save to json in the way they should have. Mostly had to do
with how the attirbutes were being ordered. This is still, unfortunately, a
nasty bit code but it still seems to work.
Make even more unique edit-cell buffer names. Check that an edit-cell-buffer
does not already exits before creating one.
Also try to be even more aggressive in limiting output in backtraces when
debugging ein.
Mistyped some accessors for worksheet slot accessors. Correct
`*running-ipython-version*` hash to accept strings (i.e. URL's) as well as just
port numbers.
Finally do the right thing when clear_output is received. Closes issue #24. Also
fix a nasty bug that might occurr when trying to open a notebook with no
associated kernelspec.
The goal is to eventually eliminate most of the warnings that are
generated when byte-compiling ein.
Do this over several commits to make it easier to revert in the likely
event that something breaks.
Caught one! "pyout" messages are now called "execute_result", so we
should act accordingly. Before "execute_result" was being treated as
"display_data".
EIN will try to use skewer to execute javascript cells, which works for
the most part. Those hoping to have widgest or something like d3 working
are going to be disappointed, however, as at its heart ein is not an
HTML page and those packages depend on modifying the DOM of the notebook
web page.
It remains to be seen if those issues are surmountable, but for the
moment this functionality will live in this branch and this branch
alone.