Would be nice to have something similar for vim :-)

--
-- Lukas
 

> -----Original Message-----
> From: users-boun...@lists.ironpython.com 
> [mailto:users-boun...@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/
> 
> 

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to