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.

Best,
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