Skip to content
This repository

Tab Completion feature #820

Closed
gasagna opened this Issue September 23, 2011 · 7 comments

4 participants

gasagna Min RK Thomas Kluyver Moritz Emanuel Beber
gasagna

Hi,

Just an idea, would it be possible to have tab completion of functions' arguments names?

Cheers

Davide

Min RK
Owner

Should be possible, I think. We would have to detect that we are inside a function call and identify that function, which I don't think we do, but presumably could.

Example, assuming you have found the function:

import inspect

spec = inspect.getargspec(func)
# only get names of keyword args:
if spec.defaults:
    kwargnames = spec.args[-len(spec.defaults):]
Thomas Kluyver
Collaborator

Having just tested, it seems we already can do that. I tried:

In [6]: def f(kinkajou=True):
   ...:     print kinkajou
   ...:     

In [7]: f(k
Min RK
Owner

good call, it certainly does work. I probably should have checked :). Closing.

Min RK minrk closed this September 23, 2011
gasagna

Yes, but the current behaviour seems to show only optional arguments,

def f(koala, kinkajou=True):
    print "I'm a koala"
f(k
kaiser kinkajou= kron

Why not get completion for all arguments?

Davide

Min RK
Owner
Moritz Emanuel Beber

You can actually, e.g.,

>>> def f(a, b):
...     print a, b

>>> f(a=3, b=4)
3 4

>>> f(b=3, a=4)
4 3

that's using Python 2.7, not sure about earlier versions.

Min RK minrk referenced this issue from a commit September 26, 2011
Commit has since been removed from the repository and is no longer available.
Min RK
Owner

Good call, I had forgotten about that! It does work in 2.6, which is the earliest version supported by IPython. How's this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.