Commit graph

1319 commits

Author SHA1 Message Date
Nathaniel Nicandro
f28d4a5400
Avoid recursive require when loading ob-jupyter
This can happen, e.g. when loading jupyter-org-client.el directly from source
since `org-element` requires `org`.
2019-03-14 09:29:11 -05:00
Nathaniel Nicandro
6a81470be9
jupyter-eval-short-result-display-function: Don't fail when result has '%' characters 2019-03-14 09:16:44 -05:00
Nathaniel Nicandro
662e983612
Don't require subr-x at runtime 2019-03-14 09:16:44 -05:00
Nathaniel Nicandro
139949528c
jupyter-org-jump-to-block: Consider nil context 2019-03-14 02:33:03 -05:00
Nathaniel Nicandro
75648917cb
jupyter-org-select-block-and-results -> jupyter-org-src-block-bounds 2019-03-14 02:28:30 -05:00
Nathaniel Nicandro
23481e1d51
Add jupyter-org-inspect-src-block 2019-03-14 02:28:25 -05:00
UndeadKernel
d065b2f25c Port scimax's source block helper functions (#45)
* Port scimax's org facility functions

We provide a hydra to easily use the functions.
By default, the binding to call the hydra is `C-c h`
The hydra is only created if the hydra package is loaded.

* Move org extensions to its own file.

* Integrate revision comments

* Replaced manual placement of src blocks with
`org-element-interpret-data`
* Refactor some functions

* Add a hydra to `jupyter-org-interaction-mode-map`

Only actually define the Hydra if the package `hydra` exists.

* Refactor org extension functions.

* org-extensions: refactor and cleanup

* Remove compiler warnings
* Change condition-case for ignore-errors
* Functions that restart the kernel now work
* Use ivy and avy functions only if package exists

* org-extensions: change hydra bindings

* Match the hydra bindings better to emacs conventions

* org-extensions: improvements and code refactoring

* add where external functions should be found
* take into account empty RESULTS when moving blocks

* org-extensions: use context variable for jumping

* org-extensions: improve jumping to block function

