blob: f9555e045e1240bf1a5507df04292ce6c9da68ec [file] [log] [blame]
<html>
<head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../../default_style.css"
type="text/css">
<link rel="stylesheet" href="../../../../wtp.css"
type="text/css">
<title>Editor Configuration</title>
<style>
<!--
p, ol, ul {
margin-top: 0em;
margin-bottom: 0em;
}
h6.CaptionFigColumn#header {
font-size:14px;
display:inline
}
p.code#dtd {
color: #800000;
margin-left: 10.000000pt;
}
p.code#dtdAttlist {
color: #800000;
margin-left: 20.000000pt;
}
.ConfigMarkup#elementDesc {
color: black;
margin-top: 0.000000pt;
margin-bottom: 0.000000pt;
margin-right: 0.000000pt;
margin-left: 10.000000pt;
}
.ConfigMarkup#attlistDesc {
color: black;
margin-top: 0.000000pt;
margin-bottom: 0.000000pt;
margin-right: 0.000000pt;
margin-left: 32.000000pt;
}
p.code {
display: block;
text-align: left;
text-indent: 0.00pt;
margin-top: 0.000000pt;
margin-bottom: 0.000000pt;
margin-right: 0.000000pt;
margin-left: 15pt;
font-size: 10.000000pt;
font-weight: medium;
font-style: Regular;
color: #4444CC;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family: "Courier New";
}
h6.CaptionFigColumn {
display: block;
text-align: left;
text-indent: 0.000000pt;
margin-top: 3.000000pt;
margin-bottom: 11.000000pt;
margin-right: 0.000000pt;
margin-left: 0.000000pt;
font-size: 9.000000pt;
font-weight: medium;
font-style: Italic;
color: #000000;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family: "Arial";
}
-->
</style>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<tbody>
<tr>
<td width="60%" align="left"><font class="indextop">Editor
Configuration</font> <br>
<font class="indexsub">structured source editing (sse) component</font></td>
<td width="40%"><img width="120" hspace="50" height="86"
align="middle" src="http://eclipse.org//images/Idea.jpg"></td>
</tr>
</tbody>
</table>
<table border=1>
<tr>
<th>Date</th>
<th>Revision info</th>
</tr>
<tr>
<td>9/07/2005</td>
<td>Initial contribution</td>
</tr>
</table>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<col width="16">
<col width="*">
<tbody>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top"><a name="top"></a></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font
face="Arial,Helvetica" color="#ffffff">Overview</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top">
<p>One main goal of the Structured Source editing framework is to
provide a way for clients to extend the Structured Text Editor
without having to subclass the editor.<br />
Part of this goal is achieved through the editor configuration
extension point. The editor configuration extension point allows
clients to customize the Structured Text Editor for different/new
content types.<br />
</p>
<p>The Structured Text editor is designed to handle different types
of "structured" content types as input, such as XML, HTML, JSP, CSS.
This includes the ability to change content types on-the-fly. For
example, editing an HTML document, then deciding to change it to JSP
by performing Save As.. *.jsp. The different types of configurations
clients can contribute include:<br />
</p>
<ul>
<li>Outline view configuration - configure behaviour in the outline
view (elements to display, menu items, etc)</li>
<li>Properties view configuration - configure behaviour in the
properties view (properties to display, menu items, etc)</li>
<li>Structured text viewer configuration - configure behaviour in
the editor (content assist, syntax highlighting, hyperlink
navigation, etc)</li>
</ul>
<p>Through an extension point, clients can declare their
configuration and the associated content type or editor id.</p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font
face="Arial,Helvetica" color="#ffffff">Use Cases</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top">
<p>Examples of editors that could use editorConfiguration:</p>
<ul>
<li>DTD editor
<p>Client creates their own DTD content type and would like to edit
DTD with Structured Text Editor.<br />
Clients would like to be able to extend the following:</p>
<ul>
<li>outline view</li>
<li>syntax highlighting, source validation, hover help</li>
</ul>
</li>
<li>XML editor
<p>Client creates their own XML content type and would like to edit
XML with Structured Text Editor.<br />
Clients would like to be able to extend the following:</p>
<ul>
<li>outline view</li>
<li>properties view</li>
<li>content assist, syntax highlighting, source validation, and
many other viewer configurations</li>
</ul>
</li>
<li>WSDL editor
<p>Client creates their own WSDL content type and would like to edit
WSDL with Structured Text Editor. Since the WSDL content type
extends the XML content type, the WSDL editor should pick up all
editor functionality for XML content type.<br />
Clients would like to be able to extend the following:</p>
<ul>
<li>outline view</li>
<li>properties view</li>
<li>hyperlink navigation</li>
</ul>
</li>
<li>JSP editor
<p>Client creates their own JSP content type and would like to edit
JSP with Structured Text Editor. Since a JSP file can contain
different parts of different content types (such as HTML tags, JSP
Java scriptlets) JSP editor should utlilize some customizations from
other content types.<br />
Clients would like to be able to extend the following:</p>
<ul>
<li>outline view</li>
<li>properties view</li>
<li>content assist, syntax highlighting, source validation, and
many other viewer configurations</li>
</ul>
</li>
</ul>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font
face="Arial,Helvetica" color="#ffffff">Editor Configuration
Extension Point</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top">
<h6 class=CaptionFigColumn id=header>Identifier:</h6>
org.eclipse.wst.sse.ui.editorConfiguration <br />
<br />
<h6 class=CaptionFigColumn id=header>Configuration Markup:</h6>
<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a>
(<a href="#e.sourceViewerConfiguration">sourceViewerConfiguration</a>*
, <a href="#e.contentOutlineConfiguration">contentOutlineConfiguration</a>*
, <a href="#e.propertySheetConfiguration">propertySheetConfiguration</a>*
, <a href="#e.provisionalConfiguration">provisionalConfiguration</a>*
, <a href="#e.provisionalDefinition">provisionalDefinition</a>*)&gt;</p>
<p class=code id=dtd>&lt;!ATTLIST extension</p>
<p class=code id=dtdAttlist>point CDATA #REQUIRED</p>
<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</p>
<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
<p></p>
<ul class=ConfigMarkup id=attlistDesc>
</ul>
<br />
<p class=code id=dtd>&lt;!ELEMENT <a
name="e.sourceViewerConfiguration">sourceViewerConfiguration</a>
EMPTY&gt;</p>
<p class=code id=dtd>&lt;!ATTLIST sourceViewerConfiguration</p>
<p class=code id=dtdAttlist>target CDATA #REQUIRED</p>
<p class=code id=dtdAttlist>class&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
<p />
<p class=ConfigMarkup id=elementDesc>Defines the source viewer
configuration, affecting syntax highlighting, content assist, hover
help, and more in the current editor.</p>
<br />
<ul class=ConfigMarkup id=attlistDesc>
<li><b>target</b> - A string defining when to use this extension,
either an editor or content type id. Multiple targets may be given
as a comma delimited value.</li>
<li><b>class</b> - Must subclass
org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration</li>
</ul>
<br />
<p class=code id=dtd>&lt;!ELEMENT <a
name="e.contentOutlineConfiguration">contentOutlineConfiguration</a>
EMPTY&gt;</p>
<p class=code id=dtd>&lt;!ATTLIST contentOutlineConfiguration</p>
<p class=code id=dtdAttlist>target CDATA #REQUIRED</p>
<p class=code id=dtdAttlist>class&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
<p></p>
<p class=ConfigMarkup id=elementDesc>Defines how the current editor's
input maps to elements with in a Tree control, as well as selection
filtering, toolbar and menu contributions, etc in the Outline view.</p>
<br />
<ul class=ConfigMarkup id=attlistDesc>
<li><b>target</b> - A string defining when to use this extension,
either an editor or content type id. Multiple targets may be given
as a comma delimited value.</li>
<li><b>class</b> - Must subclass
org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration</li>
</ul>
<br />
<p class=code id=dtd>&lt;!ELEMENT <a
name="e.propertySheetConfiguration">propertySheetConfiguration</a>
EMPTY&gt;</p>
<p class=code id=dtd>&lt;!ATTLIST propertySheetConfiguration</p>
<p class=code id=dtdAttlist>target CDATA #REQUIRED</p>
<p class=code id=dtdAttlist>class&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
<p></p>
<p class=ConfigMarkup id=elementDesc>Defines how the current editor's
input maps to properties in a Table control, as well as toolbar
contributions, etc in the Properties view.</p>
<br />
<ul class=ConfigMarkup id=attlistDesc>
<li><b>target</b> - A string defining when to use this extension,
either an editor or content type id. Multiple targets may be given
as a comma delimited value.</li>
<li><b>class</b> - Must subclass
org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration</li>
</ul>
<br />
<h6 class=CaptionFigColumn id=header>Examples:</h6>
<pre>&lt;extension point=&quot;org.eclipse.wst.sse.ui.editorConfiguration&quot;&gt;
&lt;!-- associating a source viewer configuration to an input's content type--&gt;
&lt;sourceViewerConfiguration
class=&quot;org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML&quot;
target=&quot;org.eclipse.wst.html.core.htmlsource&quot;/&gt;
&lt;!-- associating an outline configuration to an input's content type --&gt;
&lt;contentOutlineConfiguration
class=&quot;org.eclipse.wst.sse.xml.ui.views.contentoutline.XMLContentOutlineConfiguration&quot;
target=&quot;org.eclipse.core.runtime.xml&quot;/&gt;
&lt;!-- associating a property sheet configuration to multiple content types --&gt;
&lt;propertySheetConfiguration
class=&quot;org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration&quot;
target=&quot;org.eclipse.wst.sse.contenttype.xml, org.eclipse.wst.html.core.htmlsource, org.eclipse.jst.jsp.core.jspsource&quot;/&gt;
&lt;/extension&gt;
</pre>
<p /></p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font
face="Arial,Helvetica" color="#ffffff">Target Resolution Policy</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top">
<p>Clients can target their editor configuration to either a specific
content type and/or editor. In the event there are conflicts as to
which configuration should be used, below is the resolution policy.</p>
<ol>
<li>configuration with matching editor id</li>
<li>configuration with matching editor id + ".source" in multipage
editors</li>
<li>configuration with matching content type id</li>
<li>configuration for content type's base content type</li>
<li>default Structured Text Editor configuration</li>
</ol>
<p>If more than one configuration is defined for an editor type or
content type, the first one defined, is the first one served.</p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font
face="Arial,Helvetica" color="#ffffff">SourceViewerConfiguration</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top">
<p>The structured text viewer configuration customizes various
aspects of the Structured text editor. It defines syntax
highlighting, content assist, and more. Clients must subclass <code>org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration</code>
to provide a custom viewer configuration for their content type.
Clients contributing new configuration for new content types can
utilize an existing configuration. They can subclass the existing
configuration to build on top if it. Or they can create a new
instance of the existing configuration in their configuration, and
call the methods within it. The <code>StructuredTextViewerConfigurationJSP</code>,
for example, creates new instances of the <code>StructuredTextViewerConfigurationHTML,
StructuredTextViewerConfigurationXML, JavaSourceViewerConfiguration</code>
and retrieves their processors to be reused in JSP content.</p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font
face="Arial,Helvetica" color="#ffffff">ContentOutlineConfiguration</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top">
<p>The outline view configuration customizes the editor's outline
view. It defines how the current editor's input maps to elements in a
Tree control, as well as selection filtering, toolbar/menu
contributions, etc. Clients must subclass <code>org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration</code>
to provide a custom outline view for their content type.</p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font
face="Arial,Helvetica" color="#ffffff">PropertySheetConfiguration</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td>
<td valign="top">
<p>The properties view configuration customizes the editor's
properties view. It defines how the current editor's input maps to a
list of properties in a Table control, as well as toolbar/menu
contributions, etc. Clients must subclass <code>org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration</code>
to provide a custom properties view for their content type.</p>
</td>
</tr>
</tbody>
</table>
<hr>
<p>Migration information from earlier revisions can be found <a href="EditorConfigurationMigration.html">here</a>.
</body>
</html>