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
_______________________________________________ PySide mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/pyside
