Commit graph

949 commits

Author SHA1 Message Date
Nathaniel Nicandro
3241b47609 jupyter-repl-insert-html: Fix insertion of XHTML (#4)
Fixes #4. `shr` uses `libxml-parse-html-region` internally which converts all
tags and attributes to lowercase when constructing the DOM since HTML is
case-insensitive. But SVG uses XML which is a case-sensitive language. This
means that a conversion from the DOM back to an XML representation does not
restore the case of tags/attributes if `libxml-parse-html-region` is used. This
is solved by using `libxml-parse-xml-region` which preserves case.

* jupyter-repl.el (jupyter-repl-put-image): New function.
(jupyter-repl-insert-html): Temporarily bind libxml-parse-html-region to
libxml-parse-xml-region. Temporarily bind shr-put-image-function to
jupyter-repl-put-image.
2018-11-09 08:13:01 -06:00
Nathaniel Nicandro
4d4da4fcdc jupyter-repl-insert-data: Support image/jpeg
jupyter-repl.el (jupyter-repl-graphic-mimetypes): Add :image/jpeg.
(jupyter-repl-insert-data): Add the support.
2018-11-08 23:07:29 -06:00
Nathaniel Nicandro
fb55644d17 jupyter-repl-propertize-output: Also add text properties to ` character
For the Julia kernel.
2018-11-08 21:33:30 -06:00
Nathaniel Nicandro
005664a381 Decouple debugging statements from implementation
* jupyter-client.el (jupyter-send): Add new :before method that prints
debugging statements, remove debugging statements from primary method.
2018-11-08 21:33:26 -06:00
Nathaniel Nicandro
348541dfe7 Update documentation and commentary 2018-11-08 21:30:32 -06:00
Nathaniel Nicandro
becddfc9ea Fix requires
`jupyter-channels.el` depends on the `jupyter-send` method defined in
`jupyter-messages.el` whereas `jupyter-messages.el` does not depend on any
functions in `jupyter-channels.el`.

* jupyter-channel.el: Require `jupyter-messages`

* jupyter-messages.el: Remove `jupyter-channels` require
2018-11-08 21:30:32 -06:00
Nathaniel Nicandro
88c126ffe1 jupyter-org-prepare-result: Use the right JPEG mimetype.
* jupyter-org-client.el (jupyter-org-prepare-result): Replace :image/jpg with :image/jpeg.
2018-11-08 21:30:32 -06:00
Nathaniel Nicandro
5b65eb4f24 Move jupyter--debug to jupyter-base.el from jupyter-client.el
This is so that other parts of Jupyter can use it to emit debug statements.
2018-11-08 21:21:23 -06:00
Nathaniel Nicandro
7aac141275 jupyter-repl-connected-p: Simplify heartbeat check 2018-11-08 21:21:23 -06:00
Nathaniel Nicandro
2642450e82 jupyter-client.el: Add jupyter-verify-inhibited-handlers
* jupyter-client.el: Add the new function
(jupyter-send): Use it
2018-11-08 21:21:23 -06:00
Nathaniel Nicandro
2ae8c6a7c1 Associate pending requests with a client
Previously pending requests were associated with the ioloop process itself, but
pending requests are a particular feature of the client and used only for a
client's purpose.
2018-11-08 21:21:23 -06:00
Nathaniel Nicandro
22796ad4cd jupyter-client.el: Add jupyter-clients
* jupyter-client.el: Add the function

* jupyter-repl.el (jupyter-repl-available-repl-buffers): Use it. Ensure REPL
buffers are still live.
2018-11-08 21:15:22 -06:00
Nathaniel Nicandro
0095367796 Remove usage of old function 2018-11-07 14:23:54 -06:00
Nathaniel Nicandro
f5278cf027 Remove usage of old macro 2018-11-07 14:23:48 -06:00
Nathaniel Nicandro
6a7a6aa4b3 jupyter-with-output-buffer: Properly initialize jupyter-output-buffer-marker 2018-11-07 12:54:15 -06:00
Nathaniel Nicandro
172f29b4fe jupyter-repl-propertize-output: Fix infinite loop
* If `comment-start` is nil, using a regular expression with an empty or clause
  causes an infinite loop. Ensure that we only add the or clause when
  `comment-start` is non-nil in `jupyter-repl-propertize-output`.

* Copy over the `comment-start` from the REPL language buffer in
  `jupyter-repl-initialize-fontification`
2018-11-07 12:20:33 -06:00
Nathaniel Nicandro
0a1ffa66a0 jupyter--ioloop: Complain if ZMQ does not have draft API 2018-11-05 00:00:11 -06:00
Nathaniel Nicandro
527c2ae859 Fix wrong variable name 2018-11-05 00:00:11 -06:00
Nathaniel Nicandro
3d483377f8 Add license file 2018-11-05 00:00:11 -06:00
Nathaniel Nicandro
1037aa0f54 Fix misspelled function name 2018-11-05 00:00:11 -06:00
Nathaniel Nicandro
05bbe0414d Rename jupyter-startup-timeout to jupyter-long-timeout 2018-11-05 00:00:08 -06:00
Nathaniel Nicandro
a0dc347ed7 Add jupyter-julia-update-prompt
* Factor out the prompt updates in `jupyter-repl-after-change` for Julia
  kernels by using `jupyter-julia-update-prompt` to make the updates.
2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
f96b258329 jupyter-repl-after-change: Use jupyter-repl-cell-reset-prompt for Julia 2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
50f797168d Add jupyter-repl-previous-cell-count 2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
0fc402cd6b Add jupyter-repl-cell-reset-prompt 2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
d86eea253b jupyter-handle-status: Force a mode line update after changing status 2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
bd2333a432 Only consider the REPL buffer modified when editing an input cell 2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
983ccf6ec7 Add jupyter-with-control-code-handling
This macro takes care of any ANSI control codes that the kernel output may
produce.
2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
6c6712bb0a jupyter-with-output-buffer: Refactor
* Rename `jupyter-repl-output-buffer-marker` to `jupyter-output-buffer-marker`

* Rename `jupyter-repl-output-buffer-last-request-id` to
  `jupyter-output-buffer-request-id`

* Add `jupyter--reset-output-buffer-p` which returns non-nil if the current
  input buffer should be reset.

* Simplify the `jupyter-with-output-buffer` macro
2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
4cfa8b19fc jupyter-repl-eval-string: Simplify conditional 2018-11-04 23:56:42 -06:00
Nathaniel Nicandro
28d4390a1f jupyter-repl-eval-string: Use jupyter-with-message-content 2018-11-04 17:05:44 -06:00
Nathaniel Nicandro
4f40b050df Simplify working with buffers to insert kernel output
* Rename `jupyter-repl-with-output-buffer` to `jupyter-with-output-buffer`.

* Replace uses of `jupyter-repl-with-doc-buffer` with
  `jupyter-with-output-buffer`. The difference between the two was that
  `jupyter-repl-with-doc-buffer` always reset the buffer before inserting new
  output.
2018-11-04 17:05:44 -06:00
Nathaniel Nicandro
55b5f680ec Enable undo in a REPL input cell 2018-11-02 09:14:29 -05:00
Nathaniel Nicandro
b4cdf9de0b jupyter-repl-propertize-output: Also suppress fontification of comments 2018-11-02 09:10:17 -05:00
Nathaniel Nicandro
58e1515e75 Fix beginning-of-buffer error 2018-11-01 21:12:59 -05:00
Nathaniel Nicandro
57f262c2e3 Implement option to show a progress reporting message in jupyter-wait-until* functions 2018-11-01 19:20:25 -05:00
Nathaniel Nicandro
8edcb1cff0 Simplify jupyter-channel tests 2018-11-01 01:56:59 -05:00
Nathaniel Nicandro
8badade6d1 jupyter-hb-unpause: Set paused to nil when sending a ping is guaranteed 2018-11-01 01:56:59 -05:00
Nathaniel Nicandro
e929cffba1 jupyter-stop-channel: Group oref calls 2018-11-01 01:56:59 -05:00
Nathaniel Nicandro
2ae44ebcd6 jupyter--kernel-sentinel: Kill the process buffer when the kernel process is dead 2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
91e766ed27 jupyter--kernel-sentinel: Use with-slots 2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
0f2818b039 Ensure javascript builds without errors 2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
f0a45c7889 Fix package.json
* Simplify clean step

* Use GPL license
2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
df69ed6daa jupyter-test.el: Add generalized versions of jupyter-with-python-(client|repl) 2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
3ff1a590a4 Rename jupyter-test-info -> jupyter-ert-info 2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
2e97d8ce01 Remove code duplication when connecting heartbeat channels
* Add `jupyter-channel--reset-socket` which does the work of connecting the
  heartbeat channel to its endpoint and takes care of possibly reseting the
  socket after sending a ping.
2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
90b9223108 [WIP] Widget documentation 2018-11-01 01:56:58 -05:00
Nathaniel Nicandro
a2fb08c99f jupyter-widgets-on-message: Error if a message gives an unsupported channel 2018-10-31 18:49:37 -05:00
Nathaniel Nicandro
089e0b7f17 jupyter-widget-client.el: Fix documentation wording 2018-10-31 18:49:37 -05:00
Nathaniel Nicandro
c30357badb jupyter-with-message-content: Allow debugging inside the macro 2018-10-31 18:49:37 -05:00