[IronPython] [wingide-users] Using Wing IDE with IronPython - autocomplete for .NET objects (PI file generator)
Cenovsky, Lukas
lukas.cenovsky at radiantsystems.com
Wed Apr 29 16:57:10 CEST 2009
Would be nice to have something similar for vim :-)
--
-- Lukas
> -----Original Message-----
> From: users-bounces at lists.ironpython.com
> [mailto:users-bounces at lists.ironpython.com] On Behalf Of Michael Foord
> Sent: Wednesday, April 29, 2009 4:45 PM
> To: Wing Users
> Cc: Discussion of IronPython
> Subject: Re: [IronPython] [wingide-users] Using Wing IDE with
> IronPython - autocomplete for .NET objects (PI file generator)
>
> Hello all,
>
> Attached is an updated script for generating PI files to provide
> autocomplete on standard .NET objects.
>
> It now handles all the standard .NET member types (including static
> properties, enumeration fields, indexers, events and so on).
>
> It also recurses into sub-namespaces generating new pi-files
> for all of
> them.
>
> This script is hardcoded to add references to, and then generate PI
> files for:
>
> System
> System.Data
> System.Drawing
> System.Windows.Forms
>
> It generates 90 pi files (90 namespaces) taking up 24mb! The
> autocomplete it provides is awesome though. :-)
>
> I had to do a fair bit of violence to the standard
> generate_pi.py script
> so I *doubt* it is desirable to merge it back in. Obviously
> very happy
> for this to be included with Wing if you want, or merged if
> you think it
> is worth it. Is it ok for me to offer this for download from
> my site? If
> I make further changes I will email this list.
>
> The big thing to add is the return type for methods.
>
> Is it possible to specify return types for properties? (Currently any
> attribute without an obvious parallel in Python I have turned into a
> property in the PI files).
>
> The only real caveat with the current script (that I am aware
> of - bug
> reports and contributions welcomed) is that None is a common
> enumeration
> field member. This is invalid syntax in Python, so I rename
> these to None_.
>
> There are quite a few minor changes sprinkled through the code - plus
> the __main__ part of the script is very different. I have
> tried to mark
> changes with a # CHANGE: comment, but it should be relatively
> amenable
> to diffing anyway...
>
> For reference I was using IronPython 2.0.1, with .NET 3.5
> installed and
> Wing 3.2beta 1.
>
> All the best,
>
> Michael Foord
>
> Michael Foord wrote:
> > Hello all,
> >
> > I've created a modified version of the 'generate_pi.py' which
> > generates the interface files for .NET libraries. It is attached.
> >
> > At the moment it generates PI files for the following assemblies /
> > namespaces (hardwired at the bottom of the code):
> >
> > System
> > System.Data
> > System.Drawing
> > System.Windows.Forms
> >
> > To run it, create a new directory and add this to the
> 'Interface File
> > Path' (File menu -> Preferences -> Source Analysis -> Advanced ->
> > Insert).
> >
> > Then from the command line switch to this directory (if you are on
> > Vista you will need to run cmd with admin privileges due to
> a defect
> > explained below). Execute the command:
> >
> > ipy generate_pi_for_net.py
> >
> > This generates the pi files. It doesn't work *as well* on 64 bit
> > windows because the .NET XML help files (or whatever they
> are called)
> > are in a different location so the docstrings are not
> always available
> > - which is why I am not just distributing the pi files yet.
> >
> > The script doesn't yet understand static properties on
> classes - so it
> > actually *fetches* static properties rather than looking at the
> > descriptor (which is available in the class __dict__ so
> should be easy
> > to fix). This is what causes inadvertent registry lookups etc and
> > therefore requires admin privileges.
> >
> > It doesn't yet understand multiple overloads. This may require a
> > change to Wing or may not matter.
> >
> > It isn't yet able to do anything with the information about return
> > types - which would allow Wing to know the type of objects
> returned by
> > methods. This may be easy to add?
> >
> > It is late so I am going to bed. At some point I will explain the
> > simple changes I had to make to the standard generate_pi.py script
> > (although they are mostly straightforward). I will also do further
> > work on it as it will be very useful to me...
> >
> > All the best,
> >
> > Michael
> >
> >
> --------------------------------------------------------------
> ----------
> >
> > _________________________________________________
> > Wing IDE users list
> > http://wingware.com/lists/wingide
>
>
> --
> http://www.ironpythoninaction.com/
>
>
More information about the Ironpython-users
mailing list