Nathaniel Nicandro
8f774120c9
Better handling of when to remove requests from a client's request table
...
For each message received in response to a request, record the
`last-message-time` of any received messages for a request. When a request's
`idle-received-p` field is non-nil and the `last-message-time` is larger than
some number of seconds, remove the request from the request table.
2018-01-11 12:06:26 -06:00
Nathaniel Nicandro
62691611e4
Add jupyter--ioloop-collect-messages
to simplify jupyter--ioloop
even more
2018-01-11 12:04:42 -06:00
Nathaniel Nicandro
b9f83a60d6
Allow passing an id
to the jupyter-session
constructor
2018-01-11 12:03:32 -06:00
Nathaniel Nicandro
85b3dc3167
Refactor REPL buffer initialization
2018-01-11 03:28:04 -06:00
Nathaniel Nicandro
46b70e85d0
Refactor jupyter-initialize-connection
...
- Use `ignore-errors` around `jupyter-connection` slots since they can be
inherited by the `parent-instance`. Note that checking if the slot is
available does not also check if the slots availability in the
`parent-instance`
- Set `addr` where it is used, namely in `cl-loop`
2018-01-11 00:26:03 -06:00
Nathaniel Nicandro
34b0d45078
Use quoted lists
2018-01-11 00:25:08 -06:00
Nathaniel Nicandro
56e5f047bd
car
instead of caar
in jupyter--ioloop-queue-message
...
`elem` is a list not a list of lists
2018-01-11 00:22:19 -06:00
Nathaniel Nicandro
f705dc96fe
Indentation
2018-01-09 00:44:35 -06:00
Nathaniel Nicandro
ef6b72f1b7
Proper cleanup of all buffers associated with a REPL
2018-01-09 00:44:35 -06:00
Nathaniel Nicandro
bcc1677ec0
Update doc of jupyter-repl-initialize-fontification
2018-01-09 00:44:35 -06:00
Nathaniel Nicandro
5d9244b17b
Rename jupyter--encode-object
-> jupyter--encode
, jupyter-decode-string ->
jupyter--decode`
2018-01-09 00:44:35 -06:00
Nathaniel Nicandro
ec1d9073a1
Fix use of argument in jupyter-repl-insert-latex
2018-01-09 00:44:35 -06:00
Nathaniel Nicandro
f3951ee9af
Fix debug message
2018-01-09 00:44:35 -06:00
Nathaniel Nicandro
839e5d855a
[WIP] Add ability to stop channels initially in jupyter-start-channels
...
Also add TODO about channel methods
2018-01-09 00:44:35 -06:00
Nathaniel Nicandro
a9f2bac2c8
Better logic on when to send queued messages in an ioloop subprocess
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
7a1a7871d3
jupyter-start-new-kernel
already unpauses the heartbeat channel
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
b198a02f45
Add note about how `jupyter-channel's are used in a client
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
912a367190
Error out when no ioloop process is present in jupyter-send
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
c358e37b23
Add missing initform
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
047968c4e9
Refactor jupyter-start-channel
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
a7539dc37b
Fix checkdoc warnings
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
c7dee4aa55
Simplify kernel shutdown and interruptions in a kernel manager
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
d44d9d0c64
Actually set the kernel process of a manager when starting the kernel
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
14e02c95bf
Handle {resource_dir} when starting kernel
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
9ba6ad331e
Remove uses of lexical-let
2018-01-09 00:44:34 -06:00
Nathaniel Nicandro
326ff15d92
Add standard header comments
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
ebd616998e
Add/update lots of documentation
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
85fe15ae4c
Only unfinalized cells can have their code replaced
...
Don't set `inhibit-read-only` to t when replacing cell code. This prevents one
from replacing the cell code of a finalized cell.
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
6178a53638
Refactor jupyter-start-new-kernel
to use jupyter-missing-request
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
7e36ea1101
Add jupyter-missing-request
...
This is a function which should be called on a `jupyter-kernel-client` and it
returns a request object which can be used to add callbacks to messages that
have no parent message such as the status: startup message sent be a kernel.
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
7169c5072a
warn
instead of error
when handling unknown message types
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
44c75944d3
Fix missing argument
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
c500b08104
Set default values for the jupyter-connection
slots of a jupyter-kernel-manager
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
f904dc7d2a
Rename jupyter-push-message
-> jupyter-queue-message
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
c706d07f02
Refactor jupyter--ioloop
...
Break it into several macros which perform various subtasks like processing a
command received from the parent emacs process and collecting messages into a
sorted list based on `jupyter-message-time`
2018-01-09 00:44:33 -06:00
Nathaniel Nicandro
b846af6c00
Remove unreachable code
2018-01-07 19:54:52 -06:00
Nathaniel Nicandro
71c4314a86
jupyter-connection
inherits from eieio-instance-inheritor
...
This way when creating kernel clients with `jupyter-kernel-manager`, we can set
the `parent-instance` of the newly created client to the manager thereby
inheriting the `jupyter-session` from the kernel manager.
Also have `jupyter-channel` objects inherit from a `jupyter-connection` so that
we can define `jupyter-send` and `jupyter-recv` methods for channels in the future.
2018-01-07 14:53:12 -06:00
Nathaniel Nicandro
c09aebaa6a
Fix wrong function names
2018-01-07 14:45:20 -06:00
Nathaniel Nicandro
5975e0e096
Update tests
...
Use lexical bindings, fix byte compiler warnings.
2018-01-07 14:25:54 -06:00
Nathaniel Nicandro
346cdc78c8
Update heartbeat channel tests to take into account implementation changes
2018-01-07 14:16:17 -06:00
Nathaniel Nicandro
9e2db2146b
[WIP] Back to the old prefix behavior in company-jupyter-repl
...
This needs to be changed. `company-grab-symbol` will only grab 'bar' when
cursor is at | in the following:
foo.bar|
We would like it to grab the whole 'foo.bar' and let the kernel figure out what
to do. Similarly for other operators like '->'. The problem that needs to be
fixed is to properly replace just the 'bar' part if 'foo.bar' is the prefix. I
believe the `match` command of a company backend will be of use.
2018-01-07 14:10:52 -06:00
Nathaniel Nicandro
8431e6834b
Insert newlines in the jupyter-repl-client
buffer when appropriate
2018-01-07 14:10:24 -06:00
Nathaniel Nicandro
9be91260c7
Refactor setting inserted text properties in jupyter-repl-insert
2018-01-07 14:09:39 -06:00
Nathaniel Nicandro
f003e40101
Add more documentation
2018-01-07 14:06:14 -06:00
Nathaniel Nicandro
aff8f7dc5d
Fix wrong number of arguments
2018-01-07 14:03:55 -06:00
Nathaniel Nicandro
ada66074f5
Fix some checkdoc warnings
2018-01-07 13:35:05 -06:00
Nathaniel Nicandro
b31aa780a3
Use cl-defgeneric
for client handlers and requests methods
...
This way eldoc works with the method arguments
2018-01-06 22:50:55 -06:00
Nathaniel Nicandro
4896c6b75b
Use pcase
in jupyter--ioloop-filter
...
Also change the type of objects emitted by `jupyter--ioloop` to lists
2018-01-06 21:04:03 -06:00
Nathaniel Nicandro
f42a22c586
Update jupyter--ioloop
to take into account changes in with-zmq-poller
...
Namely that `current-zmq-poller` is no longer available and the first argument of `with-zmq-poller` will be bound to a poller object.
2018-01-06 21:03:37 -06:00
Nathaniel Nicandro
50fb035862
Call inhibit-read-only
in jupyter-repl-replace-cell-code
2018-01-06 19:56:57 -06:00