Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 8960 Details for
Bug 55355
Move to new template extension point for ant editor
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
move to generic template support
patch.txt (text/plain), 24.57 KB, created by
John-Mason P. Shackelford
on 2004-03-27 22:56:16 EST
(
hide
)
Description:
move to generic template support
Filename:
MIME Type:
Creator:
John-Mason P. Shackelford
Created:
2004-03-27 22:56:16 EST
Size:
24.57 KB
patch
obsolete
>Index: plugin.properties >=================================================================== >RCS file: /home/eclipse/org.eclipse.ant.ui/plugin.properties,v >retrieving revision 1.20 >diff -u -r1.20 plugin.properties >--- plugin.properties 16 Mar 2004 05:19:47 -0000 1.20 >+++ plugin.properties 28 Mar 2004 03:40:33 -0000 >@@ -86,7 +86,12 @@ > commentsColor.description=The color used in the Ant editor for comments. > > templatesName = Ant Templates Definitions >-filesetTemplate.description= Ant fileset type with include clause >-propertyTemplate.description= Ant property with name and value >+ >+xml.contextType.name= Ant Script >+ >+ant.resolvers.src= Source Fileset >+ant.resolvers.src.description= A source fileset >+ant.resolvers.dst= Destination Fileset >+ant.resolvers.dst.description= An output fileset > > Ant.marker.label = Ant Buildfile Problem >Index: plugin.xml >=================================================================== >RCS file: /home/eclipse/org.eclipse.ant.ui/plugin.xml,v >retrieving revision 1.57 >diff -u -r1.57 plugin.xml >--- plugin.xml 16 Mar 2004 19:08:55 -0000 1.57 >+++ plugin.xml 28 Mar 2004 03:40:33 -0000 >@@ -450,22 +450,34 @@ > </colorDefinition> > </extension> > >- <extension >- point="org.eclipse.ant.ui.antTemplates"> >- <antTemplate >- name="fileset" >- description="%filesetTemplate.description" >- pattern="<fileset dir="${dir}"> >- <include name="${pattern}" /> >- </fileset> >-"> >- </antTemplate> >- <antTemplate >- name="property" >- description="%propertyTemplate.description" >- pattern="<property name="${name}" value="${value}"/>"> >- </antTemplate> >- </extension> >+ <extension >+ point="org.eclipse.ui.editors.templates"> >+ <contextType >+ name="%xml.contextType.name" >+ class="org.eclipse.ant.internal.ui.editor.templates.XMLContextType" >+ id="org.eclipse.ant.ui.templateContextType.XML"> >+ </contextType> >+ <resolver >+ name="%ant.resolvers.src" >+ type="src" >+ icon="templates/icons/resolver.gif" >+ description="%ant.resolvers.src.description" >+ contextTypeId="org.eclipse.ant.ui.templateContextType.XML" >+ class="org.eclipse.ant.internal.ui.editor.templates.AntVariableResolver"> >+ </resolver> >+ <resolver >+ name="%ant.resolvers.dst" >+ type="dst" >+ icon="templates/icons/resolver.gif" >+ description="%ant.resolvers.dst.description" >+ contextTypeId="org.eclipse.ant.ui.templateContextType.XML" >+ class="org.eclipse.ant.internal.ui.editor.templates.AntVariableResolver"> >+ </resolver> >+ <include >+ file="templates/ant.xml" >+ translations="templates/ant.properties"> >+ </include> >+ </extension> > > <extension id="buildFileProblem" name="%Ant.marker.label" point="org.eclipse.core.resources.markers"> > <super type="org.eclipse.core.resources.problemmarker" /> >Index: Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java,v >retrieving revision 1.38 >diff -u -r1.38 AntEditorCompletionProcessor.java >--- Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java 18 Mar 2004 03:46:45 -0000 1.38 >+++ Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java 28 Mar 2004 03:40:38 -0000 >@@ -56,6 +56,7 @@ > import org.eclipse.ant.internal.ui.editor.model.AntTargetNode; > import org.eclipse.ant.internal.ui.editor.model.AntTaskNode; > import org.eclipse.ant.internal.ui.editor.outline.AntModel; >+import org.eclipse.ant.internal.ui.editor.templates.*; > import org.eclipse.ant.internal.ui.model.AntUIImages; > import org.eclipse.ant.internal.ui.model.AntUIPlugin; > import org.eclipse.ant.internal.ui.model.IAntUIConstants; >@@ -69,8 +70,10 @@ > import org.eclipse.jface.text.contentassist.IContentAssistProcessor; > import org.eclipse.jface.text.contentassist.IContextInformation; > import org.eclipse.jface.text.contentassist.IContextInformationValidator; >+import org.eclipse.jface.text.templates.ContextType; > import org.eclipse.jface.text.templates.DocumentTemplateContext; > import org.eclipse.jface.text.templates.Template; >+import org.eclipse.jface.text.templates.TemplateCompletionProcessor; > import org.eclipse.jface.text.templates.TemplateContext; > import org.eclipse.jface.text.templates.TemplateProposal; > import org.eclipse.swt.graphics.Image; >@@ -85,7 +88,7 @@ > /** > * The text completion processor for the Ant Editor. > */ >-public class AntEditorCompletionProcessor implements IContentAssistProcessor { >+public class AntEditorCompletionProcessor extends TemplateCompletionProcessor implements IContentAssistProcessor { > > private Comparator proposalComparator= new Comparator() { > public int compare(Object o1, Object o2) { >@@ -205,14 +208,36 @@ > } > > /** >- * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(ITextViewer, int) >- */ >- public ICompletionProposal[] computeCompletionProposals(ITextViewer refViewer, int documentOffset) { >- this.viewer = refViewer; >- return determineProposals(); >- } >+ * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(ITextViewer, int) >+ */ >+ public ICompletionProposal[] computeCompletionProposals( >+ ITextViewer refViewer, int documentOffset) { >+ >+ this.viewer = refViewer; >+ >+ return mergeProposals(super.computeCompletionProposals(refViewer, >+ documentOffset), determineProposals()); >+ } > > /** >+ * @param proposals1 >+ * @param proposals2 >+ * @return >+ */ >+ private ICompletionProposal[] mergeProposals( >+ ICompletionProposal[] proposals1, ICompletionProposal[] proposals2) { >+ >+ ICompletionProposal[] combinedProposals = new ICompletionProposal[proposals1.length >+ + proposals2.length]; >+ >+ System.arraycopy(proposals1,0,combinedProposals,0,proposals1.length); >+ System.arraycopy(proposals2,0,combinedProposals,proposals1.length,proposals2.length); >+ >+ Arrays.sort(combinedProposals,proposalComparator); >+ return combinedProposals; >+ } >+ >+ /** > * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(ITextViewer, int) > */ > public IContextInformation[] computeContextInformation(ITextViewer refViewer, int documentOffset) { >@@ -657,7 +682,7 @@ > // think of a usecase for templates other than tasks at the moment, but > // since users can add templates via the preferences we may need to > // rethink this. >- proposals.addAll(getTemplateProposals(document, prefix)); >+ // proposals.addAll(getTemplateProposals(document, prefix)); > > return (ICompletionProposal[])proposals.toArray(new ICompletionProposal[proposals.size()]); > } >@@ -674,34 +699,6 @@ > } > } > >- /* >- * @return a collection of >- * {@link org.eclipse.jface.text.templates.TemplateProposal}s >- */ >- protected Collection getTemplateProposals(IDocument document, String prefix) { >- >- Point selection = viewer.getSelectedRange(); >- IRegion selectedRegion = new Region(selection.x - (prefix.length() + 1), selection.y + prefix.length() + 1); >- if (selectedRegion.getOffset() == -1) { >- return Collections.EMPTY_LIST; >- } >- TemplateContext templateContext = new DocumentTemplateContext( >- AntTemplates.CONTEXT, document, selectedRegion.getOffset(), selectedRegion.getLength()); //$NON-NLS-1$ >- >- Template[] templates= AntTemplates.getAntTemplates(); >- List proposals = new ArrayList(templates.length); >- TemplateProposal templateProposal; >- for (int i = 0; i < templates.length; i++) { >- Template template = templates[i]; >- if (prefix.length() == 0 || template.getName().toLowerCase().startsWith(prefix)) { >- templateProposal = new TemplateProposal(template, templateContext, selectedRegion, AntUIImages.getImage(IAntUIConstants.IMG_TEMPLATE_PROPOSAL)); >- proposals.add(templateProposal); >- } >- } >- >- return proposals; >- } >- > private ICompletionProposal newCompletionProposal(IDocument document, String aPrefix, String elementName) { > additionalProposalOffset= 0; > Image proposalImage = AntUIImages.getImage(IAntUIConstants.IMG_TASK_PROPOSAL); >@@ -1314,4 +1311,61 @@ > public void setCompletionProposalAutoActivationCharacters(char[] activationSet) { > autoActivationChars= activationSet; > } >+ >+ /** >+ * We watch for angular brackets since those are often part of XML >+ * templates. >+ */ >+ protected String extractPrefix(ITextViewer viewer, int offset) { >+ IDocument document= viewer.getDocument(); >+ int i= offset; >+ if (i > document.getLength()) >+ return ""; //$NON-NLS-1$ >+ >+ try { >+ while (i > 0) { >+ char ch= document.getChar(i - 1); >+ if (ch != '<' && !Character.isJavaIdentifierPart(ch)) >+ break; >+ i--; >+ } >+ >+ return document.get(i, offset - i); >+ } catch (BadLocationException e) { >+ return ""; //$NON-NLS-1$ >+ } >+ } >+ >+ /** >+ * Cut out angular brackets for relevance sorting, since the template name >+ * does not contain the brackets. >+ */ >+ protected int getRelevance(Template template, String prefix) { >+ if (prefix.startsWith("<")) //$NON-NLS-1$ >+ prefix= prefix.substring(1); >+ if (template.getName().startsWith(prefix)) >+ return 90; >+ return 0; >+ } >+ >+ /** >+ * Simply return all templates. >+ */ >+ protected Template[] getTemplates(String contextTypeId) { >+ return AntTemplateAccess.getDefault().getTemplateStore().getTemplates(); >+ } >+ >+ /** >+ * Return the XML context type that is supported by this plugin. >+ */ >+ protected ContextType getContextType(ITextViewer viewer, IRegion region) { >+ return AntTemplateAccess.getDefault().getContextTypeRegistry().getContextType(XMLContextType.XML_CONTEXT_TYPE); >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.text.templates.TemplateCompletionProcessor#getImage(org.eclipse.jface.text.templates.Template) >+ */ >+ protected Image getImage(Template template) { >+ return AntUIImages.getImage(IAntUIConstants.IMG_TEMPLATE_PROPOSAL); >+ } > } >Index: Ant Editor/org/eclipse/ant/internal/ui/editor/AntTemplates.java >=================================================================== >RCS file: Ant Editor/org/eclipse/ant/internal/ui/editor/AntTemplates.java >diff -N Ant Editor/org/eclipse/ant/internal/ui/editor/AntTemplates.java >--- Ant Editor/org/eclipse/ant/internal/ui/editor/AntTemplates.java 15 Mar 2004 04:15:29 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,76 +0,0 @@ >-/******************************************************************************* >- * Copyright (c) 2000, 2004 IBM Corporation and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Common Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/cpl-v10.html >- * >- * Contributors: >- * IBM Corporation - initial API and implementation >- *******************************************************************************/ >-package org.eclipse.ant.internal.ui.editor; >- >-import java.util.ArrayList; >-import java.util.List; >- >-import org.eclipse.ant.internal.ui.model.AntUIPlugin; >-import org.eclipse.core.runtime.IConfigurationElement; >-import org.eclipse.core.runtime.IExtensionPoint; >-import org.eclipse.jface.text.templates.ContextType; >-import org.eclipse.jface.text.templates.Template; >- >-public class AntTemplates { >- >- private static final String EXTENSION_POINT_NAME= "antTemplates"; //$NON-NLS-1$ >- >- public static final ContextType CONTEXT= new ContextType(AntTemplates.CONTEXT_NAME); >- public static final String CONTEXT_NAME= "ant"; //$NON-NLS-1$ >- private static final String NAME= "name"; //$NON-NLS-1$ >- private static final String DESCRIPTION= "description"; //$NON-NLS-1$ >- private static final String PATTERN= "pattern"; //$NON-NLS-1$ >- >- private static Template[] fgDefaultAntTemplates= null; >- >- private AntTemplates() { >- } >- >- /** >- * Returns the set of Ant templates >- * >- * @returns set of Ant templates. >- */ >- public static Template[] getAntTemplates() { >- if (fgDefaultAntTemplates == null) { >- IConfigurationElement[] extensions= extractExtensions(); >- if (extensions == null) { >- return new Template[0]; >- } >- computeDefaultTemplates(extensions); >- } >- return fgDefaultAntTemplates; >- } >- >- private static IConfigurationElement[] extractExtensions() { >- IExtensionPoint extensionPoint = AntUIPlugin.getDefault().getDescriptor().getExtensionPoint(EXTENSION_POINT_NAME); >- if (extensionPoint == null) { >- return null; >- } >- return extensionPoint.getConfigurationElements(); >- } >- >- private static void computeDefaultTemplates(IConfigurationElement[] extensions) { >- List temp = new ArrayList(extensions.length); >- for (int i=0; i < extensions.length; i++) { >- IConfigurationElement element= extensions[i]; >- String name = element.getAttribute(NAME); >- if (name == null) { >- continue; >- } >- String description = element.getAttribute(DESCRIPTION); >- String pattern = element.getAttribute(PATTERN); >- Template template= new Template(name, description, CONTEXT_NAME, pattern); >- temp.add(template); >- } >- fgDefaultAntTemplates= (Template[])temp.toArray(new Template[temp.size()]); >- } >-} >Index: Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateAccess.java >=================================================================== >RCS file: Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateAccess.java >diff -N Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateAccess.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateAccess.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,95 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2004 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Common Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/cpl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.ant.internal.ui.editor.templates; >+ >+import java.io.IOException; >+ >+import org.eclipse.ant.internal.ui.model.AntUIPlugin; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.jface.preference.IPreferenceStore; >+import org.eclipse.jface.text.templates.ContextTypeRegistry; >+import org.eclipse.jface.text.templates.persistence.TemplateStore; >+ >+ >+/** >+ * >+ */ >+ >+public class AntTemplateAccess { >+ /** Key to store custom templates. */ >+ private static final String CUSTOM_TEMPLATES_KEY= "org.eclipse.ant.ui.customtemplates"; //$NON-NLS-1$ >+ >+ /** The shared instance. */ >+ private static AntTemplateAccess fInstance; >+ >+ /** The template store. */ >+ private TemplateStore fStore; >+ >+ /** The context type registry. */ >+ private ContextTypeRegistry fRegistry; >+ >+ private AntTemplateAccess() { >+ } >+ >+ /** >+ * Returns the shared instance. >+ * >+ * @return the shared instance >+ */ >+ public static AntTemplateAccess getDefault() { >+ if (fInstance == null) >+ fInstance= new AntTemplateAccess(); >+ return fInstance; >+ } >+ >+ /** >+ * Returns this plug-in's template store. >+ * >+ * @return the template store of this plug-in instance >+ */ >+ public TemplateStore getTemplateStore() { >+ if (fStore == null) { >+ fStore= new TemplateStore(AntUIPlugin.getDefault().getPreferenceStore(), CUSTOM_TEMPLATES_KEY); >+ try { >+ fStore.load(); >+ } catch (IOException e) { >+ AntUIPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, "org.eclipse.ant.ui", IStatus.OK, "", e)); //$NON-NLS-1$ //$NON-NLS-2$ >+ } >+ } >+ return fStore; >+ } >+ >+ /** >+ * Returns this plug-in's context type registry. >+ * >+ * @return the context type registry for this plug-in instance >+ */ >+ public ContextTypeRegistry getContextTypeRegistry() { >+ if (fRegistry == null) { >+ // create an configure the contexts available in the template editor >+ fRegistry= new ContextTypeRegistry(); >+ fRegistry.addContextType(XMLContextType.XML_CONTEXT_TYPE); >+ } >+ return fRegistry; >+ } >+ >+ >+ public IPreferenceStore getPreferenceStore() { >+ return AntUIPlugin.getDefault().getPreferenceStore(); >+ } >+ >+ public void savePluginPreferences() { >+ AntUIPlugin.getDefault().savePluginPreferences(); >+ } >+ >+ >+} >Index: Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntVariableResolver.java >=================================================================== >RCS file: Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntVariableResolver.java >diff -N Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntVariableResolver.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntVariableResolver.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,50 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2003 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Common Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/cpl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.ant.internal.ui.editor.templates; >+ >+import java.util.Arrays; >+import java.util.Comparator; >+ >+import org.eclipse.jface.text.templates.TemplateContext; >+import org.eclipse.jface.text.templates.TemplateVariableResolver; >+ >+/** >+ * Looks up existing ant variables and proposes them. The proposals are sorted by >+ * their prefix-likeness with the variable type. >+ */ >+public class AntVariableResolver extends TemplateVariableResolver { >+ /* >+ * @see org.eclipse.jface.text.templates.TemplateVariableResolver#resolveAll(org.eclipse.jface.text.templates.TemplateContext) >+ */ >+ protected String[] resolveAll(TemplateContext context) { >+ String[] proposals= new String[] { "${srcDir}", "${dstDir}" }; //$NON-NLS-1$ //$NON-NLS-2$ >+ >+ Arrays.sort(proposals, new Comparator() { >+ >+ public int compare(Object o1, Object o2) { >+ return getCommonPrefixLength(getType(), (String) o2) - getCommonPrefixLength(getType(), (String) o1); >+ } >+ >+ private int getCommonPrefixLength(String type, String var) { >+ int i= 0; >+ CharSequence vSeq= var.subSequence(2, var.length() - 1); // strip away ${} >+ while (i < type.length() && i < vSeq.length()) >+ if (Character.toLowerCase(type.charAt(i)) == Character.toLowerCase(vSeq.charAt(i))) >+ i++; >+ else >+ break; >+ return i; >+ } >+ }); >+ >+ return proposals; >+ } >+} >Index: Ant Editor/org/eclipse/ant/internal/ui/editor/templates/XMLContextType.java >=================================================================== >RCS file: Ant Editor/org/eclipse/ant/internal/ui/editor/templates/XMLContextType.java >diff -N Ant Editor/org/eclipse/ant/internal/ui/editor/templates/XMLContextType.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ Ant Editor/org/eclipse/ant/internal/ui/editor/templates/XMLContextType.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,43 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2003 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Common Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/cpl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.ant.internal.ui.editor.templates; >+ >+import org.eclipse.jface.text.templates.ContextType; >+import org.eclipse.jface.text.templates.GlobalVariables; >+ >+ >+/** >+ * A very simple context type. >+ */ >+public class XMLContextType extends ContextType { >+ >+ /** This context's id */ >+ public static final String XML_CONTEXT_TYPE= "org.eclipse.ant.ui.templateContextType.XML"; //$NON-NLS-1$ >+ >+ /** >+ * Creates a new XML context type. >+ */ >+ public XMLContextType() { >+ addGlobalResolvers(); >+ } >+ >+ private void addGlobalResolvers() { >+ addResolver(new GlobalVariables.Cursor()); >+ addResolver(new GlobalVariables.WordSelection()); >+ addResolver(new GlobalVariables.LineSelection()); >+ addResolver(new GlobalVariables.Dollar()); >+ addResolver(new GlobalVariables.Date()); >+ addResolver(new GlobalVariables.Year()); >+ addResolver(new GlobalVariables.Time()); >+ addResolver(new GlobalVariables.User()); >+ } >+ >+} >Index: templates/ant.properties >=================================================================== >RCS file: templates/ant.properties >diff -N templates/ant.properties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/ant.properties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+filesetTemplate.description= Ant fileset type with include clause >+propertyTemplate.description= Ant property with name and value >+ >+ant.tasks.javac.name= javac >+ant.tasks.javac.desc= Add a javac task >Index: templates/ant.xml >=================================================================== >RCS file: templates/ant.xml >diff -N templates/ant.xml >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/ant.xml 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,30 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<templates> >+ >+<template >+ context="org.eclipse.ant.ui.templateContextType.XML" >+ description="%ant.tasks.javac.desc" >+ id="org.eclipse.ant.ui.templates.javac1" >+ name="%ant.tasks.javac.name"><javac srcdir="${src}" >+ destdir="${dst}" >+ classpath="${jarfile}" >+ debug="${on}" >+/>${cursor}</template> >+ >+<template >+ context="org.eclipse.ant.ui.templateContextType.XML" >+ description="%filesetTemplate.description" >+ id="org.eclipse.ant.ui.templates.fileset1" >+ name="fileset"><fileset dir="${dir}"> >+ <include name="${pattern}" /> >+ </fileset> >+</template> >+ >+<template >+ context="org.eclipse.ant.ui.templateContextType.XML" >+ description="%propertyTemplate.description" >+ id="org.eclipse.ant.ui.templates.property1" >+ name="property"><property name="${name}" value="${value}"/> >+</template> >+ >+</templates> >Index: templates/resolver.gif >=================================================================== >RCS file: templates/resolver.gif >diff -N templates/resolver.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/resolver.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,2 @@ >+GIF89a÷E>A̰ÖüôÿÙüϺÜöçÿ¹ÛÊ©æèäìH@QÒÊÛkD?y[}̥ȩ¹m¸¶çzfÍzl?X7E4ctZP?mNBcª?Õ_G¨ÁJQ?vRGhzkQHc¹¬ÓçäíYGZJ?XJyǰýĸß]Lm´¬£Ã¦¢°E2|K<wH:rSDaQXMzµ®ÉXI\L?[N q¯B;YÛ×éJ=|VHZLåâñH:QC?ibsnZN^S?\P_SYP\Tvr ¶ÎÌÙçæìcY¡ÕÓâåäëPHaX¢]VUNd]¯c\b[¨`Z¢g`¦d^³VRc`¥igª¤¥öââïââèWY¯oq¼GL¢oxÛs|ÝZ_¤qu©x ïzñwìuèuæt~ãs}áwå¢ìÐIRyôwð{õzówíwêq|Õù~ßnxÂý¦ý1=|Wbåæëÿÿÿ!ù,´ H° Á{L° Â#æ ` Â?>ZHPP°K@ÈÀÉ"åzPÆ?(Cìpñ `úl¹Â¤0(ÄgO9sè1SÇN<yjàæ)TªXbäÈP7|ÐI£f >+1wô¼y3pÆhÔHaCF,þAq"%L|HdIÁ&(0ð! JzYá`à I ÜÌys@;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 55355
: 8960