RE: [Pydev-code] Autocompletion in PyDev. A first working version
Brought to you by:
fabioz
|
From: Dana M. <dan...@ya...> - 2004-06-14 17:49:39
|
Fabio,
yeah, there are some rough edges.
I checked PyAlaMode with the same code.
See comments inline:
--- Fabio Zadrozny <fa...@in...> wrote:
> I also couldn't use it. I got the error below when trying to
> autocomplete in
> the following code:
>
> Code:
>
> class Test(object):
>
> def __init__(self):
> self.rara()
>
> def rara(self):
> self.i = 2
> # self. <-- Error on autocomplete here
PyAlaMode didn't know what to do with 'self.' here either and didn't
offer any autocompletion suggestions, so I think ours is at least at
that level
>
> t = Test()
> #t. <-- Error on autocomplete here
>
>
Yeah, looks like what I will have to do with classes based on other
classes is to introspect the superclass(es).
I may have something fixed and in the hopper in a day or so.
I may have to "steal" better Python introspection code (from PyAlaMode
maybe). Mine obviously does not recurse into antecedent classes.
Thanks Fabio!
> Errors:
> Traceback (innermost last):
> File "<string>", line 1, in ?
> NameError: object
>
> Traceback (innermost last):
> File "<string>", line 1, in ?
> NameError: object
>
> Is there something I'm missing to do it work?
>
> []s
>
> Fabio
>
> -----Original Message-----
> From: pyd...@li...
> [mailto:pyd...@li...] On Behalf Of Aleks
> Totic
> Sent: segunda-feira, 14 de junho de 2004 03:47
> To: pyd...@li...
> Subject: Re: [Pydev-code] Autocompletion in PyDev. A first working
> version
>
> Very cool. I fixed a few compile errors: jython lib classpath,
> and inclusion of test directory inside CompletionProcessor, and
> checked it in.
>
> Can you tell me what kind of autocompletion smarts can I expect?
> My first couple of tries failed, I'd like to see it in action.
>
> Aleks
>
> Dana Moore wrote:
> > Checked in a first working version of autocomplete.
> > it only autocompletes '.' and not (yet) '(', but it's getting
> there.
> > If you check out the org.pydev.jython and org.python.pydev.editor
> you
> > should be able to see it in motion.
> > It works this way:
> > 1. The org.pydev.jython plugin wraps jython.jar and a jythonlib.jar
> > (right now this is about 1.1M; I just picked up the
> #JYTHON_HOME/LIB on
> > mymachine and jar'ed it. We can probably do a better and more
> compact
> > one by leaving out some things which just happen to have got swept
> up
> > from my system.
> > 2. At any rate, within that jar are several Python modules which do
> > code introspection (we probablt need to drop them into a source
> > directory and have a build for the lib itself at some point in
> time,
> > but first things first.
> > 3. The PythonCompletionProcessor.java grabs the module being edited
> and
> > comiles the code ahead of the activating partial expression in the
> > buffer:
> > LL 118: interp.exec(theCode);
> > It then pulls up the actiuvating expression
> > LL 119: String xCommand = "theList =
> > jintrospect.getAutoCompleteList(command='"+theActivationToken+"',
> > locals=locals())";
> >
> > and then uses Jython to introspect the code:
> > LL 121 interp.exec(xCommand);
> > creates a PyList from the suggestions:
> > LL 122 PyList theList = (PyList) interp.get("theList");
> > and returns that.
> > LL123 return theList;
> > Which in turn gets turned into autocompletion proposals.
> > What's kind of significant about this is that (I believe) it marks
> the
> > first time that the Java based Eclipse editor has used a facility
> of
> > the (non Java) language being edited as leverage.
> >
> > Going forward, I should like to complete the other things that
> ought to
> > trigger a code introspection (other than the '.' method invocation
> > signifier). Although Parthaum, if you want to give this a go, it
> should
> > be easy do; the code is basically there in
> > PythonCompletionProcessor.java. Right now, "(" is listed as an
> > autocompleter, but it does the wrong thing.
> >
> > I suppose that doing as well as PyAlaMode is probably good enough
> for
> > this spiral, but while we're going down this path, it would be nice
> to
> > have a decent set of CTRL-SPACE expanders/completers as well. For
> > example, if you type in 'sysout'CTRL-SPACE in the java development
> > envt, it substitutes "System.out.println()". and even more
> > sophistication for the phrase "for" which calls up the various
> > potential expansions:
> > for - iterate over array
> > for - iterate over array with temporary variable
> > for - iterate over collection
> >
> > So what other nice expansions can we think of which are Python
> > specific? Maybe an exoander for the venerable expression:
> > if __name__ == '__main__': for one thing, maybe an expander that
> helps
> > with generators and co-routines for another.
> >
> > After completing this I should like to take a look at a "New Python
> > Project" Wizard, unless someone else prefers to cover that.
> >
> > It would be nice to have a sort of a Package Nanny that creates an
> > __init__.py for a package too. Ah, the fun never stops.
> >
> > I am starting to fell comfortable that we will soon be in a place
> wher
> > this might be my prefered editor, especially for enterprise Python
> > coding.
> >
> > So let me know if any of you have trouble with the bits I have done
> > thus far.
> > Happy coding all!
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by the new InstallShield X.
> >From Windows to Linux, servers to mobile, InstallShield X is the
> one installation-authoring solution that does it all. Learn more and
> evaluate today! http://www.installshield.com/Dev2Dev/0504
> _______________________________________________
> Pydev-code mailing list
> Pyd...@li...
> https://lists.sourceforge.net/lists/listinfo/pydev-code
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by the new InstallShield X.
> From Windows to Linux, servers to mobile, InstallShield X is the
> one installation-authoring solution that does it all. Learn more and
> evaluate today! http://www.installshield.com/Dev2Dev/0504
> _______________________________________________
> Pydev-code mailing list
> Pyd...@li...
> https://lists.sourceforge.net/lists/listinfo/pydev-code
>
=====
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/ Dana Moore _/
_/ BBN Technologies LLC _/
_/ M: 240.350.4196 _/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
|