Search in sources :

Example 1 with TemplateVariableResolver

use of org.eclipse.jface.text.templates.TemplateVariableResolver in project che by eclipse.

the class ContributionContextTypeRegistry method createResolver.

private static TemplateVariableResolver createResolver(IConfigurationElement element) throws CoreException {
    try {
        String type = element.getAttribute(TYPE);
        if (type != null) {
            TemplateVariableResolver resolver = (TemplateVariableResolver) element.createExecutableExtension(CLASS);
            resolver.setType(type);
            String desc = element.getAttribute(DESCRIPTION);
            //$NON-NLS-1$
            resolver.setDescription(desc == null ? "" : desc);
            return resolver;
        }
    } catch (ClassCastException e) {
        //$NON-NLS-1$
        throw new CoreException(new Status(IStatus.ERROR, "org.eclipse.ui.editors", IStatus.OK, "extension does not implement " + TemplateVariableResolver.class.getName(), e));
    }
    return null;
}
Also used : Status(org.eclipse.core.runtime.Status) IStatus(org.eclipse.core.runtime.IStatus) CoreException(org.eclipse.core.runtime.CoreException) TemplateVariableResolver(org.eclipse.jface.text.templates.TemplateVariableResolver)

Example 2 with TemplateVariableResolver

use of org.eclipse.jface.text.templates.TemplateVariableResolver in project che by eclipse.

the class ContributionContextTypeRegistry method createContextType.

/**
	 * Tries to create a context type given an id. Contributions to the
	 * <code>org.eclipse.ui.editors.templates</code> extension point are
	 * searched for the given identifier and the specified context type
	 * instantiated if it is found. Any contributed
	 * {@link org.eclipse.jface.text.templates.TemplateVariableResolver}s
	 * are also instantiated and added to the context type.
	 *
	 * @param id the id for the context type as specified in XML
	 * @return the instantiated and configured context type, or
	 *         <code>null</code> if it is not found or cannot be instantiated
	 */
public static TemplateContextType createContextType(String id) {
    Assert.isNotNull(id);
    IConfigurationElement[] extensions = getTemplateExtensions();
    TemplateContextType type;
    try {
        type = createContextType(extensions, id);
        if (type != null) {
            TemplateVariableResolver[] resolvers = createResolvers(extensions, id);
            for (int i = 0; i < resolvers.length; i++) type.addResolver(resolvers[i]);
        }
    } catch (CoreException e) {
        JavaPlugin.log(e);
        type = null;
    }
    return type;
}
Also used : CoreException(org.eclipse.core.runtime.CoreException) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) TemplateContextType(org.eclipse.jface.text.templates.TemplateContextType) TemplateVariableResolver(org.eclipse.jface.text.templates.TemplateVariableResolver)

Example 3 with TemplateVariableResolver

use of org.eclipse.jface.text.templates.TemplateVariableResolver in project eclipse.platform.text by eclipse.

the class ContributionContextTypeRegistry method createContextType.

/**
 * Tries to create a context type given an id. Contributions to the
 * <code>org.eclipse.ui.editors.templates</code> extension point are
 * searched for the given identifier and the specified context type
 * instantiated if it is found. Any contributed
 * {@link org.eclipse.jface.text.templates.TemplateVariableResolver}s
 * are also instantiated and added to the context type.
 *
 * @param id the id for the context type as specified in XML
 * @return the instantiated and configured context type, or
 *         <code>null</code> if it is not found or cannot be instantiated
 */
public static TemplateContextType createContextType(String id) {
    Assert.isNotNull(id);
    IConfigurationElement[] extensions = getTemplateExtensions();
    TemplateContextType type;
    try {
        type = createContextType(extensions, id);
        if (type != null) {
            TemplateVariableResolver[] resolvers = createResolvers(extensions, id);
            for (int i = 0; i < resolvers.length; i++) type.addResolver(resolvers[i]);
        }
    } catch (CoreException e) {
        EditorsPlugin.log(e);
        type = null;
    }
    return type;
}
Also used : CoreException(org.eclipse.core.runtime.CoreException) IConfigurationElement(org.eclipse.core.runtime.IConfigurationElement) TemplateContextType(org.eclipse.jface.text.templates.TemplateContextType) TemplateVariableResolver(org.eclipse.jface.text.templates.TemplateVariableResolver)

Example 4 with TemplateVariableResolver

use of org.eclipse.jface.text.templates.TemplateVariableResolver in project eclipse.platform.text by eclipse.

the class ContributionContextTypeRegistry method createResolver.

