Instead of using `jupyter-eval` which creates unnecessary `:execute-input` and
`:execute-result` messages, use the `:user-expressions` key of an execute
request to compute the Pkg prompt. This way the only message generated is an
`:execute-reply` and we avoid modifying the execution count.
This requires JuliaLang/IJulia.jl@85eb54ae17
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.
* Add `jupyter-repl-syntax-propertize-function`. This allows packages like
`rainbow-delimiters-mode` to work regardless of what is printed as output of
a REPL cell by setting the syntax-table property on parenthesis in REPL
output.
* Fix an issue with the Julia REPL which would cause `syntax-ppss` to
report the wrong parenthesis depth due to the `]` character of the REPL
package mode. Thus interfering with how `rainbow-delimiters-mode` works.
* Ensure that the kernel language's syntax table is used when fontifying and
adding syntax properties.
This method allows kernel languages to do transformations of a src-block's code
based on the parameters supplied to the src-block before sending the code to
the kernel. The method is called in `org-babel-expand-body:jupyter`. Currently
the only parameter supported is the `:dir` option of a src-block.
* Define `jupyter-load-language-support` which takes a client and loads the
language support definitions of the client's kernel language.
* Call `jupyter-load-language-support` when initializing a REPL buffer in
`jupyter-repl-mode`. Note this also takes care of loading the kernel support
for a `jupyter-org-client' since a REPL buffer is setup before evaluating any
`org-mode` source code blocks.
* Move language specific methods to their own files named `jupyter-LANGUAGE.el`