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

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 commented Jan 3, 2018

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

@takluyver
Copy link
Member Author

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

@Carreau
Copy link
Member

Carreau commented Jan 4, 2018

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

Copy link
Member

@Carreau Carreau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@takluyver
Copy link
Member Author

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

@Carreau
Copy link
Member

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
@takluyver takluyver deleted the use-the-force branch January 4, 2018 12:26
@gabriellima
Copy link

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

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 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
Development

Successfully merging this pull request may close these issues.

None yet

4 participants