Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip our own Python completions when using Jedi #10969

Merged
merged 3 commits into from Jan 4, 2018

Conversation

@takluyver
Copy link
Member

@takluyver takluyver commented Jan 3, 2018

cc @Carreau

At present, we combine our own completions with those from Jedi. This means we won't catch anything that Jedi is missing, making it harder to eventually drop our own completion machinery.

This makes the use_jedi option switch between Jedi and our own completion machinery, so by default the Jedi completions will be used, and our own completions will not. If people experience problems, they can configure Completer.use_jedi = False to go back to our completion machinery for now (and hopefully file issues so we're aware of the problems).

I also got rid of a parameter which doesn't appear to be used anywhere.

@Carreau
Copy link
Member

@Carreau Carreau commented Jan 3, 2018

Seem reasonable to me.
The test failures looks like jedi is not working. Strange.

@takluyver
Copy link
Member Author

@takluyver takluyver commented Jan 3, 2018

Some tests assumed our own completion machinery was in use. I've fixed them, but not very elegantly.

@Carreau
Copy link
Member

@Carreau Carreau commented Jan 4, 2018

Do you want to have that on the 5.x branch ? or 6.x only ?

Carreau
Carreau approved these changes Jan 4, 2018
Copy link
Member

@Carreau Carreau left a comment

Feel free to self-merge after choosing 5.x or 6.x

@takluyver
Copy link
Member Author

@takluyver takluyver commented Jan 4, 2018

5.x doesn't use Jedi, right? So this should be for 6.x.

@Carreau
Copy link
Member

@Carreau Carreau commented Jan 4, 2018

5.x doesn't use Jedi, right? So this should be for 6.x.

Ah you are right. I need to wake up.

@Carreau Carreau added this to the 6.3 milestone Jan 4, 2018
@Carreau Carreau merged commit 7d533c3 into ipython:master Jan 4, 2018
2 checks passed
@takluyver takluyver deleted the use-the-force branch Jan 4, 2018
@gabriellima
Copy link

@gabriellima gabriellima commented Jan 17, 2018

I think there's another "bug". Ipython is doing case-insensitive completion.

If I do %config Completion.use_jedi = False I "temporaly" fix this issue.

Ipython 6.2.1
ipykernel 4.8.0
jedi 0.11.1

@takluyver
Copy link
Member Author

@takluyver takluyver commented Jan 18, 2018

Can you open a new issue about that? I suspect it's deliberate-ish that Jedi does case-insensitive completions, but ideally we could be smarter about it. I think IPython's own machinery tries to do case-sensitive completions first, and then case-insensitive if there were no matches.

@reka18
Copy link

@reka18 reka18 commented Mar 11, 2018

This issue has still not been resolved as of:
iPython 6.2.1
iPyKernel 4.8.1
jedi 0.11.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants