Cenovsky, Lukas wrote:
Would be nice to have something similar for vim :-)
Go for it. :-)
Michael
--
-- 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
--
http://www.ironpythoninaction.com/
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com