Closed yatsky closed 5 years ago
Commit 55da136a271295153e61ef8f1fb834c2153f1396 gets rid of the error. Interestingly, although ein:polymode
is active and ein:completion-backend
is telling ein not to use any of its custom backends, code in ein-ac.el
is still being executed. Part of the code is a call to cl-ecase
which is generating the error you see. Everything is wrapped in a call to deferred
, which sends most of the useful debugging information (like an actual backtrace) into la-la land.
I haven't merged this into master just yet as based on my limited testing it looks like this gets some of the desired completion behaviour back, but not all. ein-ac.el
is still overriding some of the behavior provided by jedi
and python-mode
.
Removing ein's home-grown support for auto-complete
is a solution - but I prefer to deprecate functionality over outright deletion. I'd like to come up with a suitable solution (and maybe even some test cases) before merging anything into master.
On that note - I see you are downloading from stable. Note that with travis-CI the master branch will generally be just as stable, if not more so than any tagged releases.
Thanks @millejoh . It's great to know that the issue has been found and solved.
So if I want to use the master branch, do I need to manually install it or is it possible to use MELPA to install the master branch? Thanks!
Problem description
I'm not very famaliar with the technicalities but will try my best to describe it.
As per instructions in the ein doc, I set "ein:use-none-backend" and installed jedi in the conda environment.
I can confirm that auto-completion works when I edit a single .py file (I can get a pop-up list). However, when I open a notebook, at first the auto-complete minor mode is on, which I can see from the mini bar, then when I type something like
pandas.
, the auto-complete minor mode disappears and give me this error messageauto-complete error: (error cl-ecase failed: ein:use-none-backend, (ein:use-ac-backend))
.When I run
M-x auto-complete-mode
/again/, and try to run the same command, then I will get this errordeferred error : (error "cl-ecase failed: ein:use-none-backend, (ein:use-ac-backend)")
.I tried to use EIN's debug mode but had no luck. Everything looks normal until the error message was logged.
Steps to reproduce the problem
I did
pip install jedi
in the conda environment a long time ago. Install EIN from MELPA. Install Jedi.el via MELPA. RunM-x jedi:install-server
in Emacs. RunM-x set-variable RET ein:polymode RET
. Setein:polymode
tot
. Restart Emacs. RunM-x ein:run
. Open a notebook. RunAnd get the error message
auto-complete error: (error cl-ecase failed: ein:use-none-backend, (ein:use-ac-backend))
.Here's my jedi settings.
Here's my ein settings.
System info: