[PySide] Proposal for "Visual tool to fast edit type system files" -- a Pyside idea

higery shoulderhigher at gmail.com
Tue Mar 27 17:24:13 CEST 2012


The following is my GSOC2012 proposal although in a very preliminary way, I
will
appreciate anyone can make some suggestions about this proposal.



Proposal for "Visual tool to fast edit type system files"


Abstract
-----------------
Typesystem file is an important XML file used by API Extractor of Pyside to
save information of how the API should be exported to the chosen target
language.
To support different kinds of complex target languages, Pyside typesystem
file
must support many simple or complicated meta information, thus it's a
little
difficult for developers to edit these pure typesystem files, so it's very
significant
to write a visual tool to fast edit typesystem files. We can develop an
Eclipse plugin
to fast implement such kind tool.

Introduction
------------------
Actually, Eclipse already has a very simple XML editor source code, which
only support
highlight of the specified schema. To fast implement such kind tool, we can
reuse this
source code and add all type system schemas which the typesystem files
support. The
API Extractor Type System contains about 8 parts, e.g. specifying types,
manipulating
Object and Value Types, modifying functions, modifying arguments, etc. , so
we can
support these features step by step. In the mean while, our tool should
allow users
insert code in a quick and intelligent way like Eclipse IDE.

What's more, in future, if our tool is developed in a good status, we can
add WYSIWYG
feature to it -- we can import EMF framework to our tool, thus we can drag
and drop an
element to a panel, at the same time, generating corresponding snippets
code of the type
system to our typesystem file.

Milestones
------------------
The following is my week-by-week plan:
Week 1: investigate current API Extractor and collect the detailed
requirements about
what kind of tool should be implemented, from reading the source code, and
the
developer's ideas
Week 2: investigate the Eclipse XML editor source code and make an initial
solution
Week 3: easy beginning - support typesystem, load-typesystem,rejection,
Week 4: do more - support primitive-type, enum-type, namespace-type,
reject-enum-value,
value-type,object-type,interface-type,container-type,custom-type,function
Week 5: support inject-code,
modify-field,modify-function,add-function,conversion-rule
Week 6: support modify-argument,remove,access,rename
Week 7: support conversion-rule,remove-argument,rename to,
remove-default-expression,
replace-default-expression,replace-type,define-ownership,reference-count,replace-
value,parent
Week 8: support suppress-warning, extra-includes,inlude
Week 9: support template,insert-template,replace
Week 10: support conversion-rule,
native-to-target,target-to-native,add-conversion
Week 11: support inject-documentation,modify-documentation
Week 12-13: enhance this tool, submit source code, write documentations,
and so on.


About me
--------------------
I'm an undergraduate from China and I'm preparing for my computer science
and technology
bachelor degree in USTB (University of Science and Technology Beijing).
Java and Python
is the main programming language when I write programs and software.
During my coding days, I’m getting to know more and more about the
Open-Source/FOSS,
especially its spirits-share, collaborate, make friends. Every time I find
an excellent
solution about some problems occurred to me, I become so excited and
learned a lot from
the process of problems finding-reporting-solving.


I joined gsoc2011 last year and took one Python idea as my summer project,
you can take a
look at what the project does via python wiki page :
http://wiki.python.org/moin/SummerOfCode/2011/SetuptoolsFeatures,
and you also can know more through the my blog for gsoc:
 http://higery.wordpress.com/

Contact Info:
# Name: Xu Dehai(You can call me with my English name-higery)
# Blog: http://higery.wordpress.com/
# IRC: higery on irc.freenode.net



--------
Best wishes,
higery
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20120327/e6b1c5eb/attachment.html>


More information about the PySide mailing list