* Set a default variable to specify how many lines of context to show
* Consider the case when a user supplies the nil value
2019-03-14 02:26:30 -05:00
Nathaniel Nicandro
6eb86f0a52
README.org: Fix confusing wording 2019-03-13 18:24:37 -05:00
Nathaniel Nicandro
744e27e945
jupyter-eval-string: Don't inhibit :input-request handler
See #35.
2019-03-12 18:35:44 -05:00
Nathaniel Nicandro
8f304e5b66
README.org: Add note about ob-async integration 2019-03-12 17:53:14 -05:00
Nathaniel Nicandro
60670a6a35
org-babel-jupyter-transform-code (julia): Use let block in :dir expression 2019-03-12 15:13:36 -05:00
Nathaniel Nicandro
247a96fb95
org-babel-jupyter-transform-code (julia): Don't wrap :dir expression in function
Allows top level expressions like `using Plots` to work. Fixes #57.
2019-03-12 14:29:24 -05:00
Nathaniel Nicandro
98e4bd29d2
README.org: Add note about language support files 2019-03-12 14:28:46 -05:00
Nathaniel Nicandro
4f8e5da4ba
Ensure the REPL buffer is current when inserting banner 2019-03-10 04:39:43 -05:00
Nathaniel Nicandro
49d43b690e
jupyter-repl.el: Update commentary 2019-03-10 03:06:16 -05:00
Nathaniel Nicandro
0cfb156a7e
jupyter-org--wrappable-element-p: Consider error comments wrappable 2019-03-10 03:06:16 -05:00
Nathaniel Nicandro
fbbef48bee
jupyter-completion-at-point: Handle edge case
Some kernels (e.g. IPython) do not send a `:complete-reply` when the
`:complete-request` is empty, handle this case.
2019-03-07 23:16:37 -06:00
Nathaniel Nicandro
6894a73d57
Cleanup stale comments 2019-03-07 22:51:25 -06:00
Nathaniel Nicandro
dd0feef022
jupyter-repl-mode: Prevent a major-mode change
Changing `major-mode`s would kill the local `jupyter-current-client` variable
which we don't want to happen. There is no reason (that I can think of) to
change the `major-mode' in a REPL buffer anyways.
2019-03-07 22:51:25 -06:00
Nathaniel Nicandro
581aab10b6
jupyter-kernel-language: Change return value to be a symbol
This avoids interning a string for every method dispatch using the
jupyter-lang method specializer.
2019-03-07 22:51:25 -06:00
Nathaniel Nicandro
9c94cee8a2
jupyter-ioloop-handler: Simplify debug printing 2019-03-07 22:44:52 -06:00
Nathaniel Nicandro
4d247595bb
jupyter-insert-html: Don't use proportional fonts
Closes #52.
2019-03-06 11:16:54 -06:00
Nathaniel Nicandro
764bf6f717
jupyter-repl-restart-kernel: Inhibit handlers except :shutdown-reply
See https://github.com/dzop/emacs-jupyter/pull/45#discussion_r262015539.
2019-03-04 17:47:02 -06:00
Nathaniel Nicandro
81ecc0ec31
jupyter-org--delete-unwrapped-result: Only attempt to delete valid elements
This avoids situations where a paragraph or headline context is deleted
whenever there is no whitespace after the #+RESULTS line and the element after
the #+RESULTS keyword is not a valid result.
2019-03-03 18:09:12 -06:00
Nathaniel Nicandro
8321f9c301
Preserve whitespace when wrapping result in a drawer 2019-03-03 17:55:23 -06:00
Nathaniel Nicandro
e785b97963
Consider whitespace around org-mode src-block results in tests 2019-03-03 17:12:08 -06:00
Nathaniel Nicandro
e1f5b53fbb
Don't rely on "status: starting" message in kernel restart test 2019-03-02 19:26:32 -06:00
Nathaniel Nicandro
fb141f1020
Increase jupyter-default-timeout to 2.5 s
Closes #43.
2019-03-02 18:35:44 -06:00
Nathaniel Nicandro
0e0b78259e
jupyter-long-timeout: Fix typo 2019-03-02 18:24:48 -06:00
Nathaniel Nicandro
fe6cf4be48
Fix documentation of hook variables 2019-03-02 18:24:48 -06:00
Nathaniel Nicandro
99f1099d68
jupyter-repl-available-repl-buffers: Use provided-mode-derived-p
So that a mode derived from `jupyter-repl-lang-mode` is still considered a
match.
2019-03-02 18:24:48 -06:00
Nathaniel Nicandro
5651074ab3
jupyter-repl-after-change (julia): Generalize blink-paren-function integration 2019-03-02 18:14:49 -06:00
Nathaniel Nicandro
9114397f2c
jupyter-repl-syntax-propertize-function: Move Julia specific setup to jupyter-julia.el 2019-03-02 18:14:49 -06:00
Nathaniel Nicandro
e127e1d45b
Add jupyter-repl-cell-cond 2019-03-02 18:14:49 -06:00
Nathaniel Nicandro
2c5cde166f
jupyter-repl-interaction-mode-line: Check heartbeat first 2019-03-02 18:14:49 -06:00
Nathaniel Nicandro
57e9af3a13
jupyter-handle-message: Update execution-state for any status message 2019-03-02 18:14:49 -06:00
Nathaniel Nicandro
1f5c7743d5
Working towards a cleaner REPL restart
See #50.
2019-03-02 18:14:49 -06:00
Nathaniel Nicandro
dbfcac1c90
Add org-babel-jupyter-override-src-block
Closes #41.
2019-03-01 18:09:27 -06:00
Nathaniel Nicandro
bdc52c485d
Add jupyter-pop-up-frame
Closes #34
2019-03-01 15:52:42 -06:00
Nathaniel Nicandro
541e5dbe6d
jupyter-org--image-result: Let caller determine if image data is base64 encoded 2019-03-01 14:41:53 -06:00
Nathaniel Nicandro
f31b925ca3
jupyter-org-src-block: Fix typo 2019-02-28 12:59:04 -06:00
Nathaniel Nicandro
2a3b175f26
jupyter-repl-after-change: Maintain field membership at cell beginning
This handles an edge case where `field-end` would return the position at the
beginning of a cell even though there was text that was part of the cell code
after that position. The issue had to do with the interaction between the
sticky text properties at field boundaries. See #38.
2019-02-27 14:44:23 -06:00
Nathaniel Nicandro
4e93839004
Narrow to REPL cell when calling language mode font-lock functions 2019-02-27 14:44:23 -06:00
Nathaniel Nicandro
c903ab39f7
jupyter-channel-ioloop.el: Fix commentary functions calls 2019-02-27 12:54:58 -06:00
Nathaniel Nicandro
a76e8d5151
jupyter-repl-do-after-change: Widen the buffer before doing any work
See #38.
2019-02-25 20:59:12 -06:00
Nathaniel Nicandro
75fa0eea29
Add REPL prompt string constants 2019-02-22 21:05:45 -06:00
Nathaniel Nicandro
55664b6854
jupyter-repl-after-change (julia): Don't replace the REPL prompt
For Pkg mode, help mode, and shell command mode just add the corresponding
prompt as part of the REPL cell itself (as an overlay of the mode character)
instead of overriding the REPL input prompt. Fixes #39.
2019-02-22 21:05:45 -06:00
Nathaniel Nicandro
ae5ed507fb
Handle prompt margin overflow in the REPL
Whenever a prompt string exceeds `jupyter-repl-prompt-margin-width`, increase
`jupyter-repl-prompt-margin-width` so that is can accommodate the string and
redisplay all prompts.
2019-02-22 20:57:42 -06:00
Nathaniel Nicandro
f25a9b6070
Update README on src-block header arguments 2019-02-22 08:48:24 -06:00
Nathaniel Nicandro
82dfe3e340 Re-organization 2019-02-22 08:33:00 -06:00