private static TemplateVariableResolver createResolver(IConfigurationElement element) throws CoreException {
    try {
        String type = element.getAttribute(TYPE);
        if (type != null) {
            TemplateVariableResolver resolver = (TemplateVariableResolver) element.createExecutableExtension(CLASS);
            if (resolver.getType() != null) {
                // $NON-NLS-1$
                throw new CoreException(new Status(IStatus.ERROR, EditorsUI.PLUGIN_ID, IStatus.OK, resolver.getClass() + "() must call super() and not set the variable's type", null));
            }
            resolver.setType(type);
            if (resolver.getDescription() != null) {
                // $NON-NLS-1$
                throw new CoreException(new Status(IStatus.ERROR, EditorsUI.PLUGIN_ID, IStatus.OK, resolver.getClass() + "() must call super() and not set the variable's description", null));
            }
            String desc = element.getAttribute(DESCRIPTION);
            // $NON-NLS-1$
            resolver.setDescription(desc == null ? "" : desc);
            return resolver;
        }
    } catch (ClassCastException e) {
        // $NON-NLS-1$
        throw new CoreException(new Status(IStatus.ERROR, EditorsUI.PLUGIN_ID, IStatus.OK, "extension does not implement " + TemplateVariableResolver.class.getName(), e));
    }
    return null;
}
Also used : Status(org.eclipse.core.runtime.Status) IStatus(org.eclipse.core.runtime.IStatus) CoreException(org.eclipse.core.runtime.CoreException) TemplateVariableResolver(org.eclipse.jface.text.templates.TemplateVariableResolver)

Example 5 with TemplateVariableResolver

use of org.eclipse.jface.text.templates.TemplateVariableResolver in project eclipse.platform.text by eclipse.

the class TemplateVariableProcessor method computeCompletionProposals.

@Override
public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
    if (fContextType == null)
        return null;
    List<TemplateVariableProposal> proposals = new ArrayList<>();
    String text = viewer.getDocument().get();
    int start = getStart(text, documentOffset);
    int end = documentOffset;
    String string = text.substring(start, end);
    String prefix = (string.length() >= 2) ? string.substring(2) : null;
    int offset = start;
    int length = end - start;
    for (Iterator<TemplateVariableResolver> iterator = fContextType.resolvers(); iterator.hasNext(); ) {
        TemplateVariableResolver variable = iterator.next();
        if (prefix == null || variable.getType().startsWith(prefix))
            proposals.add(new TemplateVariableProposal(variable, offset, length, viewer));
    }
    Collections.sort(proposals, fgTemplateVariableProposalComparator);
    return proposals.toArray(new ICompletionProposal[proposals.size()]);
}
Also used : ArrayList(java.util.ArrayList) TemplateVariableResolver(org.eclipse.jface.text.templates.TemplateVariableResolver)

Aggregations

TemplateVariableResolver (org.eclipse.jface.text.templates.TemplateVariableResolver)27 TemplateContextTypeXSL (org.eclipse.wst.xsl.ui.internal.templates.TemplateContextTypeXSL)10 TemplateContextType (org.eclipse.jface.text.templates.TemplateContextType)9 CoreException (org.eclipse.core.runtime.CoreException)5 ContextTypeRegistry (org.eclipse.jface.text.templates.ContextTypeRegistry)5 ContextTypeIdHelper (org.eclipse.xtext.ui.editor.templates.ContextTypeIdHelper)5 TemplateBuffer (org.eclipse.jface.text.templates.TemplateBuffer)4 IInspectableTemplateVariableResolver (org.eclipse.xtext.ui.codetemplates.ui.resolvers.IInspectableTemplateVariableResolver)4 IConfigurationElement (org.eclipse.core.runtime.IConfigurationElement)3 TemplateTranslator (org.eclipse.jface.text.templates.TemplateTranslator)3 StyledString (org.eclipse.jface.viewers.StyledString)3 IStatus (org.eclipse.core.runtime.IStatus)2 Status (org.eclipse.core.runtime.Status)2 ICompletionProposal (org.eclipse.jface.text.contentassist.ICompletionProposal)2 Grammar (org.eclipse.xtext.Grammar)2 Codetemplate (org.eclipse.xtext.ui.codetemplates.templates.Codetemplate)2 Codetemplates (org.eclipse.xtext.ui.codetemplates.templates.Codetemplates)2 Variable (org.eclipse.xtext.ui.codetemplates.templates.Variable)2 ConfigurableCompletionProposal (org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal)2 ArrayList (java.util.ArrayList)1