| <!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> |