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

Projects
None yet
4 participants
@takluyver
Copy link
Member

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

This comment has been minimized.

Copy link
Member

Carreau commented Jan 3, 2018

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

@takluyver

This comment has been minimized.

Copy link
Member Author

takluyver commented Jan 3, 2018

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

@Carreau

This comment has been minimized.

Copy link
Member

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 left a comment

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

@takluyver

This comment has been minimized.

Copy link
Member Author

takluyver commented Jan 4, 2018

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

@Carreau

This comment has been minimized.

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

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@takluyver takluyver deleted the takluyver:use-the-force branch Jan 4, 2018

@gabriellima

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link
Member Author

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

This comment has been minimized.

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
You can’t perform that action at this time.