Progress on project descriptions
diff --git a/newcontributors.php b/newcontributors.php
index ae6d28b..6b9dd1c 100755
--- a/newcontributors.php
+++ b/newcontributors.php
@@ -112,6 +112,8 @@
<div class="homeitem3col">
<h3>Projects for New Developers</h3>
+ <b>THESE PROJECT DESCRIPTIONS ARE UNDER REVISION.</b>
+
<h2>UI Enhancements</h2>
<ul>
<li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%">
@@ -119,7 +121,7 @@
Semantic highlighting
</a>
</td><td align="left">
- Very Challenging
+ Challenging
</td></tr></table>
<div id="semhi" style="display: none; margin-left: 32px;">
<p>
@@ -136,20 +138,25 @@
in the UI thread.
<p>
This project essentially has two parts. One is identifying what types of semantic highlighting would be
- done for Fortran (what are the different types of identifiers?); another would be modifying the Fortran
- editors to support it. <i>It is not necessary to implement semantic highlighting completely:</i>
- For example, you do not need to actually hook up to the Fortran parser and VPG; you can use a mock
- object instead (although you should discuss this with me [Jeff] to make sure its interface is realistic).
- The goal is to <i>prototype</i> semantic highlighting support, i.e., to demonstrate the minimal
- changes needed to support it. Implementing it completely with user customization and a complete
- document model would be impressive but far exceeds the scope of a CS427 project. Even prototyping it
- is demanding: This is a great project if you really want to learn Eclipse (it will be a great project
- to discuss in interviews if you want an Eclipse-related job), but it will be more time-consuming than
- most of the other projects on this list.
+ done for Fortran (what are the different types of identifiers?); the other is modifying the Fortran
+ editors to support it.
<p>
- See org.eclipse.cdt.internal.ui.editor.Semantic*.java for more information.
- I can also point you toward the people that implemented it in CDT, although they are busy, and you
- should not rely on them for help except as a last resort.
+ You will need to implement this in the <i>experimental</i> editor located in the
+ org.eclipse.photran.ui.vpg
+ plug-in (when you run Photran, right-click a file and choose Open With >
+ Fortran Editor (VPG Experimental Features); "EXPERIMENTAL" should be displayed in 36-point
+ letters at the top of the editor window). You will need to create an <tt>IEditorVPGTask</tt>
+ to retrieve the various definitions in the editor, but you will need to use an <tt>IEditorASTTask</tt>
+ to update the display. (Why? How will you map the definitions from the VPG task to the tokens
+ in the AST task? Discuss this with me [Jeff] before implementing it. An imperfect but heuristic
+ solution will suffice.)
+ <p>
+ Most of the CDT implementation is in org.eclipse.cdt.internal.ui.editor.Semantic*.java, but be aware
+ that our infrastructure is quite different from theirs.
+ <p>
+ <b>Bonus Points.</b>
+ Include a global preference page to allow user-customizable coloring and (more importantly) an option
+ to toggle semantic highlighting on and off.
</div>
<li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%">
<a href="javascript:toggle('ca');">
@@ -165,19 +172,32 @@
complex (involving changes to the parser, among other things), only rudimentary support is required
for CS427.
<p>
- This project has two parts.
+ This project has two or three parts, depending on how motivated you are (the third is slightly more
+ difficult but significantly more useful). <i>Keep your code for each
+ part. Each is useful for a different reason.</i>
<ol>
<li> Prototype content assist. Demonstrate what is minimally required to implement content assist
in the editor: What classes have to be changed, and how? You just pop up any arbitrary list of
words (say, <tt>{ "Fill", "In", "This", "List" }</tt>).
<li> Collect a list of identifiers, and use it to fill in the list.
- Ideally, you should use the editor's <i>partitioning</i> (this
- divides the text into regions for syntax highlighting, among other things) to collect this list.
- If you can't do this, you can use the lexical analyzer, but this will be significantly slower.
+ Use the editor's <i>partitioning</i> (this divides the text into regions for syntax highlighting,
+ among other things) to collect this list.
</ol>
<p>
- If you finish both of these tasks and are bored, talk with me [Jeff]; there is a lot more that could be
- done on this.
+ This can be implemented in the main Fortran editor(s)/<tt>AbstractFortranEditor</tt>.
+ <p>
+ <b>Bonus Points.</b>
+ Use the VPG to collect a list of all of the identifiers in a program and their associated scopes.
+ When the user activates content assist, show only those identifiers that are in scope at the
+ cursor position. This must be implemented in the <i>experimental</i> editor located in the
+ org.eclipse.photran.ui.vpg
+ plug-in (when you run Photran, right-click a file and choose Open With >
+ Fortran Editor (VPG Experimental Features); "EXPERIMENTAL" should be displayed in 36-point
+ letters at the top of the editor window). You will need to create an <tt>IEditorVPGTask</tt>
+ to retrieve the various definitions in the editor, but you will need to use an <tt>IEditorASTTask</tt>
+ to update the display. (Why? How will you map the definitions from the VPG task to the tokens
+ in the AST task? Discuss this with me [Jeff] before implementing it. An imperfect but heuristic
+ solution will suffice.)
</div>
<li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%">
<a href="javascript:toggle('mp');">
@@ -187,21 +207,32 @@
Very Easy
</td></tr></table>
<div id="mp" style="display: none; margin-left: 32px;">
- If you know how to use Google and Edit > Paste, you can do this project.
+ If you know how to use Google and Edit > Paste, you can do this project
+ (although you should be very careful about intellectual property/licensing issues).
Still, it has been requested several times and will be immensely useful.
This should be used as a "warm up" project to get acquainted with the editor; if you do this,
- you should also work on another project.
+ you should also work on another project (perhaps auto-indent).
</div>
<li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%">
<a href="javascript:toggle('ht');">
Hover tips containing declaration/type
</a>
</td><td align="left">
- Easy
+ Moderate/Challenging
</td></tr></table>
<div id="ht" style="display: none; margin-left: 32px;">
If you hover your mouse over an identifier in JDT (or CDT), a tooltip window with the declaration
appears. This project would be to implement something similar for Fortran.
+ <p>
+ You will need to implement this in the <i>experimental</i> editor located in the
+ org.eclipse.photran.ui.vpg
+ plug-in (when you run Photran, right-click a file and choose Open With >
+ Fortran Editor (VPG Experimental Features); "EXPERIMENTAL" should be displayed in 36-point
+ letters at the top of the editor window). You will need to create an <tt>IEditorVPGTask</tt>
+ to retrieve the various definitions in the editor, but you will need to use an <tt>IEditorASTTask</tt>
+ to update the display. (Why? How will you map the definitions from the VPG task to the tokens
+ in the AST task? Discuss this with me [Jeff] before implementing it. An imperfect but heuristic
+ solution will suffice.)
</div>
<li> <table border="0" cellspacing="0" cellpadding="0" width="75%"><tr><td nowrap align="left" width="85%">
<a href="javascript:toggle('ai');">