Commit graph

114 commits

Author SHA1 Message Date
dickmao
f4d301d8c9 Cleanup save-before-quit logic, and polymode kill buffer bugfix
Before: Exit emacs with modified notebooks.  Be asked "You have
unsaved notebooks.  Discard changes?"  Respond no, and manually figure
out which notebooks haven't been saved.

After: Exit emacs with modified notebooks.  Be asked "Save A?".
Respond yes.  Quit without further ado.

Also, bugfix killing of buffers in polymode.  Must kill host buffer,
not indirect buffers.
2019-05-07 09:54:20 -04:00
dickmao
1da03d69f6 Stop bug, Image bug
Initial SIGTERM prompts server to dutifully shutdown kernel, but
another SIGTERM necessary to kill server.  Perhaps ipython changed
since the last time I tested this.

Ipython doesn't send a display_data message upon initial plot
request.  This is probably our bug, or is it?  Document this bug in an
ecukes test.

Also enforce emacs version >= 25
2019-04-29 13:15:53 -04:00
dickmao
921b3a94e4 need to see websocket output of eldoc call 2019-04-14 14:39:46 -04:00
John Miller
5736cb3716 Fortify tests, tweak cursor motion in notebooklist buffers. 2019-04-03 17:34:37 -05:00
dickmao
7cb37f4093 add diagnostic to eldoc test failure 2019-04-02 11:00:31 -04:00
dickmao
234cf391f9 Polymode
M-x customize-group RET ein
Toggle Ein:Polymode

Avoid trying to emulate jump-to-definition, eldoc, and autocompletion
functionalities that Elpy will always do better.

