Commit graph

374 commits

Author SHA1 Message Date
Nathaniel Nicandro
e4b820d07c jupyter-repl-eval-string: Pass the silent argument to jupyter-send-execute-request 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
0afa562a5e jupyter-repl-insert-html: Remove javascript tags
`shr` does not handle javascript so there is no point in
keeping it. It also slows down `libxml-parse-html-region`.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
03769a9b01 Don't test for certain html tags 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
1705c48167 Add jupyter-repl-persistent-mode
Instead of advising `switch-to-buffer` whenever
`jupyter-repl` is required, introduce the global minor mode
which attempts to handle all different scenarios where you
would like to propagate the `jupyter-current-client` to
another buffer or keep `jupyter-repl-interaction-mode`
enabled.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
29ede2f44a jupyter-repl-interaction-mode: Handle buffer reverts 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
f81d77c4d2 jupyter-repl-propagate-client: Add as before advice instead of around 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
3734b2d3a4 jupyter-repl-associate-buffer: Fix interactive argument 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
ac053e16d4 jupyter-repl-scratch-buffer: Create a scratch buffer for every unique client
Also insert a message when creating a buffer to give hints
on keybindings.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
5276193502 Add jupyter-repl-interaction-mode bindings 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
c7eaed8f95 Add jupyter-repl-eval-buffer 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
19fcf4bd9a jupyter-repl-eval-string: Refactor
* Use a `cond' for readability

* Also use `jupyter-with-doc-buffer` when not inserting
  plain text results
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
dc0bccef7f jupyter-repl-eval-string: Enable auto-completion during an interactive call 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
2e0fef2649 jupyter-repl-on-kernel-restart: Only switch to the client buffer when needed 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
52e663b550 jupyter-inspect: Use the help buffer when called without a buffer
This allows us to use `help-setup-xref` so that we can
navigate backward and forward through help. This is
especially useful in the Julia kernel.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
01c58f05eb jupyter-completion--company-doc-buffer: Fix call to jupyter-inspect 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
3763764394 Abstract out company idle completion timer from jupyter-completion-at-point 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
54810022a9 Consider operators during completion 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
1f812ddf7c Limit overlay calls to jupyter-repl--make-prompt 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
f8768b7f87 jupyter-markdown-follow-link: Call jupyter-inspect when not in the REPL buffer 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
768d640beb Use with-silent-modification in jupyter-repl-append-output 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
4abf2daafa Update completion prefetching
* Add `jupyter-completion-prefetch-p` which determines if a
  prefetch should be performed.

* Remove `jupyter-completion-last-prefix`. Store all of the
  necessary information in `jupyter-completion-cache`.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
a4a4bfb4c8 Ask to start a new REPL if one isn't available in jupyter-repl-associate-buffer 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
4f73d1397e Ensure the buffer local value of syntax-propertize-function is set
This caused much headache. This variable really should be
automatically buffer local.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
5caf82cf81 Fix continuation prompt insertion
* Remove the invisible character inserted along with the
  continuation prompt as it is really unneeded.

* Make the inserted space two characters wide. For some
  reason this is needed, otherwise the continuation prompt
  will be one character short when starting up a REPL from
  the byte compiled functions. Curiously when I evaluate
  `jupyter-repl-insert-prompt` in the current Emacs
  session, the prompt looks fine afterwards.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
c651f16ae2 Check for both end of word and symbol in jupyter-completion-grab-symbol-cons 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
abdf63a517 Only fontify syntactically when the text is not considered fontified
Text may not have a `font-lock-face` property, but may be
marked fontified if it has a non-nil `font-lock-fontified` property.
2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
52a44b7e30 Take into account syntax-propertize-function in jupyter-repl-initialize-fontification 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
33495f0281 Don't try to insert continuation prompts on self-insert-command 2018-10-25 23:17:26 -05:00
Nathaniel Nicandro
4c95c8c6d2 Add note about possibly using indirect buffers 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
ed094f93ea Use buffer ticks in jupyter-repl-indent-line
Previously a string comparison was done to check if the
cell code was indented, this is faster.
2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
6671904cee Fix edge case in jupyter-repl-history--previous
If there is no history at all to go back to, return nil.
2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
59eba9d3c4 Check for widget dependencies in jupyter-repl-insert-data 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
cadc26f32b Prioritize mimetypes that have dependencies in jupyter-repl-insert-data 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
3d6d90d6da Simplify jupyter-repl-insert-html
Insert the HTML directly into the REPL buffer and use
`shr-render-region`. This avoids copying the HTML to a
temporary buffer first and extracting the rendered HTML to
place in the REPL buffer.
2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
f4d375a380 Add whitespace after inserting images 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
3145453d93 Fix svg image display 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
a9246fcecb Rename with-jupyter-* to jupyter-with
Ensure that all functions and macros have the same
pseudo-namespace
2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
31d7cfe34f Do not supply new arguments for obtaining the completion prefix 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
a26655c66f Handle python kernels specially when constructing completion candidates
The python kernel includes every attribute up to the parent
object, we need to split on the dots to only have the last
attribute or method since that is what the bounds are in
the completion mechanism.
2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
c9e8b952eb Consider packages like smartparens when expanding argument snippets 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
34e52de1d4 Simplify inspect requests
* Rename `jupyter-repl-inspect-at-point` -> `jupyter-inspect-at-point`

* Refactor inspection
2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
1198965d57 Documentation changes 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
be06102c99 Explicitly make REPL variables buffer local 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
c48d5ca814 Fix jupyter-repl-fixup-font-lock-properties 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
21ca6ead04 Use filter-buffer-substring-function to extract cell code 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
b00b28490f Handle terminal control codes in REPL output 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
58078c4e69 Document behavior of jupyter-repl-associate-buffer 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
6ca612168a Handle edge case when obtaining completion prefix 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
9cd52d25c3 Cleanup CAPF when jupyter-repl-interaction-mode is disabled 2018-10-25 23:17:25 -05:00
Nathaniel Nicandro
cccc680a6c Always finalize the previous cell on kernel restart 2018-10-25 23:17:25 -05:00