Commit graph

346 commits

Author SHA1 Message Date
Sam Steingold
14ba9121d7 trivial cosmetic changes
(ein:notebook-toggle-latex-fragment): avoid compile warning by declaring px-preview
(ein:notebook-restart-session-command): more verbose confirmation question
(ein:notebook-worksheet-delete): squash nested when/unless
2019-11-13 12:44:35 -05:00
Tomasz Mieszkowski
9b1d9876bd Add commands to execute all cells above/below current one 2019-11-10 15:40:32 +01:00
John Miller
91b7375dbf
Issue 608 jedi completion (#609)
* ein-ac: Fail silently for unexpected ein:completion-backend values.

Fixes #608, though we really need a test cases for completion in polymode.

* Only define ein ac-sources when the user explicitly sets the backend.

* Test case for issue #608.

* Only test jedi completion when testing polymode.

* Add epc dependency for emacs-jedi.

* Flanging up with travis is always a challenge.

* Forgot to update the scenario.

* Give jedi time to install.

* Add virtualenv to travis OS X build.

Also add some addition TOX environments for future testing cases.

* OS X travis is failing - is it a timeout issue?
2019-10-28 20:28:37 -06:00
John Miller
940387b17b Use correct add-function syntax with lexical variables. 2019-10-12 08:37:46 -05:00
Sam Steingold
448e161068 Avoid dependency on the deprecated package "cl"
Replace `defun*' with `cl-defun', `loop' with `cl-loop',
  `case' with `cl-case', `assert' with `cl-assert',
  `destructuring-bind' with `cl-destructuring-bind',
  `multiple-value-bind' with `cl-multiple-value-bind',
  `equalp` with `cl-equalp`, `defstruct' with `cl-defstruct`
  &c &c &c
Use lexical-binding instead of lexical-let.
Add declarations and defvar to avoid breakage.
2019-10-12 08:37:46 -05:00
Miller
58db03836c company-backends is a buffer-local variable
We have to be careful about setting it globally because that seems to be causing
some conflicts, better to set it at the buffer level when we are opening a
notebook otherwise ein:company-backend may not be activated.
2019-10-06 18:05:36 -05:00
dickmao
1bdb5b0651 Polymode bugfixes
Because global-font-lock-mode will call font-lock-initial-fontify, the
inconsistency caused by nullifying font-lock-function while preserving
font-lock-fontify-buffer-function causes the whole buffer to get
fontified in polymode

Commit a969736 duplicated the before-until advice on
syntax-propertize.  This broke polymode badly, and yet none of my
tests catch this (partly because it's hard to test font-lock).
2019-06-10 19:10:55 -04:00
John Miller
8a6b8aade1
Merge pull request #541 from millejoh/issue-523
Issue 523
2019-05-25 16:39:35 -05:00
dickmao
ceda628f92 Standardize metadata a bit 2019-05-25 11:31:05 -04:00
John Miller
fe3430102c Add documentation, work around smartrep.
I am starting to get annoyed by smartrep...
2019-05-25 10:23:22 -05:00
dickmao
f79a211c6c The only thing necessary for the triumph of evil...
Protect against undo-tree-mode both now and in the future.
2019-05-24 16:39:06 -04:00
Miller
321d0e6c15 ein-notebook: Command to jump to an open notebook buffer.
Per issue #523, add a command that let's user select and switch to an open
notebook buffer.
2019-05-24 14:15:36 -05:00
dickmao
e491ac6f1c Ob-ein Improvements
Bring the org offering to feature parity.
2019-05-20 10:59:43 -04:00
dickmao
6e53d8f1a8 futz with undo.ipynb 2019-05-16 10:15:11 -04:00
dickmao
8738fa5e0a If you see something, say something
Avoid silently failing as in #530 where kernelspec language is unrecognized.
2019-05-16 09:47:24 -04:00
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
John Miller
70845a3411
Use completing-read instead of ido-completing-read. (#514)
* Use completing-read instead of ido-completing-read.

Per @seagle0128 and issue #496.

* lisp/ein-notebook.el:

* Wrap all calls to completing-read with ein:completing-read

Use `ein:completing-read' everywhere we need to do completion as it wraps Emacs
completing-read functionality and tries to use sane defaults.
2019-04-16 10:04:11 -05:00
dickmao
539c3339dd Undo did not account for slideshow
C-c C-d breaks undo.  Fix as follows:

Before: turn on slide indicator via C-c S, toggle type with C-c C-d

After: toggle type with C-c S.

Benefits: Fixes undo, simplifies slideshow operation, elpy users are
accustomed to having C-c C-d be "jump to doc"
2019-04-04 05:45:34 -04:00
dickmao
f34bdf32ff irnb is a kagglism that jupyter doesn't understand 2019-04-02 19:40:34 -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
042cda12a1 spacemacs related #445 #489 #338, etc. 2019-03-16 13:49:58 -04: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
bcbefbe0b9 ein-notebook: Workaround for issue #454
EIN can sometimes lose the reference to the notebook buffer when trying to save
"huge" notebooks. This is a temporary (hah!) workaround until the problem is
better understood.
2019-01-21 07:54:44 -06:00
Sam Steingold
48fa153435 Use standard functionality instead of ad hoc functions
(ein:filter identity ...) ---> (delete nil ...)
ein:filter --> seq-filter
hash-vals --> hash-table-values
hash-keys --> hash-table-keys
2019-01-15 11:26:09 -05:00
dickmao
9825aa39c0 if C-/ is mapped to anything other than native undo, disable undoing 2019-01-11 08:32:51 -05:00
dickmao
126bd6afac kill-buffer-hook getting cloned by org! 2019-01-02 19:54:46 -05:00
dickmao
1a32c5f832 Less wonky toggle latex fragment
Using the raw `org-toggle-latex-fragment` function creates some havoc
with the overlays, resulting in nonfunctional notebooks.  Add some
custom logic to improve behaviour.
2019-01-01 21:16:34 -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
3c18cda125 reverse hunks 2018-12-11 08:48:40 -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
4e8a9b51b5 notebook-mode as a proper minor mode
Previously `notebook-mode` was an ordinary function that called
`notebook-minor-mode` to install `ein:notebook-mode-map`.  Make
`ein:notebook-mode` a proper minor mode via `define-minor-mode`.  This
has a few visible benefits primarily that `describe-mode` or `F1 m` will now
show all the keybindings, and mode-line will reflect.

As a consequence `ein:notebook-mode-hook` is no longer an explicit
`defcustom` (proper minor modes get it for free).  This had been a
dangerous situation as the default hook containing critical functions could be overridden.
2018-11-28 13:31:23 -05: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
e4e0fc4abc Merge branch 'pr-397' 2018-11-08 20:52:29 -06:00
dickmao
270f157751 squash one of possibly many bugs that could cause intermittent travis failure 2018-11-08 11:36:10 -06:00
Sam Steingold
1c6270c425 update the code base to avoid compilation warnings about obsolete functions
call-next-method -> cl-call-next-method
set-slot-value -> (setf slot-value)
*-child-p -> cl-typep
oref <keyword> -> slot-value <symbol>
object-p -> eieio-object-p
Closes https://github.com/millejoh/emacs-ipython-notebook/issues/394
2018-11-08 09:36:35 -05: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
John Miller
47ba0e11c7 ein-notebook: Add alias for the old ein:notebook-reconnect-kernel
John's rule of updates: respect and compassion for the user is
paramount.
2018-11-05 19:56:52 -06:00
John Miller
6438d078fd Merge branch 'pr-382' 2018-11-05 19:48:30 -06:00
Sam Steingold
0bbe4bcf3a add missing iteration arg to the kernel-start call 2018-11-05 09:20:07 -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
Sam Steingold
387d067558 make C-c C-x a prefix key 2018-11-04 15:07:29 -05:00
John Miller
85d80f4394 Merge branch 'fix-oinfo-errors' 2018-11-02 16:16:39 -05: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
d19f696e59 add latex hotkey. need to apply rendering per ewoc lest emacs starts killing buffers 2018-11-01 22:07:05 -04:00
John Miller
c1a8d2c720 ein-notebook: Make eldoc an optional feature.
So I and others can do testing while the less intrepid can continue with things
the way they were.
2018-11-01 20:13:45 -05: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