blob: bf403a25d089140a3c7c5fc8d0204e7ed19c0e9c [file] [log] [blame]
<!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 &amp;<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 &amp; 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&amp;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 &gt; 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 &lt;tag /&gt;</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 &lt;tag /&gt;</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>