Nathaniel Nicandro
4edf67655c
Use jupyter-repl-indent-line
when the kernel does not provide identation
2017-12-31 11:39:32 -06:00
Nathaniel Nicandro
1754c8ce3d
Add rudimentary history navigation
2017-12-31 10:17:18 -06:00
Nathaniel Nicandro
d9ec556579
Use the jupyter-repl-do-at-request
macro
2017-12-31 10:15:19 -06:00
Nathaniel Nicandro
4ad7cd299e
Use predicate functions instead of checking text properties
2017-12-31 10:12:50 -06:00
Nathaniel Nicandro
3325ae511a
Add missing jupyter-repl-cell-request
function
2017-12-31 10:11:50 -06:00
Nathaniel Nicandro
50a2464241
Use overlays for prompts and cleanup how they are inserted
2017-12-31 10:09:45 -06:00
Nathaniel Nicandro
619bf87c69
Handle edge cases in jupyter-repl-goto-request
2017-12-31 09:52:21 -06:00
Nathaniel Nicandro
126fb97b2d
Generalize insertion of mimetype data
2017-12-31 09:37:56 -06:00
Nathaniel Nicandro
557e97c179
Fix subprocess sentinel event checking
2017-12-30 23:35:04 -06:00
Nathaniel Nicandro
c7c200d571
Heartbeat channels are implemented with timers instead of a subprocess
2017-12-30 23:32:17 -06:00
Nathaniel Nicandro
b57040e96c
Fix wrong function name
2017-12-28 09:47:16 -06:00
Nathaniel Nicandro
8ac10186f2
Change the way prompts are displayed
...
Allow for visually displaying a cell as busy when submitting the cell's code
and only remove the busy status when the cell receives its execute reply. This
allows for queuing of code cells instead of having to wait for a code cell to
complete.
2017-12-28 09:45:03 -06:00
Nathaniel Nicandro
397e0526d0
Use text property functions instead of field
based ones
2017-12-28 09:43:36 -06:00
Nathaniel Nicandro
082bf0e40c
Use jupyter-repl-newline
2017-12-27 22:21:10 -06:00
Nathaniel Nicandro
3270fdf141
Refactor execute result handler
2017-12-27 22:17:38 -06:00
Nathaniel Nicandro
27d4283331
Add code sections
2017-12-27 21:55:58 -06:00
Nathaniel Nicandro
fc5b58e355
Add company
backend handler when initializing jupyter-repl-mode
2017-12-27 21:55:16 -06:00
Nathaniel Nicandro
9ba4c4125f
Tag prompt cells with their requests
...
- Add a text property `jupyter-request` to the start of an input cell which
gets filled with the `jupyter-request` object returned by the
`jupyter-request-execute` method. This way REPL cells can be queued behind
long running calculations and their proper location found when the kernel
sends back output or results for the request.
2017-12-27 21:55:04 -06:00
Nathaniel Nicandro
0937846453
Use the right function name
2017-12-27 21:50:33 -06:00
Nathaniel Nicandro
0a3fb27343
Inhibit change hooks when truncating buffer
2017-12-27 21:47:40 -06:00
Nathaniel Nicandro
c43eea4938
Do not rely on any markers to find positions in the buffer
2017-12-27 21:47:00 -06:00
Nathaniel Nicandro
58c810e187
Cleaner implementation of getting/replacing cell code
2017-12-27 21:46:15 -06:00
Nathaniel Nicandro
361a32a165
Introduce cell motions and predicates
2017-12-27 21:28:07 -06:00
Nathaniel Nicandro
42002e3ac3
Let buffer change functions handle continuation prompts
2017-12-27 21:23:40 -06:00
Nathaniel Nicandro
bd92ce16bb
Use indent-line-function
instead of binding TAB
2017-12-27 21:21:33 -06:00
Nathaniel Nicandro
8603c0226e
Implement buffer change functions
...
- After a buffer change, check to see if a continuation prompt needs to be
inserted
- Before a buffer change, check to see if a continuation prompt needs to be
removed
2017-12-27 21:17:46 -06:00
Nathaniel Nicandro
d21c7a2bed
Clean up REPL buffer initialization
2017-12-27 21:15:59 -06:00
Nathaniel Nicandro
3071b64611
Clean up how text is inserted in REPL buffer
2017-12-27 21:13:23 -06:00
Nathaniel Nicandro
c3c3f7c44e
No underscores
2017-12-27 21:07:36 -06:00
Nathaniel Nicandro
e9e35cb177
Remove comments
2017-12-27 00:34:19 -06:00
Nathaniel Nicandro
06fee9c57a
Properly initialize kernel client with a kernel manager
2017-12-27 00:32:55 -06:00
Nathaniel Nicandro
363f59ef76
Remove time decoding from main loop in client subprocess
2017-12-27 00:32:00 -06:00
Nathaniel Nicandro
59a2a468a7
Only use control channel in kernel manager
2017-12-27 00:30:47 -06:00
Nathaniel Nicandro
a1fc86af0a
Properly initialize kernel manager instances
2017-12-27 00:26:12 -06:00
Nathaniel Nicandro
33dd60942e
Cleanup kernel manager
2017-12-27 00:21:20 -06:00
Nathaniel Nicandro
72fc893164
Return nil when prefix is nil in jupyter-find-kernelspec
2017-12-27 00:18:34 -06:00
Nathaniel Nicandro
a93204341a
Add some defaults to a history request
2017-12-27 00:18:00 -06:00
Nathaniel Nicandro
714b23c12f
Guard against empty messages when flags are used
2017-12-27 00:17:03 -06:00
Nathaniel Nicandro
6721f91b08
Only attempt to decode time when a date field exists
2017-12-27 00:16:11 -06:00
Nathaniel Nicandro
785c8242d8
Fix time decoding
2017-12-27 00:13:43 -06:00
Nathaniel Nicandro
f6a3690c59
Add some debug statements
2017-12-27 00:12:39 -06:00
Nathaniel Nicandro
d28dc7a3af
Add a sentinel to the client's ioloop
2017-12-27 00:00:59 -06:00
Nathaniel Nicandro
c377529d73
[WIP] A working REPL
2017-12-23 15:34:28 -06:00
Nathaniel Nicandro
46a449c496
Raise error when connecting channel with an unknown channel type
2017-12-22 00:54:18 -06:00
Nathaniel Nicandro
c6445530c7
HB channel process ignores signals
2017-12-22 00:53:18 -06:00
Nathaniel Nicandro
5b2afb3ea0
[WIP] Kernel manager
2017-12-22 00:50:56 -06:00
Nathaniel Nicandro
2616f5d49b
Decode datetime into time objects, add more convenience functions
2017-12-22 00:38:03 -06:00
Nathaniel Nicandro
6c6ad568d6
Use lexical-let
when needed
2017-12-22 00:36:49 -06:00
Nathaniel Nicandro
b82665f889
Collect messages from kernel before sending to parent process
...
Instead of directly sending every received message to the parent emacs process
at the moment we receive it. The messages are stored in a queue. Only when we
do not receive a message from the kernel for two polling periods or when the
queue is full will the messages be sent to the parent process. When the
messages are sent, they are first sorted by their timestamp and prioritized
based on channel.
2017-12-21 18:20:35 -06:00
Nathaniel Nicandro
e0b5da2580
Just silently drop messages received that were not requested by us
2017-12-21 18:13:49 -06:00