[IPython-dev] greedy completer breaks useful completions - fixable?

Zachary Pincus zachary.pincus at yale.edu
Mon Apr 2 17:46:09 EDT 2012

Hi all,

The normal ipython tab-completer is pretty useful in that one can do things like:
to get a list of b's attributes while writing out the function call. Similarly,
will list the documents in the cwd. 

However, after enabling the "greedy completer", very useful in its own right, this behavior goes away. e.g.
gives nothing.

This comes down to the difference between DELIMS and GREEDY_DELIMS in IPython/core/completer.py:183.

Is there any way that the greedy completer could have a larger set of delimiters? Though, in some sense the current GREEDY_DELIMS is already too large a set, as it includes the space char, which causes the following problems:
def a(b,c): return b+c
a('a','b').[TAB] # works
a('a', 'b').[TAB] # doesn't work -- the space breaks the completer.

Is there any to make the greedy completer to be a bit smarter without it having to be a full python parser? Maybe some logic  about what to do with balanced vs. unbalanced parens/braces might be appropriate? This sort of thing would fix both of the problems above.

If people agree this is feasible, I could look into a patch, but I'm curious if anyone's tried/failed at this before...


More information about the IPython-dev mailing list