Contributors:
IBM Corporation - Initial implementation
- Klaus Hartlage - www.eclipseproject.de
+ www.phpeclipse.de
**********************************************************************/
package net.sourceforge.phpeclipse.phpeditor.php;
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;
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 {
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
*/
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$
return proposals;
}
- /* (non-Javadoc)
- * Method declared on IContentAssistProcessor
+ /**
+ * Tells this processor to order the proposals alphabetically.
+ *
+ * @param order <code>true</code> 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
*/