Package org.eclipse.jface.text.templates
package org.eclipse.jface.text.templates
Application programming interfaces for interaction
with the Eclipse text template support.
Templates are specified as text, variables are defined using the
Template functionality can be added to a custom text editor by offering
Template variables are resolved by a
Templates
Packages
org.eclipse.jface.text.templates
org.eclipse.ui.workbench.texteditor.templates
org.eclipse.ui.editors.templates
Introduction
Templates are shortcuts for frequently used fragments of text such as code patterns or complex text entities. They may contain variables which are only resolved at the time when the template is inserted within a context. Together with linked mode, inserting a template can create a on-the-fly edit mask within a text viewer.Templates are specified as text, variables are defined using the
${variable}
notation known from
Ant, for example. The following snippet shows an example template for
an instance check in Java:if (${name} instanceof ${type}) { ${type} ${new_name} = (${type})${name}; ${cursor} }In this template, the variables (
name,type, ...
) are resolved
when inserted into java source and changing one variable instance will
also change the other. When leaving linked mode, the caret is placed at
the cursor
variable.Template functionality can be added to a custom text editor by offering
TemplateProposal
s as content assist choices, which is
simplified by using a subclass of TemplateCompletionProcessor
. User template management can be
offered by including a TemplatePreferencePage
which uses a TemplateStore
and ContextTypeRegistry
as the
underlying model to store templates. The org.eclipse.ui.editors.templates
extension point can be used to allow other plug-ins to contribute
templates to an editor. This is accomplished by using the ContributionTemplateStore
and ContributionContextTypeRegistry
subclasses of the above types.Template variables are resolved by a
TemplateVariableResolver.
GlobalTemplateVariables
offers
some default variables such as date, user, and selection, but advanced
features such as resolving to language constructs can be performed in
subclasses.Classes
Template
a template consists of name, context type identifier, and a pattern.TemplateTranslator
andTemplateBuffer
are used to parse the template grammar and don't need to be used usually.- A
TemplateProposal
can be offered in content assist, possibly created by a subclass ofTemplateCompletionProcessor.
TemplateStore
andContextTypeRegistry
manage a set of templates within a plug-in and offer ways to store them in the preferences or externally in XML streams via aTemplateReaderWriter
.ContributionTemplateStore
andContributionContextTypeRegistry
add awareness for theorg.eclipse.ui.editors.templates
extension point.TemplatePreferencePage
allows the user to access the templates within aTemplateStore.
Example
See the Template Editor Example in the org.eclipse.ui.examples.javaeditor project.-
ClassDescriptionDeprecated.Instances of this class describe the context of a template as a region of a document.Global variables which are available in any context.The cursor variable determines the cursor placement after template edition.The date variable evaluates to the current date.The dollar variable inserts an escaped dollar symbol.The line selection variable determines templates that work on selected lines.The selection variable determines templates that work on a selection.The time variable evaluates to the current time.The user variable evaluates to the current user.The word selection variable determines templates that work on selected words, but not on selected lines.The year variable evaluates to the current year.A simple template variable resolver, which always evaluates to a defined string.A template consisting of a name and a pattern.A template buffer is a container for a string and variables.A completion processor that computes template proposals.Provides the context for a
Template
being resolved.A context type defines a context within which templates are resolved.Thrown when a template cannot be validated.A template completion proposal.The template translator translates a string into a template buffer.ATemplateVariable
represents a set of positions into aTemplateBuffer
with identical content each.ATemplateVariableResolver
resolvesTemplateVariables
of a certain type inside aTemplateContext
.Value object that represents the type of a template variable.
ContextTypeRegistry