annotate dwtx/jface/text/templates/package.html @ 129:eb30df5ca28b

Added JFace Text sources
author Frank Benoit <benoit@tionex.de>
date Sat, 23 Aug 2008 19:10:48 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
129
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 <html>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 <head>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 <meta content="text/html; charset=iso-8859-1"
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 http-equiv="Content-Type">
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 <meta content="IBM" name="Author">
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 <title>Templates</title>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 <meta content="Template Infrastructure package description"
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 name="description">
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 </head>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 <body>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 Application programming interfaces for interaction
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 with the Eclipse text editor template support.
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 <h2>Templates</h2>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 <h3>Packages</h3>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 <ul>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 <li><tt><big><strong>org.eclipse.jface.text.templates</strong></big></tt></li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 <li><tt><big><strong>org.eclipse.ui.workbench.texteditor.templates</strong></big></tt></li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 <li><tt><big><strong>org.eclipse.ui.editors.templates</strong></big></tt></li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 </ul>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 <h3>Introduction</h3>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 Templates are shortcuts for frequently used fragments of text such as
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 code patterns or complex text entities. They may contain variables
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 which are only resolved at the time when the template is inserted
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 within a context. Together with linked mode, inserting a template can
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 create a on-the-fly edit mask within a text viewer.<br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 <br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 Templates are specified as text, variables are defined using the <tt>${variable}</tt>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 notation known from
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 Ant, for example. The following snippet shows an example template for
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 an instance check in Java:<br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 <pre>if (${name} instanceof ${type}) {
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 &nbsp;&nbsp;&nbsp; ${type} ${new_name} = (${type})${name};
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 &nbsp;&nbsp;&nbsp; ${cursor}
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 }
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 </pre>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 In this template, the variables (<tt>name,type, ...</tt>) are resolved
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 when inserted into java source and changing one variable instance will
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 also change the other. When leaving linked mode, the caret is placed at
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 the <tt>cursor</tt> variable.<br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 <br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 Template functionality can be added to a custom text editor by offering
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 <tt>TemplateProposal</tt>s as content assist choices, which is
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 simplified by using a subclass of <tt>TemplateCompletionProcessor</tt>. User template management can be
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 offered by including a <tt>TemplatePreferencePage</tt> which uses a <tt>TemplateStore</tt> and <tt>ContextTypeRegistry</tt> as the
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 underlying model to store templates. The <tt>org.eclipse.ui.editors.templates</tt>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 extension point can be used to allow other plug-ins to contribute
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 templates to an editor. This is accomplished by using the <tt>ContributionTemplateStore</tt> and <tt>ContributionContextTypeRegistry</tt>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 subclasses of the above types.<br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 <br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 Template variables are resolved by a <tt>TemplateVariableResolver.</tt> <tt>GlobalTemplateVariables</tt> offers
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 some default variables such as date, user, and selection, but advanced
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 features such as resolving to language constructs can be performed in
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 subclasses.<br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 <h4>Classes</h4>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 <ul>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 <li><tt>Template</tt> a template consists of name, context
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 type identifier, and a pattern.</li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 <li><tt>TemplateTranslator</tt> and <tt>TemplateBuffer</tt> are used to
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 parse the template grammar and don't need to be used usually.</li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 <li>A <tt>TemplateProposal </tt>can be
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 offered in content assist, possibly created by a subclass of <tt>TemplateCompletionProcessor.</tt></li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 <li><tt>TemplateStore</tt> and <tt>ContextTypeRegistry</tt> manage a
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 set of templates within a plug-in and offer ways to store them in the
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 preferences or externally in XML streams via a <tt>TemplateReaderWriter</tt>.<br></li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 <li><tt>ContributionTemplateStore</tt> and <tt>ContributionContextTypeRegistry</tt>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 add awareness for the <tt>org.eclipse.ui.editors.templates</tt>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 extension point.</li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 <li><tt>TemplatePreferencePage</tt> allows
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 the user to access the templates within a <tt>TemplateStore.</tt></li>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 </ul>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 <ul>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 </ul>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 <h4>Example</h4>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 See the Template Editor Example in the <strong>org.eclipse.ui.examples.javaeditor</strong> project.<br>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 </body>
eb30df5ca28b Added JFace Text sources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 </html>