Fixes #497 #482 #418
2019-04-02 09:35:17 -04:00
John Miller
419a74ce67
Connect features (#492)
* Testing for shared eval and connecting buffers.

* Forgot the feature.

* Need a small delay to make sure code is evaluated.

* Testing for shared eval and connecting buffers.

* Forgot the feature.

* Need a small delay to make sure code is evaluated.

* Add scenario for company completion in a connected buffer.

* Works better if we test completion first.

* Update ipython version tested in travis.

* Stab in the dark to fix travis erroring under ipython 6.x

* Revert "Stab in the dark to fix travis erroring under ipython 6.x"

This reverts commit 7255d31fdb.
2019-03-27 15:53:47 -05:00
dickmao
188b2c0dec Toggle output (C-c C-e) should also invalidate footer
Attempt fixing longstanding annoyance whereby `C-c C-e` leaves a
peachpuff or pink newline when toggling output with nonempty stderr.
2019-03-08 18:33:15 -05:00
John Miller
80306130cf
Merge pull request #475 from dickmao/ob-ein-reconnect-kernel
reconnect kernel if necessary under org-ctrl-c-ctrl-c
2019-02-26 19:51:14 -06:00
dickmao
7ba5a0d5d3 Be less opaque about unfound jupyter executable
Fixes #473
2019-02-26 18:04:50 -05:00
dickmao
dd01c4578c reconnect kernel if necessary under org-ctrl-c-ctrl-c
when `C-c C-c`, reconnect to kernel if it disconnected
2019-02-26 17:58:42 -05:00
dickmao
a4d591255a maybe matplotlib needs warming up 2019-02-22 00:18:13 -05:00
dickmao
4f468ee5f7 Singleton
We can't be certain when the shared output cell can be safely turned
over to the next org block.  I have witnessed `display_data` updates being
received *after* both the `execute_result` and `execute_reply`
messages.  As a HACK, we `run-at-time 2` seconds the turning over of
the cell to accommodate any eleventh hour straggler display_data's.
2019-02-21 23:14:11 -05:00
dickmao
0f7f8b14cd Test C-c ' 2019-02-20 11:50:46 -05:00
dickmao
2f19904fe7 travis buttressing 2019-02-19 15:29:18 -05:00
dickmao
ed6482096e Add ob-ein tests
Also, speed up login and other cleanups
2019-02-19 10:06:15 -05:00
dickmao
fbda27ba7f Surface curl errors
In light of #425 and #456, provide more guidance on curl errors.

Also, clean up eldoc stub.  Leveraging elpy's eldoc perfection seems
the only sensible choice, however.
2019-01-21 13:42:35 -05:00
John Miller
624e9549ef
Merge pull request #444 from dickmao/undo-default-true
Enable undo by default
2018-12-29 17:15:06 -06:00
dickmao
97997798d1 fix a test now that undo defaults true 2018-12-28 22:38:52 -05:00
dickmao
e5fdb91b8d itertools.accumulate not in python2
also fix an install error
2018-12-28 21:45:12 -05:00
dickmao
129afa5fb4 Respect cursor_start and cursor_end in matches
The :cursor_start and :cursor_end fields tell us whether we need to
prepend the prefix ourselves.

Fixes #436
2018-12-28 21:14:11 -05:00
dickmao
bead667ee0 Clean up multilang
Do not assume python... leverage ESS to improve R interaction.
Fix both undo and fontify in the presence of toggling cells (`C-c
C-t`)
Fix and test switching kernels
2018-12-08 21:25:48 -05:00
dickmao
f0984eab55 jupyterhub basic (PAM only)
`ein:login` or `ein:notebooklist-login` is the preferred way to access
jupyterhub, although `ein:jupyterhub-connect` is still autoloaded.
2018-12-04 18:31:44 -05:00
dickmao
36727c9415 new notebook needs more time 2018-12-02 17:11:55 -05:00
dickmao
52ac49cc5e fortify travis defences 2018-11-28 21:29:32 -05:00
dickmao
d4ef4ed81c Allow disabling of autocomplete
```
M-x customize-group RET ein-completion
```
Set `Ein:Completion Backend` to `ein:use-none-backend`, Set `State` to
`Save for Future Sessions`.

Also use `featurep` and `with-eval-after-load` to clean up the
subpackage requiring gymnastics.
2018-11-28 17:45:23 -05:00
John Miller
07bc906df9 Maybe using the right name for the map will help.
Sigh.
2018-11-15 13:53:22 -06:00
John Miller
a186c52fd1 Wouldn't it be interesting if this actually worked? 2018-11-14 19:00:27 -06:00
John Miller
6a23dded5a Update tests for change in notification messages. 2018-11-13 20:58:43 -06:00
dickmao
6ca6752319 C-c C-q improved visual feedback
As `ein:notebok-kill-kernel-then-close-cmmand` must wait for the
server to delete the session, the buffer wouldn't disappear right
away, leaving the user nonplussed whether the `C-c C-q` took.  Display
a status message "Ending session" with a modest animation instead.

Also add a "Stop" test for notebooklist.  Sorry about breaking "Stop"
in ee3b0f0
2018-11-10 00:09:44 -05:00
John Miller
e6d377bad0 Update test scenario one more time. 2018-11-08 11:56:47 -06:00
dickmao
901748dc49 this is a debug message, not a verbose 2018-11-08 11:36:10 -06:00
dickmao
270f157751 squash one of possibly many bugs that could cause intermittent travis failure 2018-11-08 11:36:10 -06:00
dickmao
b4c51b46b9 try one more time with new notebook not being ready quickly enough in test
and fix PR #393
2018-11-08 11:36:10 -06:00
John Miller
ea90c4a3e2 Are double slashes confusing the test?
Let's push and find out!
2018-11-08 06:33:26 -06:00
John Miller
18c997c43f Update tests for change in notification message. 2018-11-08 06:05:22 -06:00
dickmao
84fa177a1e When I C-c C-c also C-c C-r if necessary
If user wants to execute cell, and the connection is down,
automatically reconnect, then execute the cell.
2018-11-06 18:36:46 -05:00
dickmao
0e29c39929 Fixes #356
Unforeseen "timestamp" extension breaks undo
2018-11-06 13:26:33 -05:00
dickmao
ee3b0f095c Follow-up to cleaning up websockets
Renaming of functions with better understanding of reconnects.  Under
the original logic, reconnecting blithely created a new session if
the original no longer existed.  Now it will alert the user when this
happens.

Also hopefully fixes #381 as there was a bug of missing argument not
being caught by lisp's undisciplined typing.
2018-11-04 21:38:20 -06:00
John Miller
85d80f4394 Merge branch 'fix-oinfo-errors' 2018-11-02 16:16:39 -05:00
dickmao
66c9c7a7c6 redo the test of remote doesn't have ein 2018-11-02 12:06:59 -04:00
dickmao
5023b0796b Reconnect is not restart #377
Upon disconnection, the jupyter server apparently returns the same kernel for a given
notebook path input.  So reconnect is a thing, and restart is very
distinct from that.

Fixes #377
2018-11-02 11:32:12 -04:00
dickmao
66e23acf3b a test for eldoc 2018-11-02 00:00:10 -04:00
dickmao
db2856f445 Restart if kernel still alive needs to work 2018-11-01 20:08:10 -04:00
dickmao
d621944797 Clean up websocket callbacks
Coursera appears to kill websockets every minute or so, and I'm
observing firsthand the buggy behaviors described in #356.  This PR
cleans up the websocket code and kernel restart logic.  Removed
backwards compatibility for the v2 messaging api
as keeping it in the presence of the refactoring would make it more
broken that it already was.
2018-10-31 23:38:45 -04:00
dickmao
35ccc3de34 Bug #369
6d42e0e771/lisp/ein-notebook.el (L419)
2018-10-31 03:51:50 -04:00
dickmao
b950bd3a4c Fix "Kernel is busy..." bug
One line change to fix header not updating after cell execution
(keeps saying "Kernel is busy").

The bug does not manifest when running with `ein:debug` true since
EMACS's display loop updates more frequently with debug messages.

In tracking this bug, noticed eldoc support isn't quite there.
`__import__('ein').print_object_info_for(%s)` appears in
`ein-completer` and `ein-pytools`, and is invalid python syntax
afaict.  Took a few steps to make it whole, but incomplete.
2018-10-27 23:04:04 -04:00
dickmao
0490031ec8 Sane File Navigation
As emacs users we prefer and have the luxury of fuzzy file navigation
via ido and projectile.  From a notebook or notebooklist buffer, the commands

`C-c C-f` ein:file-open
`C-c C-o` ein:notebook-open

offer an ido alternative to point and click navigation.

To populate the ido lists, retrieving the content hierarchy is on by
default.  Two custom variables determine how wide and deep the content query
probes (currently at 2 levels deep and 6 directories wide).  Set both
to zero to turn off.

tkf half finished code to quickly go from local file buffers to notebook
mode via `C-c C-z` or `C-c C-o`.  This is now possible.  EIN will
start the server from a suitable parent directory of the visited file.

Enable ido completion for `notebooklist-login`.

Remove the albatross `ein-loaddefs.el` in favor of more standard
`ein-autoloads.el` that is not git tracked.

Convenience `make install` from git source (local alternative to
melpa).
2018-10-26 18:40:19 -04:00
dickmao
0345ed0b33 Try to address windows NT unseen. Add osx. Add ipython 7.0.1. 2018-10-20 00:12:34 -04:00
dickmao
461b268eea retry kernelspecs 403 2018-10-18 19:05:17 -04:00