On Tue, Dec 23, 2008 at 4:57 PM, Chris Lasher <[email protected]>wrote:

> On Tue, Dec 23, 2008 at 3:50 PM, Aaron Griffin <[email protected]>
> wrote:
> > On Tue, Dec 23, 2008 at 1:58 PM, Bram Moolenaar <[email protected]>
> wrote:
> >>
> >> Chris Lasher wrote:
> >>
> >>> I sent this email to [email protected], but I am also sending it here so
> >>> more eyes have a chance to see it.
> >>>
> >>> Vim's omni-completion fails for Python any time a file contains an
> >>> import statement which fails (i.e., any import statement that will
> >>> raise an ImportError). For example:
> >>>
> >>> import notamodule
> >>>
> >>> class Foo:
> >>>     def bar(self):
> >>>         pass
> >>>
> >>> # try omni-completing Foo here <C-x><C-o>
> >>> # then comment out the above import statement and try again
> >>> Fo
> >>>
> >>>
> >>> This bug exists even if the import statement is wrapped within a try,
> >>> except clause, e.g.,:
> >>>
> >>> try:
> >>>     import notamodule
> >>> except ImportError:
> >>>     pass
> >>
> >> I don't think this can be solved.  The completion relies on parsing the
> >> file by Python, thus when parsing fails somehow it doesn't know what to
> >> complete.
> >>
> >> Aaron, is there something that can be done to avoid this problem?
> >
> > Hmm, it may be solvable if I step through each import one at a time
> > and ignore the errors.
> > I'll stick this in my queue of pythoncomplete issues and maybe try to
> > get a new version out after Christmas time. Although, if anyone feels
> > frisky, patches are always welcome :)
>
> To add additional information on this omni-completion bug, I
> discovered that this bug only affects omni-completion when editing the
> file doing the failed import. For example take these two files:
>
> --
>
> #!/usr/bin/env python
> # foo.py
>
> import notamodule
>
> class Foo:
>    def bar(self):
>        pass
>
> # Can't do an omni-complete against Foo here
>
> --
>
> #!/usr/bin/env python
> # spam.py
>
> import foo
>
> # You can, however, omni-complete foo.Foo here, even foo.Foo.bar
>
> --
>
> I'm not sure if this helps but it seemed worth reporting.
>

I came across this question on Stack Overflow and was reminded of this
issue:
http://stackoverflow.com/questions/199180/

Any workarounds, yet? I, myself, haven't dug into the code responsible for
Python completion, so I'm wondering if anyone else has.

Chris

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui