X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCompletionProcessor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCompletionProcessor.java index 493021f..91e1339 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCompletionProcessor.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCompletionProcessor.java @@ -7,7 +7,7 @@ http://www.eclipse.org/legal/cpl-v10.html Contributors: IBM Corporation - Initial implementation - Klaus Hartlage - www.eclipseproject.de + www.phpeclipse.de **********************************************************************/ package net.sourceforge.phpeclipse.phpeditor.php; @@ -15,11 +15,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import net.sourceforge.phpdt.internal.corext.template.ContextType; -import net.sourceforge.phpdt.internal.corext.template.ContextTypeRegistry; +import net.sourceforge.phpdt.core.ICompilationUnit; import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal; import net.sourceforge.phpdt.internal.ui.text.java.PHPCompletionProposalComparator; -import net.sourceforge.phpdt.internal.ui.text.template.TemplateEngine; +import net.sourceforge.phpdt.internal.ui.text.template.contentassist.TemplateEngine; +import net.sourceforge.phpdt.ui.IWorkingCopyManager; +import net.sourceforge.phpeclipse.PHPeclipsePlugin; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.ITextViewer; @@ -30,10 +31,12 @@ import org.eclipse.jface.text.contentassist.IContextInformation; import org.eclipse.jface.text.contentassist.IContextInformationExtension; import org.eclipse.jface.text.contentassist.IContextInformationPresenter; import org.eclipse.jface.text.contentassist.IContextInformationValidator; +import org.eclipse.jface.text.templates.TemplateContextType; import org.eclipse.swt.graphics.Image; +import org.eclipse.ui.IEditorPart; /** - * Example PHP completion processor. + * HTML completion processor. */ public class HTMLCompletionProcessor implements IContentAssistProcessor { @@ -111,17 +114,25 @@ public class HTMLCompletionProcessor implements IContentAssistProcessor { protected IContextInformationValidator fValidator = new Validator(); private TemplateEngine fTemplateEngine; + private char[] fProposalAutoActivationSet; private PHPCompletionProposalComparator fComparator; private int fNumberOfComputedResults = 0; - public HTMLCompletionProcessor() { + private IEditorPart fEditor; - ContextType contextType = ContextTypeRegistry.getInstance().getContextType("html"); //$NON-NLS-1$ + protected IWorkingCopyManager fManager; + + public HTMLCompletionProcessor(IEditorPart editor) { + fEditor = editor; + fManager = PHPeclipsePlugin.getDefault().getWorkingCopyManager(); + + TemplateContextType contextType = PHPeclipsePlugin.getDefault().getTemplateContextRegistry().getContextType("html"); //$NON-NLS-1$ if (contextType != null) fTemplateEngine = new TemplateEngine(contextType); fComparator = new PHPCompletionProposalComparator(); } + /* (non-Javadoc) * Method declared on IContentAssistProcessor */ @@ -132,12 +143,13 @@ public class HTMLCompletionProcessor implements IContentAssistProcessor { private ICompletionProposal[] internalComputeCompletionProposals(ITextViewer viewer, int offset, int contextOffset) { IDocument document = viewer.getDocument(); + ICompilationUnit unit= fManager.getWorkingCopy(fEditor.getEditorInput()); if (fTemplateEngine != null) { ICompletionProposal[] results; // try { fTemplateEngine.reset(); - fTemplateEngine.complete(viewer, offset); //, unit); + fTemplateEngine.complete(viewer, offset, unit); // } catch (JavaModelException x) { // Shell shell= viewer.getTextWidget().getShell(); // ErrorDialog.openError(shell, JavaTextMessages.getString("CompletionProcessor.error.accessing.title"), JavaTextMessages.getString("CompletionProcessor.error.accessing.message"), x.getStatus()); //$NON-NLS-2$ //$NON-NLS-1$ @@ -209,13 +221,32 @@ public class HTMLCompletionProcessor implements IContentAssistProcessor { return proposals; } - /* (non-Javadoc) - * Method declared on IContentAssistProcessor + /** + * Tells this processor to order the proposals alphabetically. + * + * @param order true if proposals should be ordered. + */ + public void orderProposalsAlphabetically(boolean order) { + fComparator.setOrderAlphabetically(order); + } + + /** + * @see IContentAssistProcessor#getCompletionProposalAutoActivationCharacters() */ public char[] getCompletionProposalAutoActivationCharacters() { - return new char[] { '<', '&', '#' }; + return fProposalAutoActivationSet; } - + + /** + * Sets this processor's set of characters triggering the activation of the + * completion proposal computation. + * + * @param activationSet the activation set + */ + public void setCompletionProposalAutoActivationCharacters(char[] activationSet) { + fProposalAutoActivationSet= activationSet; + } + /* (non-Javadoc) * Method declared on IContentAssistProcessor */