Previous tests were failed because undo was not reset after the
execution callbacks modified the buffer. This is fixed by calling
ein:notebook-empty-undo-maybe via event in all the callbacks.
Previous change was not complete since the test does NOT fail.
The test must fail because the test was for `full' undo but
actually it was tested against normal undo.
It turned out let binding of buffer-undo-list in ein-cell.el
was the right way to do it, since EWOC does some buffer
modification outside of the pretty printer. Therefore, setting
inhibit-read-only and buffer-undo-list in the pretty printer
makes no sense. Thus, they are removed from ein:notebook-pp.
This means that wrapping EWOC functions with let binding of
buffer-undo-list is essential. Meaning that what I wrote in
the FIXME ein:notebook-pp was wrong. Therefore,
ein:notebook-empty-undo-maybe cannot be called in ein:notebook-pp
and ein:notebook-empty-undo-maybe must be called in every single
functions that modifies buffer via EWOC.
Tests for three cases of undo configuration are added.
These test still fail:
ein:notebook-undo-after-execution-1-cell/yes
ein:notebook-undo-after-execution-2-cells/yes
As it seems that some smartrep keybinds does not work properly in
MuMaMo-enabled buffer, this change provides some shortcuts for these
keybinds.
I sent a pull request to smartrep.el regarding this issue:
myuhe/smartrep.el#7
There should be no functional change by this change.
This makes it easier to change the keymap while running EIN.
I can just evaluate the let clause. In the previous version,
I couldn't do that because rebinding the keymap does not alter the
keymap used in the running mode.
Fix the following error:
ein:notebooklist-ask-url-or-port:
Symbol's value as variable is void: ein:@connect
It is raised when ein:notebooklist-open is executed at first time
because ein-connect is not imported at that point.
The code for resetting process-query-on-exit-flag is not executed and
it works fine without it. I think this flag was reset in the old
version because the buffer is killed in the query callback.
1. `process-query-on-exit-flag' reset does not work because
`kill-buffer' is called in the callback.
2. data is set to the value of which `kill-buffer' is returned.
3. ein:query-ajax-timeout is used after the buffer is killed.
4. `kill-buffer' was called twice. As delete-buffer calls the
callback which kill buffer, killing buffer in the timeout
callback is not needed.