|  | <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> | 
|  | <html> | 
|  | <head> | 
|  | <meta | 
|  | http-equiv="Content-Type" | 
|  | content="text/html; charset=Cp1252" /> | 
|  | <meta | 
|  | http-equiv="Content-Style-Type" | 
|  | content="text/css" /> | 
|  | <meta | 
|  | name="Generator" | 
|  | content="WTP HTML Source Page Editor" /> | 
|  | <link | 
|  | href="../theme/Master.css" | 
|  | rel="stylesheet" | 
|  | type="text/css" /> | 
|  | <title>Structured Source Editing Evaluation Guide</title> | 
|  | </head> | 
|  | <body> | 
|  | <h1>Structured Source Editing Evaluation Guide</h1> | 
|  | <h2>1.0 Introduction</h2> | 
|  | <p>Structured Source Editors (SSE) can be used to edit XML, HTML, XHTML, | 
|  | CSS, DTD, client-side JavaScript, and JSP 1.1, 1.2, and 2.0 with Java or | 
|  | server-side JavaScript. They are intended to provide all of the advanced | 
|  | features that Eclipse users appreciate in their editors: content assist, | 
|  | customizable highlighting, as-you-type validation, smart editing, | 
|  | integration with outline and property views and much much more.</p> | 
|  | <p>In addition to the end-user features, the SSE editors are intended to | 
|  | be easy for others to re-use as the source page in multipage editors. | 
|  | One obvious example is as the source page of a WYSIWYG HTML editor. | 
|  | Programmatic interaction with the text model can be accomplished with | 
|  | standard Eclipse text document APIs (e.g. replace) or through standard | 
|  | DOM APIs. We provide a custom DOM implementation that tolerates | 
|  | ill-formed text and that allows for easy integration with other models.</p> | 
|  | <p>An additional component provided is the Snippets view. This provides | 
|  | a type of "clip book" where plug-in providers and end-users can store | 
|  | their favorite bits of code to drag-and-drop into an editor.</p> | 
|  | <p>The code in this initial proposed contribution is a snapshot | 
|  | "midstream" of our move to Eclipse 3.0. There are many bugs and much | 
|  | more to be done integrating with functionality provided in the base | 
|  | Eclipse text infrastructure. However, there's plenty to try out already. | 
|  | So give it a spin, and let us know what you like and don't like.</p> | 
|  | <h2>2.0 Getting Started</h2> | 
|  | <p>Nothing special is needed to get started, just start editing an XML, | 
|  | HTML, CSS, DTD, JavaScript, or JSP file. Referenced DTDs, Schemas, and | 
|  | tag libraries will be loaded and used to provide content assist and fill | 
|  | the Properties view. Note that to enjoy the Java editing integration | 
|  | while editing JSPs, the JSP file will need to be in a Web project or a | 
|  | Java project with the Build Path properly set with a server's library | 
|  | jars.</p> | 
|  | <h2>3.0 Quick Tour</h2> | 
|  | <p>Hopefully all the introductory "standard" editing features would be | 
|  | discoverable by anyone familiar with Eclipse's other editors. Therefore, | 
|  | we've just listed basic features in the following tables. Later in this | 
|  | section we've collected some "new and noteworthy" notes we've written | 
|  | while moving to Eclipse 3.0.</p> | 
|  | <p>Overview of editing features, compared with Eclipse 3.0's Java | 
|  | Editor:<br /> | 
|  | </p> | 
|  | <table | 
|  | border="1" | 
|  | cellpadding="4" | 
|  | cellspacing="0"> | 
|  | <tbody> | 
|  | <tr align="center"> | 
|  | <th></th> | 
|  | <th>Java</th> | 
|  | <th>XML</th> | 
|  | <th>JSP</th> | 
|  | <th>HTML &<br /> | 
|  | XHTML</th> | 
|  | <th>CSS</th> | 
|  | <th>DTD</th> | 
|  | <th>JavaScript</th> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Highlighting</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Content Assist</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">Y</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Parameter/Attribute Hints</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">-</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Formatter</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Structured Selection</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Hover Info</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">Y</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Smart Insert</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Open Selection</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Find Element</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Validating as-you-type</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">P?</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Delimiter Matching</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Refactoring Participation</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">-</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">P?</td> | 
|  | <td align="center">-</td> | 
|  | <td align="center">-</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Search Participation</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">P?</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">P?</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Quick Fix & Quick Assist</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N?</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Property Sheet</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Outline View</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Quick Outline</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Text Folding</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">P</td> | 
|  | <td align="center">P</td> | 
|  | <td align="center">P</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Task Tags</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <p>Editing features within the mixed content of JSP files:<br /> | 
|  | </p> | 
|  | <table | 
|  | border="1" | 
|  | cellpadding="4" | 
|  | cellspacing="0"> | 
|  | <tbody> | 
|  | <tr align="center"> | 
|  | <th></th> | 
|  | <th>JSP</th> | 
|  | <th>Custom Tags</th> | 
|  | <th>HTML&XML</th> | 
|  | <th>Client-side JavaScript</th> | 
|  | <th>CSS</th> | 
|  | <th>Server-side Java</th> | 
|  | <th>Server-side JavaScript</th> | 
|  | <th>JSP Expression Language (EL)</th> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Highlighting</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">P</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Content Assist</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">P</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Validating as-you-type</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">Y</td> | 
|  | <td align="center">N</td> | 
|  | <td align="center">?</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <p></p> | 
|  | <h2>Recently added editing functions, views, and JDT integration</h2> | 
|  | <table | 
|  | border="0" | 
|  | cellpadding="10" | 
|  | cellspacing="0" | 
|  | width="85%"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Configurable Go To Next/Previous Annotation</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">The source editor's Go To Next / Previous Error tool bar | 
|  | buttons have been replaced by configurable Go To Next / Previous | 
|  | Annotation drop-down style buttons where you can choose which | 
|  | annotations are considered while stepping: | 
|  | <p><img src="StructuredSourceEditors/annotation1.bmp.jpg" /></p> | 
|  | <p>These actions are also present on the Navigate menu</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Outline view can <i>not</i> follow caret</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">The Outline views now have a toggle option on their | 
|  | toolbars to control synchronization with the cursor in the source | 
|  | editors: | 
|  | <p><img src="StructuredSourceEditors/outlinelink1.bmp.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Context information for attributes</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">A popup with information about attributes for an element is now | 
|  | available (invoked via ctrl+shift+space).  The attributes which are | 
|  | already there show up in <b>bold</b>, and required attributes show | 
|  | up with an <b>*</b>: | 
|  | <p><img src="StructuredSourceEditors/attrusage1.bmp.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Background Jobs and Progress View</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">For a consistent "look and feel" we are taking advantage | 
|  | of the new-to-R3 background "Job" class and Progress View for loading | 
|  | content models (instead of having our own thread, and using status | 
|  | indicator as we did previously). | 
|  | <p><img src="StructuredSourceEditors/ProgressView.gif" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Java HoverInfo</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">Information about symbols within Java code sections will | 
|  | be shown in its HoverInfo. | 
|  | <p><img src="StructuredSourceEditors/jsphoverinfo1.bmp.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Java code as-you-type validation</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">The JSP editor now provides for dynamic syntax checking | 
|  | of Java code sections. | 
|  | <p><img src="StructuredSourceEditors/jspcodeerror1.bmp.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Improved debugging support (JSR-045)</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">Breakpoints set within the JSP editor can now be | 
|  | triggered in JSR-045 compatible servers. Apache Tomcat versions | 
|  | 5.0.2, 5.0.12, 5.0.16, and 5.0.25 have been successfully tested. | 
|  | Details are discussed <a href="javafamily-relnotes-short.html?p=1">here</a>. | 
|  | <p><img src="StructuredSourceEditors/breakpoints1.bmp.jpg" /></p> | 
|  | <p>This makes use of the SSE Breakpoint Provider extension API | 
|  | allowing for the setting of breakpoints for use in other scenarios | 
|  | such as client-side JavaScript and XSL transformation debugging.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Conditional breakpoints with JSR-045 debugging</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The JSP editor supports setting conditional breakpoints with | 
|  | JSR-045 compatible servers. This is done using the vertical ruler's | 
|  | context menu.</p> | 
|  | <p><img | 
|  | src="StructuredSourceEditors/2/editbreakpoints.jpg" | 
|  | alt="JSP editor ruler context menu" /></p> | 
|  | <p>Note: this requires additional entries to be made on the JSP | 
|  | project's classpath. See Eclipse bug <a | 
|  | href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51348#c3">51348</a> | 
|  | for details.</p> | 
|  | <p><img | 
|  | src="StructuredSourceEditors/2/editbreakpoints2.jpg" | 
|  | alt="breakpoint properties dialog" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>XML Comment and Uncomment</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>Comment and Uncomment from the Editor pulldown menu can be used to | 
|  | comment each line in a block of selected text in the XML Editor. If | 
|  | no text is selected, the current line is commented.</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/commentMenu.jpg" /></p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/commentEditor.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>XML Add Block Comment and Remove Block Comment</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>Add Block Comment and Remove Block Comment from the Editor | 
|  | pulldown menu can be used to comment all elements in a block of | 
|  | selected text in the XML Editor. If no text is selected, the current | 
|  | element is commented.</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/addBlockCommentMenu.jpg" /></p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/addBlockCommentEditor.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Quick Fix and Quick Assist</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%">Quick Fix provides proposals for fixing validation | 
|  | errors and warnings. Quick Assist provides proposals for common | 
|  | tasks.<br /> | 
|  | <br /> | 
|  | Here is a list of Quick Fix proposals currently available. More | 
|  | proposals will be added in future milestones. | 
|  | <table border="1"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <th>Validation Error or Warning</th> | 
|  | <th>Quick Fix Proposals</th> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>EmptyTag</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>remove this tag</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>MissingEndTag</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>convert to self-ending tag</li> | 
|  | <li>insert end tag</li> | 
|  | <li>remove this tag</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>AttrsInEndTag</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>remove all attributes in end tag</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>MissingAttrValue</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>insert default attribute value from content model</li> | 
|  | <li>remove this attribute</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>NoAttrValue</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>insert default attribute value from content model</li> | 
|  | <li>remove this attribute</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>SpacesBeforeTagName</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>remove spaces before tag name</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>SpacesBeforePI</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>remove spaces before processing instruction</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>NamespaceInPI</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>remove namespace in processing instruction</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>UnknownElement</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>remove this element</li> | 
|  | <li>local rename</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>UnknownAttr</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>remove this attribute</li> | 
|  | <li>local rename</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>InvalidAttrValue</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>replace with default attribute value from content model</li> | 
|  | <li>remove this attribute value</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>MissingRequiredAttr</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>insert required attribute and default value from content | 
|  | model</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>AttrValueNotQuoted</td> | 
|  | <td> | 
|  | <ul> | 
|  | <li>quote attribute value</li> | 
|  | </ul> | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/quickFix.jpg" | 
|  | width="563" | 
|  | height="331" /></p> | 
|  | <p>Local Rename is the only Quick Assist proposal in this milestone. | 
|  | More proposals will be added in future milestones.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Open on Hyperlink Support</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>In previous versions, users were able to open on/navigate to the | 
|  | source/declaration/referred to file of certain tag attributes by | 
|  | using the Open Selection menu item (shortcut key F3 by default). This | 
|  | support has been extended so that in addition to selecting the tag | 
|  | attribute and pressing F3, users are able to use a combination of | 
|  | pressing a modifier key (the Ctrl key by default) and their mouse to | 
|  | hover over the tag users want to open selection on. A hyperlink will | 
|  | then appear for users to click on to Open Selection.</p> | 
|  | <table border="BORDER"> | 
|  | <tbody> | 
|  | <tr> | 
|  | <th width="50%">Tag</th> | 
|  | <th width="50%">File opened</th> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>any HTML tag that contains a URI attribute (as defined by the | 
|  | HTML 4.01 DTD) such as the Anchor tag</td> | 
|  | <td>the file located in the URI attribute value</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>any JSP tag that contains a URI attribute (as defined by the | 
|  | JSP 1.2 Specification) such as the jsp:forward tag</td> | 
|  | <td>the file located in the URI attribute value</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>jsp:useBean</td> | 
|  | <td>the class referenced by the useBean action</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>JSP Scriptlets</td> | 
|  | <td>selected Java element's declaration</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>DOCTYPE Declaration</td> | 
|  | <td>the file referenced by the public/system ID</td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td>Schema location attribute</td> | 
|  | <td>the file referenced by the schema location attribute</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/hyperlink1.jpg" /></p> | 
|  | <br /> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/hyperlink2.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Quick Diff Support</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The Source editors are now tied into the base Quick Diff support, | 
|  | allowing users to see the difference between their current changes in | 
|  | the file from either the latest version on CVS or version on disk.</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/quickdiff1.jpg" /></p> | 
|  | <br /> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/quickdiff2.jpg" /></p></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Find Occurrences <br /> | 
|  | (Ctrl+Shift+A)</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>Source Editors now have the ability to find occurrences of a | 
|  | language element in a file.</p> | 
|  | <p>A user can now search for an element name, attribute name, | 
|  | attribute value, or a Java element (in the JSP Editor). To do so, | 
|  | press Ctrl+Shift+A or use the menu "Source > Occurrences in File". | 
|  | Results will appear in the Search results view.</p> | 
|  | <p align="center"><img | 
|  | src="StructuredSourceEditors/1/occurrences_menuaction.jpg" /> <br /> | 
|  | <b>Find Occurrences Action</b></p> | 
|  | <br /> | 
|  | <p align="center"><img | 
|  | src="StructuredSourceEditors/1/occurrences_results.jpg" /> <br /> | 
|  | <b>Find Occurrences Results</b></p> | 
|  | <hr /> | 
|  | <br /> | 
|  | <p align="center"><img src="StructuredSourceEditors/1/findAll.jpg" /> | 
|  | <br /> | 
|  | <b>XML Example of "Find Occurrences"</b></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="15%"> | 
|  | <p align="right"><b>Highlighting of matching delimiters</b></p> | 
|  | </td> | 
|  | <td | 
|  | valign="top" | 
|  | width="85%">In addition to the previous support for highlighting | 
|  | matching delimiters in server-side Java code snippets and JavaScript | 
|  | code, delimiters can now be highlighted in XML, HTML, JSP, DTD, and | 
|  | CSS files. | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/brackets2.jpg" /></p> | 
|  | <br /> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/brackets.jpg" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>JSP Search Support</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>JSP files now integrate with the Java Search functionality.</p> | 
|  | <p>Users can now search for uses of Types, Methods, Fields, etc. in | 
|  | their JSP files via the Java Search Dialog. Search results show up in the | 
|  | Search Results view together with Java search results. | 
|  | <!-- CURRENTLY BROKEN | 
|  | Double clicking on the | 
|  | result will open the appropriate file and jump the cursor to the | 
|  | first occurrence in the file. | 
|  | --> | 
|  | </p> | 
|  | <p align="center"><img src="StructuredSourceEditors/2/jsp_search.jpg" /><br /> | 
|  | <b>JSP Search Dialog</b></p> | 
|  | <br /> | 
|  | <p align="center"><img | 
|  | src="StructuredSourceEditors/2/jsp_searchresults.jpg" /><br /> | 
|  | <b>JSP Search Results</b></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Quick Fix and Quick Assist<br /> | 
|  | (Ctrl+1)</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The JSP Editor now has offers Quick Fix and Quick Assist support. | 
|  | </p> | 
|  | <p>When the editor cursor is in a JSP Java partition and assistance | 
|  | is available, you may press Ctrl+1 to launch Quick Fix and Quick | 
|  | Assist.</p> | 
|  | <p align="center"><img | 
|  | src="StructuredSourceEditors/2/launchQuickAssist.jpg" | 
|  | border="1" /> <br /> | 
|  | <b>Launch Quick Assist</b></p> | 
|  | <p><b>Local Rename</b> is one of the Quick Assist proposals which | 
|  | lets you rename a Java variable across multiple JSP Java partitions. | 
|  | </p> | 
|  | <p align="center"><img | 
|  | src="StructuredSourceEditors/2/localRename.jpg" | 
|  | border="1" /> <br /> | 
|  | <b>Local Rename</b></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Task Tags</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>When a file of a supported content type is built, its comments | 
|  | will be searched for Task Tags and corresponding tasks in the Tasks | 
|  | view automatically created.</p> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/3/tasktags1.jpg" /></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Add more to Snippets</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The <b>Add to Snippets</b> context menu action previously | 
|  | available only in the SSE editors is now available from the Java and | 
|  | Default Text Editors</p> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/3/javaaddtosnippets1.jpg" /></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Source menu on Navigator Views</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The <b>Source</b> context menu, which contains <b>Format Document</b> | 
|  | and <b>Convert Line Delimiters</b> actions, has been added to the | 
|  | Navigator View. The actions can be used on a project, a folder, or a | 
|  | document. When the action is used on a project or a folder, the | 
|  | action will be applied to all documents and sub-folders in the | 
|  | project or folder.</p> | 
|  | <p>In this milestone, the Source actions only supports content types | 
|  | supported by the Source Editor (including XML, HTML, JSP, and CSS). | 
|  | Documents of unsupported content type (for example, bitmaps) will be | 
|  | ignored. In the future, other plug-ins may specify formatters for | 
|  | other content types via an extension point.</p> | 
|  | <p align="center"><img | 
|  | src="StructuredSourceEditors/3/sourceMenu.jpg" | 
|  | border="0" /> <br /> | 
|  | <b>Source Menu</b></p> | 
|  | <p>The Source action progress dialog is cancellable, in case a large | 
|  | folder is selected by accident, or the action is taking too long. The | 
|  | progress dialog also shows you any exceptions the Source action | 
|  | encountered.</p> | 
|  | <p align="center"><img | 
|  | src="StructuredSourceEditors/3/formatDocProgressDialog.jpg" | 
|  | border="0" /> <br /> | 
|  | <b>Format Document Progress Dialog</b> <br /> | 
|  | <font size="-2">Note: The UI for the Format Document Progress Dialog | 
|  | will change in a future milestone.</font></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>In-editor preferences</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The source editor context menu now contains a menu item to change | 
|  | preferences relative to the current editor.</p> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/editorprefsmenu.gif" | 
|  | alt="In editor preferences menu" /> | 
|  | <p>This allows users to change | 
|  | editor preferences easily and immediately without having to navigate | 
|  | the entire preferences dialog.</p> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/editorprefs.gif" | 
|  | alt="In editor preferences" /></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>New Cleanup options</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>Two new options have been added to Cleanup:</p> | 
|  | <ul> | 
|  | <li><b>Compress empty element tags</b> - compresses empty element | 
|  | tags into the form <tag /></li> | 
|  | <li><b>Insert required attributes</b> - inserts missing required | 
|  | attributes according to the content model</li> | 
|  | </ul> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/cleanupDialog.gif" /></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>New QuickAssist proposals</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>New useful QuickAssist proposals have been added:</p> | 
|  | <ul> | 
|  | <li><b>Surround with new element</b> - surrounds the element at the | 
|  | cursor with a new element. You will enter the linked edit mode after | 
|  | the new element is inserted. You can rename the default start tag | 
|  | name and end tag name at the same time. While in the linked edit | 
|  | mode, Content Assist is available for selecting the element name.</li> | 
|  | <li><b>Insert required attributes</b> - inserts missing required | 
|  | attributes according to the content model for the element at the | 
|  | cursor</li> | 
|  | </ul> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/newQuickAssistProposals.gif" | 
|  | alt="New QuickAssist Proposals" /></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>New QuickFix proposals</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>More smarter QuickFix proposals for common validation errors. For | 
|  | example, when a missing end tag is detected, the following QuickFix | 
|  | proposals are available:</p> | 
|  | <ul> | 
|  | <li><b>Change to empty-element tag</b> - changes this tag into the | 
|  | form <tag /></li> | 
|  | <li><b>Remove this tag</b> - removes this problem tag</li> | 
|  | <li><b>Insert end tag before first child element</b> - closes this | 
|  | tag before the first child element</li> | 
|  | <li><b>Insert end tag at end of element</b> - closes this tag at the | 
|  | end of this element</li> | 
|  | </ul> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/newQuickFixProposals.gif" | 
|  | alt="New QuickFix Proposals" /></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Expand Selection To</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The Expand Selection To actions can be used to select elements in | 
|  | the document easily:</p> | 
|  | <ul> | 
|  | <li><b>Enclosing Element</b> - selects the element at the cursor</li> | 
|  | <li><b>Next Element</b> - expands the selection to the next element</li> | 
|  | <li><b>Previous Element</b> - expands the selection to the previous | 
|  | element</li> | 
|  | <li><b>Restore Last Selection</b> - undoes last selection expansion</li> | 
|  | </ul> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/1/expandSelectionToMenu.gif" | 
|  | alt="Expand Selection To Menu" /></td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Rename Refactoring</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>JSP files now participate in the refactoring of Java elements. | 
|  | Renaming a Type, Method, or Package will update the references within | 
|  | JSP files (jsp:useBean tags, import statements, scriptlets, etc.) as | 
|  | well. The necessary changes for JSP files will be computed | 
|  | automatically</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/2/rename1.gif" | 
|  | alt="Java editor Refactor menu" /></p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/2/rename2.gif" | 
|  | alt="Refactor results dialog" /></p> | 
|  | <p>This can be also invoked directly from the JSP source editor. For | 
|  | example, with a class in a <b>jsp:useBean</b> tag selected, choosing | 
|  | Refactor...Rename from the context menu will launch the familiar Java | 
|  | Refactoring dialog.</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/2/rename3.gif" | 
|  | alt="Refactor menu in JSP source editor" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Move Refactoring</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>JSP files also participate in the moving of Java source files. | 
|  | After dragging a class <b>MyDate</b> from "one.two.three" into the | 
|  | package "one.two.three.four", when dropped, the user will be prompted | 
|  | to update the affected JSP files.</p> | 
|  | <img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/2/rename4.gif" | 
|  | alt="dialog presented when moving Java sources" /> | 
|  | <p>This type of refactoring can also be invoked via the editor | 
|  | context menu if a Java element is selected.</p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Automatic Snippets management by content-type</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>The Customizer's Show/Hide functionality from earlier releases has | 
|  | been augmented with more fine-grained controls for visibility.</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/3/customizer1.gif" | 
|  | alt="customizer dialog" /></p> | 
|  | <p>Users may now select which content-types a drawer applies to. When | 
|  | editing files those content-types, that drawer will be shown. Drawers | 
|  | configured for per-content-type management but not enabled for that | 
|  | content type will be hidden.</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/3/customizer2.gif" | 
|  | alt="content type dialog" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2"> | 
|  | <hr /> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td | 
|  | align="right" | 
|  | valign="top" | 
|  | width="15%"><b>Configurable Hover Help</b></td> | 
|  | <td | 
|  | align="left" | 
|  | valign="top" | 
|  | width="85%"> | 
|  | <p>Users can configure the type of hover help displayed, and the | 
|  | keystrokes used to display hover help in Source Editors.</p> | 
|  | <p><img | 
|  | border="0" | 
|  | src="StructuredSourceEditors/hoverspref.jpg" | 
|  | alt="hover help preferences" /></p> | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | <h2>4.0 Provide Feedback to Us</h2> | 
|  | <p>We encourage development/design feed back on the <a | 
|  | href="https://dev.eclipse.org/mailman/listinfo/wtp-dev">wtp-dev</a> mailing list. You can subscribe to the list via <a | 
|  | href="https://dev.eclipse.org/mailman/listinfo/wtp-dev">this link</a>.<br> | 
|  | </br> | 
|  | <br> For usage questions, discussion of bugs, and strange behaviour | 
|  | please post to the eclipse.webtools newsgroup. Information on the Web | 
|  | Tools Platform newsgroup can be found </br> | 
|  | <a href="http://www.eclipse.org/newsgroups/index.html">here</a>.</p> | 
|  |  | 
|  | <p></p><hr  width="80%"/> | 
|  | <p align="center"><font size="-2"><font color="#808080">Return to the <b>Eclipse Web Tooling Platform Contribution - IBM</b> <a | 
|  | href="../Getting Started.html?p=1">Getting Started Guide</a></font></font></p> | 
|  | </body> | 
|  | </html> |