##// END OF EJS Templates
Improves detection of whether tab-completion is in a string and supresses Jedi....
Improves detection of whether tab-completion is in a string and supresses Jedi. Refs #10926 and #11530 Jedi results swamp file_matches and dict_key_matches in tab-completion, which is a real nuisance. The logic in the jedi completor tried to catch cases where it was "in a string", but that logic only looked at the previous character, and was a little fragile, breaking in lots of cases such as: './<tab> "mypath/<tab> etc. This seems a bit more robust in that it searchs for the first token in the current parser tree and checks if its value starts with ' or ". This detection of "in a string" then turns of jedi and returns some sanity to the set of matches.

File last commit:

r24687:dc0ceb16
r25487:fb0abc20
Show More
generics.py
30 lines | 707 B | text/x-python | PythonLexer
# encoding: utf-8
"""Generic functions for extending IPython.
"""
from IPython.core.error import TryNext
from functools import singledispatch
@singledispatch
def inspect_object(obj):
"""Called when you do obj?"""
raise TryNext
@singledispatch
def complete_object(obj, prev_completions):
"""Custom completer dispatching for python objects.
Parameters
----------
obj : object
The object to complete.
prev_completions : list
List of attributes discovered so far.
This should return the list of attributes in obj. If you only wish to
add to the attributes already discovered normally, return
own_attrs + prev_completions.
"""
raise TryNext